@argusoft/medplat-core 1.0.24 → 1.0.25
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.
- package/dist/{AddFeatures-CTVs_Gr9.js → AddFeatures-CqE3v0BN.js} +2 -2
- package/dist/{AddFeatures-CTVs_Gr9.js.map → AddFeatures-CqE3v0BN.js.map} +1 -1
- package/dist/AddMenuConfiguration-BSQLl88V.js +6570 -0
- package/dist/AddMenuConfiguration-BSQLl88V.js.map +1 -0
- package/dist/{ChangePasswordModalCore-Czu7OZe6.js → ChangePasswordModalCore-DTYWRTa-.js} +3 -3
- package/dist/{ChangePasswordModalCore-Czu7OZe6.js.map → ChangePasswordModalCore-DTYWRTa-.js.map} +1 -1
- package/dist/{ConditionConfig-BECSbvY2.js → ConditionConfig-DSsgGEXS.js} +2 -2
- package/dist/{ConditionConfig-BECSbvY2.js.map → ConditionConfig-DSsgGEXS.js.map} +1 -1
- package/dist/{ManageEventConfiguration-CBi2KMB1.js → ManageEventConfiguration-DV3I5POA.js} +4 -4
- package/dist/{ManageEventConfiguration-CBi2KMB1.js.map → ManageEventConfiguration-DV3I5POA.js.map} +1 -1
- package/dist/{ManageRole-CZAk-IlM.js → ManageRole-B9bs_T00.js} +116 -116
- package/dist/ManageRole-B9bs_T00.js.map +1 -0
- package/dist/{ManageUser-BnEPFSPT.js → ManageUser-AB3_Vfp_.js} +34 -33
- package/dist/{ManageUser-BnEPFSPT.js.map → ManageUser-AB3_Vfp_.js.map} +1 -1
- package/dist/{MobileTypeEventConfigModal-C34AN-IJ.js → MobileTypeEventConfigModal-BxLympIO.js} +2 -2
- package/dist/{MobileTypeEventConfigModal-C34AN-IJ.js.map → MobileTypeEventConfigModal-BxLympIO.js.map} +1 -1
- package/dist/{OtherTypeEventConfigModal-BYjMFl0-.js → OtherTypeEventConfigModal-BeG1GrUi.js} +3 -2
- package/dist/{OtherTypeEventConfigModal-BYjMFl0-.js.map → OtherTypeEventConfigModal-BeG1GrUi.js.map} +1 -1
- package/dist/{RoleManagement-B9WgZGEj.js → RoleManagement-BIiW9uTq.js} +2 -2
- package/dist/{RoleManagement-B9WgZGEj.js.map → RoleManagement-BIiW9uTq.js.map} +1 -1
- package/dist/{TypeConfiguration-Bs5WkIa2.js → TypeConfiguration-37wp-gsl.js} +2 -2
- package/dist/{TypeConfiguration-Bs5WkIa2.js.map → TypeConfiguration-37wp-gsl.js.map} +1 -1
- package/dist/{UserList-BzHsbYel.js → UserList-2gGuDgNa.js} +38 -37
- package/dist/{UserList-BzHsbYel.js.map → UserList-2gGuDgNa.js.map} +1 -1
- package/dist/{UserListSkeleton-DhIJ5X3y.js → UserListSkeleton-BMKANCtW.js} +57 -93
- package/dist/UserListSkeleton-BMKANCtW.js.map +1 -0
- package/dist/Users-CsJ08Kjm.js +40 -0
- package/dist/Users-CsJ08Kjm.js.map +1 -0
- package/dist/index.js +4 -4
- package/package.json +1 -1
- package/dist/AddMenuConfiguration-m3R8FDhj.js +0 -5570
- package/dist/AddMenuConfiguration-m3R8FDhj.js.map +0 -1
- package/dist/ManageRole-CZAk-IlM.js.map +0 -1
- package/dist/UserListSkeleton-DhIJ5X3y.js.map +0 -1
package/dist/{OtherTypeEventConfigModal-BYjMFl0-.js.map → OtherTypeEventConfigModal-BeG1GrUi.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OtherTypeEventConfigModal-BYjMFl0-.js","sources":["../../node_modules/@ckeditor/ckeditor5-integrations-common/dist/index.js","../../node_modules/@ckeditor/ckeditor5-react/dist/index.js","../src/views/Events/OtherTypeEventConfigModal.jsx"],"sourcesContent":["function 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\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\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\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 // It'll append styles *before* the stylesheets that are already present in the head\n // but after the ones that are injected by this function.\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 // It'll append styles *after* the stylesheets already in the head.\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\nfunction isSSR() {\n return typeof window === \"undefined\";\n}\n\nfunction omit(keys, obj) {\n const clone = { ...obj };\n for (const key of keys) {\n if (Object.hasOwn(obj, key)) {\n delete clone[key];\n }\n }\n return clone;\n}\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\nfunction overwriteArray(source, destination) {\n destination.length = 0;\n destination.push(...source);\n return destination;\n}\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\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\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\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\nfunction uniq(source) {\n return Array.from(new Set(source));\n}\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\nfunction filterObjectValues(obj, filter) {\n const filteredEntries = Object.entries(obj).filter(([key, value]) => filter(value, key));\n return Object.fromEntries(filteredEntries);\n}\n\nfunction filterBlankObjectValues(obj) {\n return filterObjectValues(\n obj,\n (value) => value !== null && value !== void 0\n );\n}\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\nfunction without(itemsToRemove, items) {\n return items.filter((item) => !itemsToRemove.includes(item));\n}\n\nfunction mapObjectKeys(obj, fn) {\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [fn(key), value])\n );\n}\n\nfunction kebabToCamelCase(str) {\n return str.replace(/-([a-z])/g, (match, letter) => letter.toUpperCase());\n}\n\nfunction isSemanticVersion(version) {\n return !!version && /^\\d+\\.\\d+\\.\\d+/.test(version);\n}\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\nfunction compareSemanticVersions(a, b) {\n const parsedA = destructureSemanticVersion(a);\n const parsedB = destructureSemanticVersion(b);\n return Math.sign(\n parsedA.major - parsedB.major || parsedA.minor - parsedB.minor || parsedA.patch - parsedB.patch\n );\n}\n\nfunction isCKTestingVersion(version) {\n if (!version) {\n return false;\n }\n return [\"nightly\", \"alpha\", \"internal\", \"nightly-\", \"staging\"].some((testVersion) => version.includes(testVersion));\n}\nfunction isCKZeroBaseVersion(version) {\n return !!version?.startsWith(\"0.0.0-\");\n}\nfunction isCKVersion(version) {\n return isSemanticVersion(version) || isCKTestingVersion(version);\n}\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\nfunction getLicenseVersionFromEditorVersion(version) {\n if (isCKTestingVersion(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\nfunction getCKBaseBundleInstallationInfo() {\n const { CKEDITOR_VERSION, CKEDITOR } = window;\n if (!isCKVersion(CKEDITOR_VERSION)) {\n return null;\n }\n return {\n source: CKEDITOR ? \"cdn\" : \"npm\",\n version: CKEDITOR_VERSION\n };\n}\n\nfunction getSupportedLicenseVersionInstallationInfo() {\n const installationInfo = getCKBaseBundleInstallationInfo();\n if (!installationInfo) {\n return null;\n }\n return getLicenseVersionFromEditorVersion(installationInfo.version);\n}\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\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\nconst CK_CDN_URL = \"https://cdn.ckeditor.com\";\nfunction createCKCdnUrl(bundle, file, version) {\n return `${CK_CDN_URL}/${bundle}/${version}/${file}`;\n}\n\nconst CKBOX_CDN_URL = \"https://cdn.ckbox.io\";\nfunction createCKBoxCdnUrl(bundle, file, version) {\n return `${CKBOX_CDN_URL}/${bundle}/${version}/${file}`;\n}\n\nconst CK_DOCS_URL = \"https://ckeditor.com/docs/ckeditor5\";\nfunction createCKDocsUrl(path, version = \"latest\") {\n return `${CK_DOCS_URL}/${version}/${path}`;\n}\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/migrations/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\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\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\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\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\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\nfunction isCKCdnSupportedByEditorVersion(version) {\n if (isCKTestingVersion(version)) {\n return true;\n }\n const { major } = destructureSemanticVersion(version);\n const licenseVersion = getLicenseVersionFromEditorVersion(version);\n switch (licenseVersion) {\n // For newer license versions, we support all newer versions.\n case 3:\n return true;\n // For the license v1-v2, we support only the 43 version.\n default:\n return major === 43;\n }\n}\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\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 (isCKTestingVersion(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\nfunction compareInstalledCKBaseVersion(version) {\n const installedVersion = getCKBaseBundleInstallationInfo()?.version;\n if (!installedVersion) {\n return null;\n }\n if (isCKZeroBaseVersion(version)) {\n return -1;\n }\n if (!isSemanticVersion(installedVersion) || isCKZeroBaseVersion(installedVersion)) {\n return 1;\n }\n return compareSemanticVersions(installedVersion, version);\n}\n\nfunction getInstalledCKBaseFeatures() {\n const installedVersion = compareInstalledCKBaseVersion(\"48.0.0\");\n const isV48OrNewer = installedVersion !== null && installedVersion >= 0;\n return {\n rootsConfigEntry: isV48OrNewer,\n elementConfigAttachment: isV48OrNewer\n };\n}\n\nfunction assignAttributesPropToMultiRootEditorConfig(attributes, config) {\n const supports = getInstalledCKBaseFeatures();\n if (supports.rootsConfigEntry) {\n const knownRootsKeys = uniq([\n ...Object.keys(attributes || {}),\n ...Object.keys(config.roots || {}),\n ...Object.keys(config.rootsAttributes || {})\n ]);\n const roots = knownRootsKeys.reduce((acc, rootName) => {\n const legacyRootAttributes = config.rootsAttributes?.[rootName];\n const configRootValue = config.roots?.[rootName];\n acc[rootName] = {\n ...configRootValue,\n modelAttributes: attributes?.[rootName] ?? {\n ...legacyRootAttributes,\n ...configRootValue?.modelAttributes\n }\n };\n return acc;\n }, /* @__PURE__ */ Object.create(null));\n const mappedConfig = {\n ...config,\n roots\n };\n delete mappedConfig.rootsAttributes;\n return mappedConfig;\n }\n return {\n ...config,\n rootsAttributes: attributes\n };\n}\n\nfunction assignInitialDataToMultirootEditorConfig(data, config) {\n const supports = getInstalledCKBaseFeatures();\n if (supports.rootsConfigEntry) {\n const knownRootsKeys = uniq([\n ...Object.keys(data || {}),\n ...Object.keys(config.roots || {}),\n ...typeof config.initialData === \"string\" ? [] : Object.keys(config.initialData || {})\n ]);\n const roots = knownRootsKeys.reduce((acc, rootName) => {\n const rootConfig = config.roots?.[rootName];\n const rootInitialData = rootConfig?.initialData;\n if (rootInitialData && data?.[rootName]) {\n console.warn(\n `Editor data should be provided either using \\`config.roots['${rootName}'].initialData\\` or the bound component property. The config value takes precedence over the bound component property and will be used when both are specified.`\n );\n }\n acc[rootName] = {\n ...rootConfig,\n initialData: rootInitialData || data?.[rootName] || config.initialData?.[rootName] || \"\"\n };\n return acc;\n }, /* @__PURE__ */ Object.create(null));\n const normalizedConfig = {\n ...config,\n roots\n };\n delete normalizedConfig.initialData;\n return normalizedConfig;\n }\n if (data && config?.initialData) {\n console.warn(\n \"Editor data should be provided either using `config.initialData` or the bound component property. The config value takes precedence over the bound component property and will be used when both are specified.\"\n );\n }\n return {\n ...config,\n initialData: config?.initialData || data\n };\n}\n\nfunction assignElementToEditorConfig(Editor, element, config) {\n if (!Editor.editorName || Editor.editorName === \"ClassicEditor\") {\n return {\n ...config,\n attachTo: element\n };\n }\n const mappedConfig = {\n ...config,\n roots: {\n ...config.roots,\n main: {\n ...config.root,\n ...config.roots?.main,\n element\n }\n }\n };\n delete mappedConfig.root;\n return mappedConfig;\n}\n\nfunction getInitialDataFromEditorConfig(config) {\n const supports = getInstalledCKBaseFeatures();\n if (supports.rootsConfigEntry) {\n return config.roots?.main?.initialData || config.root?.initialData || /* legacy */\n config.initialData;\n }\n return config.initialData;\n}\n\nfunction assignInitialDataToEditorConfig(config, data, ignoreConfigInitialData) {\n const supports = getInstalledCKBaseFeatures();\n const configInitialData = ignoreConfigInitialData ? null : getInitialDataFromEditorConfig(config);\n if (supports.rootsConfigEntry) {\n const normalizedConfig = {\n ...config,\n roots: {\n ...config.roots,\n main: {\n ...config.root,\n ...config.roots?.main,\n initialData: configInitialData || data || \"\"\n }\n }\n };\n if (data && configInitialData) {\n console.warn(\n \"Editor data should be provided either via the config (`config.root.initialData`) or the component's `data` property, but not both. The configuration value takes precedence.\"\n );\n }\n delete normalizedConfig.root;\n delete normalizedConfig.initialData;\n return normalizedConfig;\n }\n if (data && configInitialData) {\n console.warn(\n \"Editor data should be provided either via the config (`config.initialData`) or the component's `data` property, but not both. The configuration value takes precedence.\"\n );\n }\n return {\n ...config,\n initialData: configInitialData || data || \"\"\n };\n}\n\nexport { CKBOX_CDN_URL, CK_CDN_URL, INJECTED_SCRIPTS, INJECTED_STYLESHEETS, appendExtraPluginsToEditorConfig, assignAttributesPropToMultiRootEditorConfig, assignElementToEditorConfig, assignInitialDataToEditorConfig, assignInitialDataToMultirootEditorConfig, compareInstalledCKBaseVersion, compareSemanticVersions, createCKBoxCdnUrl, createCKCdnUrl, createDefer, createIntegrationUsageDataPlugin, destructureSemanticVersion, filterBlankObjectValues, filterObjectValues, getCKBaseBundleInstallationInfo, getCKBoxInstallationInfo, getInitialDataFromEditorConfig, getInstalledCKBaseFeatures, injectScript, injectScriptsInParallel, injectStylesheet, isCKEditorFreeLicense, isCKTestingVersion, isCKVersion, isCKZeroBaseVersion, isSSR, isSemanticVersion, kebabToCamelCase, loadCKEditorCloud, mapObjectKeys, mapObjectValues, omit, once, overwriteArray, overwriteObject, preloadResource, shallowCompareArrays, uid, uniq, waitFor, waitForWindowEntry, without };\n//# sourceMappingURL=index.js.map\n","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nimport React, { useRef, useEffect, useCallback, useState, memo, forwardRef, useContext } from \"react\";\nimport { createDefer, once, uid, createIntegrationUsageDataPlugin, isCKEditorFreeLicense, appendExtraPluginsToEditorConfig, shallowCompareArrays, uniq, overwriteObject, overwriteArray, isSSR, loadCKEditorCloud } from \"@ckeditor/ckeditor5-integrations-common\";\nimport { loadCKEditorCloud as loadCKEditorCloud2 } from \"@ckeditor/ckeditor5-integrations-common\";\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 _LifeCycleElementSemaphore = class _LifeCycleElementSemaphore {\n constructor(element, lifecycle) {\n /**\n * This should define async methods for initializing and destroying the editor.\n * Essentially, it's an async version of basic React lifecycle methods like `componentDidMount`, `componentWillUnmount`.\n *\n * \t* Result of {@link LifeCycleAsyncOperators#mount} method is passed to {@link LifeCycleAsyncOperators#unmount} as an argument.\n */\n __publicField(this, \"_lifecycle\");\n /**\n * This is the element instance that the editor uses for mounting. This element should contain the `ckeditorInstance` member\n * once the editor has been successfully mounted to it. The semaphore ensures that a new instance of the editor, which will\n * be assigned to this element by the {@link #_lifecycle:mount} method, will always be initialized after the successful\n * destruction of the underlying `ckeditorInstance` that was previously mounted on this element.\n */\n __publicField(this, \"_element\");\n /**\n * This is the lock mechanism utilized by the {@link #lock} and {@link #release} methods.\n *\n * \t* If the editor is not yet mounted and is awaiting mounting (for instance, when another editor is\n * \t occupying the element), then it is null.\n *\n * \t* When the editor is mounted on the element, this variable holds an unresolved promise that will be\n * \t resolved after the editor is destroyed.\n *\n * \t* Once the editor is destroyed (and it was previously mounted), the promise is resolved.\n */\n __publicField(this, \"_releaseLock\", null);\n /**\n * This is the result of the {@link #_lifecycle:mount} function. This value should be reset to `null`\n * once the semaphore is released. It is utilized to store certain data that must be removed following\n * the destruction of the editor. This data may include the editor's instance, the assigned watchdog,\n * or handles for additional window listeners.\n */\n __publicField(this, \"_value\", null);\n /**\n * This is a list of callbacks that are triggered if the semaphore {@link #_lifecycle:mount} method executes successfully.\n * It is utilized in scenarios where we need to assign certain properties to an editor that is currently in the process of mounting.\n * An instance of such usage could be two-way binding. We aim to prevent the loss of all `setData` calls if the editor has not\n * yet been mounted, therefore these calls will be executed immediately following the completion of the mounting process.\n */\n __publicField(this, \"_afterMountCallbacks\", []);\n /**\n * This represents the actual mounting state of the semaphore. It is primarily used by the {@link #release} method to\n * determine whether the initialization of the editor should be skipped or, if the editor is already initialized, the editor\n * should be destroyed.\n *\n * \t* If `destroyedBeforeInitialization` is true, then the {@link #release} method was invoked before the editor began to mount.\n * \t This often occurs in strict mode when we assign a promise to the {@link LifeCycleEditorElementSemaphore#_semaphores} map\n * \t and the assigned `mount` callback has not yet been called. In this scenario, it is safe to skip the initialization of the editor\n * \t and simply release the semaphore.\n *\n *\t* If `mountingInProgress` is a Promise, then the {@link #release} method was invoked after the initialization of the editor and\n \t the editor must be destroyed before the semaphore is released.\n */\n __publicField(this, \"_state\", {\n destroyedBeforeInitialization: false,\n mountingInProgress: null\n });\n /**\n * Inverse of {@link #_lock} method that tries to destroy attached editor.\n *\n * \t* If editor is being already attached to element (or is in attaching process) then after fully initialization of editor\n * \t destroy is performed and semaphore is released. The {@link #_lifecycle} unmount method is called.\n *\n * \t* If editor is being destroyed before initialization then it does nothing but sets `destroyedBeforeInitialization` flag that\n * \t will be later checked by {@link #_lock} method in initialization. The {@link #_lifecycle} unmount method is not called.\n *\n * *Important note:*\n *\n * It’s really important to keep this method *sync*. If we make this method *async*, it won’t work well because\n * it will cause problems when we’re trying to set up the {@link LifeCycleEditorElementSemaphore#_semaphores} map entries.\n */\n __publicField(this, \"release\", once(() => {\n const { _releaseLock, _state, _element, _lifecycle } = this;\n if (_state.mountingInProgress) {\n _state.mountingInProgress.then(() => _lifecycle.unmount({\n element: _element,\n // Mount result might be overridden by watchdog during restart so use instance variable.\n mountResult: this.value\n })).catch((error) => {\n console.error(\"Semaphore unmounting error:\", error);\n }).then(_releaseLock.resolve).then(() => {\n this._value = null;\n });\n } else {\n _state.destroyedBeforeInitialization = true;\n _releaseLock.resolve();\n }\n }));\n this._element = element;\n this._lifecycle = lifecycle;\n this._lock();\n }\n /**\n * Getter for {@link #_value}.\n */\n get value() {\n return this._value;\n }\n /**\n * Occasionally, the Watchdog restarts the editor instance, resulting in a new instance being assigned to the semaphore.\n * In terms of race conditions, it's generally safer to simply override the semaphore value rather than recreating it\n * with a different one.\n */\n unsafeSetValue(value) {\n this._value = value;\n this._afterMountCallbacks.forEach((callback) => callback(value));\n this._afterMountCallbacks = [];\n }\n /**\n * This registers a callback that will be triggered after the editor has been successfully mounted.\n *\n * \t* If the editor is already mounted, the callback will be executed immediately.\n *\t* If the editor is in the process of mounting, the callback will be executed upon successful mounting.\n * \t* If the editor is never mounted, the passed callback will not be executed.\n * \t* If an exception is thrown within the callback, it will be re-thrown in the semaphore.\n */\n runAfterMount(callback) {\n const { _value, _afterMountCallbacks } = this;\n if (_value) {\n callback(_value);\n } else {\n _afterMountCallbacks.push(callback);\n }\n }\n /**\n * This method is used to inform other components that the {@link #_element} will be used by the editor,\n * which is initialized by the {@link #_lifecycle} methods.\n *\n * \t* If an editor is already present on the provided element, the initialization of the current one\n * \t will be postponed until the previous one is destroyed.\n *\n * \t* If the element is empty and does not have an editor attached to it, the currently locked editor will\n * \t be mounted immediately.\n *\n * After the successful initialization of the editor and the assignment of the {@link #_value} member,\n * the `onReady` lifecycle method is called.\n *\n * *Important note:*\n *\n * It’s really important to keep this method *sync*. If we make this method *async*, it won’t work well because\n * it will cause problems when we’re trying to set up the {@link LifeCycleEditorElementSemaphore#_semaphores} map entries.\n */\n _lock() {\n const { _semaphores } = _LifeCycleElementSemaphore;\n const { _state, _element, _lifecycle } = this;\n const prevElementSemaphore = _semaphores.get(_element) || Promise.resolve(null);\n const releaseLock = createDefer();\n this._releaseLock = releaseLock;\n const newElementSemaphore = prevElementSemaphore.then(() => {\n if (_state.destroyedBeforeInitialization) {\n return Promise.resolve(void 0);\n }\n _state.mountingInProgress = _lifecycle.mount().then((mountResult) => {\n if (mountResult) {\n this.unsafeSetValue(mountResult);\n }\n return mountResult;\n });\n return _state.mountingInProgress;\n }).then(async (mountResult) => {\n if (mountResult && _lifecycle.afterMount) {\n await _lifecycle.afterMount({\n element: _element,\n mountResult\n });\n }\n }).then(() => releaseLock.promise).catch((error) => {\n console.error(\"Semaphore mounting error:\", error);\n }).then(() => {\n if (_semaphores.get(_element) === newElementSemaphore) {\n _semaphores.delete(_element);\n }\n });\n _semaphores.set(_element, newElementSemaphore);\n }\n};\n/**\n * This is a map of elements associated with promises. It informs the semaphore that the underlying HTML element, used as a key,\n * is currently in use by another editor. Each element is assigned a promise, which allows for the easy chaining of new\n * editor instances on an element that is already in use by another instance. The process works as follows:\n *\n * \t1. If an element is being used by an editor, then the initialization of a new editor\n * \t instance is chained using the `.then()` method of the Promise.\n *\n * \t2. If the editor associated with the underlying element is destroyed, then `Promise.resolve()` is called\n * \t and the previously assigned `.then()` editor callback is executed.\n *\n * @see {@link #lock} for more detailed information on the implementation.\n */\n__publicField(_LifeCycleElementSemaphore, \"_semaphores\", /* @__PURE__ */ new Map());\nlet LifeCycleElementSemaphore = _LifeCycleElementSemaphore;\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 ReactContextMetadataKey = \"$__CKEditorReactContextMetadata\";\nfunction withCKEditorReactContextMetadata(metadata, config) {\n return {\n ...config,\n [ReactContextMetadataKey]: metadata\n };\n}\nfunction tryExtractCKEditorReactContextMetadata(object) {\n return object.get(ReactContextMetadataKey);\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 useIsMountedRef = () => {\n const mountedRef = useRef(false);\n useEffect(() => {\n mountedRef.current = true;\n return () => {\n mountedRef.current = false;\n };\n }, []);\n return mountedRef;\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 useRefSafeCallback = (fn) => {\n const callbackRef = useRef();\n callbackRef.current = fn;\n return useCallback(\n (...args) => callbackRef.current(...args),\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 useInitializedCKEditorsMap = ({\n currentContextWatchdog,\n onChangeInitializedEditors\n}) => {\n const onChangeInitializedEditorsSafe = useRefSafeCallback(onChangeInitializedEditors || (() => {\n }));\n useEffect(() => {\n var _a;\n if (currentContextWatchdog.status !== \"initialized\") {\n return;\n }\n const { watchdog } = currentContextWatchdog;\n const editors = (_a = watchdog == null ? void 0 : watchdog.context) == null ? void 0 : _a.editors;\n if (!editors) {\n return;\n }\n const getInitializedContextEditors = () => [...editors].reduce(\n (map, editor) => {\n var _a2;\n if (editor.state !== \"ready\") {\n return map;\n }\n const metadata = tryExtractCKEditorReactContextMetadata(editor.config);\n const nameOrId = (_a2 = metadata == null ? void 0 : metadata.name) != null ? _a2 : editor.id;\n map[nameOrId] = {\n instance: editor,\n metadata\n };\n return map;\n },\n /* @__PURE__ */ Object.create({})\n // Prevent the prototype pollution.\n );\n const onEditorStatusChange = () => {\n onChangeInitializedEditorsSafe(\n getInitializedContextEditors(),\n watchdog\n );\n };\n const trackEditorLifecycle = (editor) => {\n editor.once(\"ready\", onEditorStatusChange, { priority: \"lowest\" });\n editor.once(\"destroy\", onEditorStatusChange, { priority: \"lowest\" });\n };\n const onAddEditorToCollection = (_, editor) => {\n trackEditorLifecycle(editor);\n };\n editors.forEach(trackEditorLifecycle);\n editors.on(\"add\", onAddEditorToCollection);\n if (Array.from(editors).some((editor) => editor.state === \"ready\")) {\n onEditorStatusChange();\n }\n return () => {\n editors.off(\"add\", onAddEditorToCollection);\n };\n }, [currentContextWatchdog]);\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 ContextWatchdogContext = React.createContext(null);\nconst CKEditorContext = (props) => {\n const {\n id,\n context,\n watchdogConfig,\n children,\n config,\n onReady,\n contextWatchdog: ContextWatchdogConstructor,\n isLayoutReady = true,\n onChangeInitializedEditors,\n onError = (error, details) => console.error(error, details)\n } = props;\n const isMountedRef = useIsMountedRef();\n const prevWatchdogInitializationIDRef = useRef(null);\n const [currentContextWatchdog, setCurrentContextWatchdog] = useState({\n status: \"initializing\"\n });\n useEffect(() => {\n if (isLayoutReady) {\n initializeContextWatchdog();\n } else {\n setCurrentContextWatchdog({\n status: \"initializing\"\n });\n }\n }, [id, isLayoutReady]);\n useEffect(() => () => {\n if (currentContextWatchdog.status === \"initialized\") {\n currentContextWatchdog.watchdog.destroy();\n }\n }, [currentContextWatchdog]);\n useInitializedCKEditorsMap({\n currentContextWatchdog,\n onChangeInitializedEditors\n });\n function regenerateInitializationID() {\n prevWatchdogInitializationIDRef.current = uid();\n return prevWatchdogInitializationIDRef.current;\n }\n function canUpdateState(initializationID) {\n return prevWatchdogInitializationIDRef.current === initializationID && isMountedRef.current;\n }\n function initializeContextWatchdog() {\n const watchdogInitializationID = regenerateInitializationID();\n const contextWatchdog = new ContextWatchdogConstructor(context, watchdogConfig);\n contextWatchdog.on(\"error\", (_, errorEvent) => {\n /* istanbul ignore else -- @preserve */\n if (canUpdateState(watchdogInitializationID)) {\n onError(errorEvent.error, {\n phase: \"runtime\",\n willContextRestart: errorEvent.causesRestart\n });\n }\n });\n contextWatchdog.on(\"stateChange\", () => {\n if (onReady && contextWatchdog.state === \"ready\" && canUpdateState(watchdogInitializationID)) {\n onReady(\n contextWatchdog.context,\n contextWatchdog\n );\n }\n });\n contextWatchdog.create(config).then(() => {\n if (canUpdateState(watchdogInitializationID)) {\n setCurrentContextWatchdog({\n status: \"initialized\",\n watchdog: contextWatchdog\n });\n } else {\n contextWatchdog.destroy();\n }\n }).catch((error) => {\n if (canUpdateState(watchdogInitializationID)) {\n onError(error, {\n phase: \"initialization\",\n willContextRestart: false\n });\n setCurrentContextWatchdog({\n status: \"error\",\n error\n });\n }\n });\n return contextWatchdog;\n }\n return /* @__PURE__ */ React.createElement(ContextWatchdogContext.Provider, { value: currentContextWatchdog }, children);\n};\nconst isContextWatchdogValue = (obj) => !!obj && typeof obj === \"object\" && \"status\" in obj && [\"initializing\", \"initialized\", \"error\"].includes(obj.status);\nconst isContextWatchdogValueWithStatus = (status) => (obj) => isContextWatchdogValue(obj) && obj.status === status;\nconst isContextWatchdogInitializing = isContextWatchdogValueWithStatus(\"initializing\");\nconst isContextWatchdogReadyToUse = (obj) => isContextWatchdogValueWithStatus(\"initialized\")(obj) && obj.watchdog.state === \"ready\";\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 ReactIntegrationUsageDataPlugin = createIntegrationUsageDataPlugin(\n \"react\",\n {\n version: \"9.5.0\",\n frameworkVersion: React.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 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 ReactIntegrationUsageDataPlugin\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 REACT_INTEGRATION_READ_ONLY_LOCK_ID$1 = \"Lock from React integration (@ckeditor/ckeditor5-react)\";\nclass CKEditor extends React.Component {\n constructor(props) {\n super(props);\n /**\n * After mounting the editor, the variable will contain a reference to the created editor.\n * @see: https://ckeditor.com/docs/ckeditor5/latest/api/module_core_editor_editor-Editor.html\n */\n __publicField(this, \"domContainer\", React.createRef());\n /**\n * Unlocks element in editor semaphore after destroy editor instance.\n */\n __publicField(this, \"editorSemaphore\", null);\n this._checkVersion();\n }\n /**\n * Checks if the CKEditor version used in the application is compatible with the component.\n */\n _checkVersion() {\n const { CKEDITOR_VERSION } = window;\n if (!CKEDITOR_VERSION) {\n return console.warn('Cannot find the \"CKEDITOR_VERSION\" in the \"window\" scope.');\n }\n const [major] = CKEDITOR_VERSION.split(\".\").map(Number);\n if (major >= 42 || CKEDITOR_VERSION.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 get _semaphoreValue() {\n const { editorSemaphore } = this;\n return editorSemaphore ? editorSemaphore.value : null;\n }\n /**\n * An watchdog instance.\n */\n get watchdog() {\n const { _semaphoreValue } = this;\n return _semaphoreValue ? _semaphoreValue.watchdog : null;\n }\n /**\n * An editor instance.\n */\n get editor() {\n const { _semaphoreValue } = this;\n return _semaphoreValue ? _semaphoreValue.instance : null;\n }\n /**\n * The CKEditor component should not be updated by React itself.\n * However, if the component identifier changes, the whole structure should be created once again.\n */\n shouldComponentUpdate(nextProps) {\n const { props, editorSemaphore } = this;\n if (nextProps.id !== props.id) {\n return true;\n }\n if (nextProps.disableWatchdog !== props.disableWatchdog) {\n return true;\n }\n if (editorSemaphore) {\n editorSemaphore.runAfterMount(({ instance }) => {\n if (this._shouldUpdateEditorData(props, nextProps, instance)) {\n instance.data.set(nextProps.data);\n }\n });\n if (\"disabled\" in nextProps) {\n editorSemaphore.runAfterMount(({ instance }) => {\n if (nextProps.disabled) {\n instance.enableReadOnlyMode(REACT_INTEGRATION_READ_ONLY_LOCK_ID$1);\n } else {\n instance.disableReadOnlyMode(REACT_INTEGRATION_READ_ONLY_LOCK_ID$1);\n }\n });\n }\n }\n return false;\n }\n /**\n * Initialize the editor when the component is mounted.\n */\n componentDidMount() {\n if (!isContextWatchdogInitializing(this.context)) {\n this._initLifeCycleSemaphore();\n }\n }\n /**\n * Re-render the entire component once again. The old editor will be destroyed and the new one will be created.\n */\n componentDidUpdate() {\n if (!isContextWatchdogInitializing(this.context)) {\n this._initLifeCycleSemaphore();\n }\n }\n /**\n * Destroy the editor before unmounting the component.\n */\n componentWillUnmount() {\n this._unlockLifeCycleSemaphore();\n }\n /**\n * Async destroy attached editor and unlock element semaphore.\n */\n _unlockLifeCycleSemaphore() {\n if (this.editorSemaphore) {\n this.editorSemaphore.release();\n this.editorSemaphore = null;\n }\n }\n /**\n * Unlocks previous editor semaphore and creates new one..\n */\n _initLifeCycleSemaphore() {\n this._unlockLifeCycleSemaphore();\n this.editorSemaphore = new LifeCycleElementSemaphore(this.domContainer.current, {\n mount: async () => this._initializeEditor(),\n afterMount: ({ mountResult }) => {\n const { onReady } = this.props;\n if (onReady && this.domContainer.current !== null) {\n onReady(mountResult.instance);\n }\n },\n unmount: async ({ element, mountResult }) => {\n const { onAfterDestroy } = this.props;\n try {\n await this._destroyEditor(mountResult);\n element.innerHTML = \"\";\n } finally {\n if (onAfterDestroy) {\n onAfterDestroy(mountResult.instance);\n }\n }\n }\n });\n }\n /**\n * Render a <div> element which will be replaced by CKEditor.\n */\n render() {\n return /* @__PURE__ */ React.createElement(\"div\", { ref: this.domContainer });\n }\n /**\n * Initializes the editor by creating a proper watchdog and initializing it with the editor's configuration.\n */\n async _initializeEditor() {\n if (this.props.disableWatchdog) {\n const instance = await this._createEditor(this.domContainer.current, this._getConfig());\n return {\n instance,\n watchdog: null\n };\n }\n const watchdog = (() => {\n if (isContextWatchdogReadyToUse(this.context)) {\n return new EditorWatchdogAdapter(this.context.watchdog);\n }\n return new this.props.editor.EditorWatchdog(this.props.editor, this.props.watchdogConfig);\n })();\n const totalRestartsRef = {\n current: 0\n };\n watchdog.setCreator(async (el, config) => {\n var _a;\n const { editorSemaphore } = this;\n const { onAfterDestroy } = this.props;\n if (totalRestartsRef.current > 0 && onAfterDestroy && ((_a = editorSemaphore == null ? void 0 : editorSemaphore.value) == null ? void 0 : _a.instance)) {\n onAfterDestroy(editorSemaphore.value.instance);\n }\n const instance = await this._createEditor(el, config);\n if (editorSemaphore && totalRestartsRef.current > 0) {\n editorSemaphore.unsafeSetValue({\n instance,\n watchdog\n });\n setTimeout(() => {\n if (this.props.onReady) {\n this.props.onReady(watchdog.editor);\n }\n });\n }\n totalRestartsRef.current++;\n return instance;\n });\n watchdog.on(\"error\", (_, { error, causesRestart }) => {\n const onError = this.props.onError || console.error;\n onError(error, { phase: \"runtime\", willEditorRestart: causesRestart });\n });\n await watchdog.create(this.domContainer.current, this._getConfig()).catch((error) => {\n const onError = this.props.onError || console.error;\n onError(error, { phase: \"initialization\", willEditorRestart: false });\n });\n return {\n watchdog,\n instance: watchdog.editor\n };\n }\n /**\n * Creates an editor from the element and configuration.\n *\n * @param element The source element.\n * @param config CKEditor 5 editor configuration.\n */\n _createEditor(element, config) {\n const { contextItemMetadata } = this.props;\n if (contextItemMetadata) {\n config = withCKEditorReactContextMetadata(contextItemMetadata, config);\n }\n return this.props.editor.create(\n element,\n appendAllIntegrationPluginsToConfig(config)\n ).then((editor) => {\n if (\"disabled\" in this.props) {\n /* istanbul ignore else -- @preserve */\n if (this.props.disabled) {\n editor.enableReadOnlyMode(REACT_INTEGRATION_READ_ONLY_LOCK_ID$1);\n }\n }\n const modelDocument = editor.model.document;\n const viewDocument = editor.editing.view.document;\n modelDocument.on(\"change:data\", (event) => {\n /* istanbul ignore else -- @preserve */\n if (this.props.onChange) {\n this.props.onChange(event, editor);\n }\n });\n viewDocument.on(\"focus\", (event) => {\n /* istanbul ignore else -- @preserve */\n if (this.props.onFocus) {\n this.props.onFocus(event, editor);\n }\n });\n viewDocument.on(\"blur\", (event) => {\n /* istanbul ignore else -- @preserve */\n if (this.props.onBlur) {\n this.props.onBlur(event, editor);\n }\n });\n return editor;\n });\n }\n /**\n * Destroys the editor by destroying the watchdog.\n */\n async _destroyEditor(initializeResult) {\n const { watchdog, instance } = initializeResult;\n return new Promise((resolve, reject) => {\n /* istanbul ignore next -- @preserve */\n setTimeout(async () => {\n try {\n if (watchdog) {\n await watchdog.destroy();\n return resolve();\n }\n if (instance) {\n await instance.destroy();\n return resolve();\n }\n resolve();\n } catch (e) {\n console.error(e);\n reject(e);\n }\n });\n });\n }\n /**\n * Returns true when the editor should be updated.\n *\n * @param prevProps Previous react's properties.\n * @param nextProps React's properties.\n * @param editor Current editor instance.\n */\n _shouldUpdateEditorData(prevProps, nextProps, editor) {\n if (prevProps.data === nextProps.data) {\n return false;\n }\n if (editor.data.get() === nextProps.data) {\n return false;\n }\n return true;\n }\n /**\n * Returns the editor configuration.\n */\n _getConfig() {\n const config = this.props.config || {};\n if (this.props.data && config.initialData) {\n console.warn(\n \"Editor data should be provided either using `config.initialData` or `content` property. The config value takes precedence over `content` property and will be used when both are specified.\"\n );\n }\n return {\n ...config,\n initialData: config.initialData || this.props.data || \"\"\n };\n }\n}\n__publicField(CKEditor, \"contextType\", ContextWatchdogContext);\nclass EditorWatchdogAdapter {\n /**\n * @param contextWatchdog The context watchdog instance that will be wrapped into editor watchdog API.\n */\n constructor(contextWatchdog) {\n /**\n * The context watchdog instance that will be wrapped into editor watchdog API.\n */\n __publicField(this, \"_contextWatchdog\");\n /**\n * A unique id for the adapter to distinguish editor items when using the context watchdog API.\n */\n __publicField(this, \"_id\");\n /**\n * A watchdog's editor creator function.\n */\n __publicField(this, \"_creator\");\n this._contextWatchdog = contextWatchdog;\n this._id = uid();\n }\n /**\n * @param creator A watchdog's editor creator function.\n */\n setCreator(creator) {\n this._creator = creator;\n }\n /**\n * Adds an editor configuration to the context watchdog registry. Creates an instance of it.\n *\n * @param sourceElementOrData A source element or data for the new editor.\n * @param config CKEditor 5 editor config.\n */\n create(sourceElementOrData, config) {\n return this._contextWatchdog.add({\n sourceElementOrData,\n config,\n creator: this._creator,\n id: this._id,\n type: \"editor\"\n });\n }\n /**\n * Creates a listener that is attached to context watchdog's item and run when the context watchdog fires.\n * Currently works only for the `error` event.\n */\n on(_, callback) {\n this._contextWatchdog.on(\"itemError\", (_2, { itemId, error }) => {\n if (itemId === this._id) {\n callback(null, { error, causesRestart: void 0 });\n }\n });\n }\n destroy() {\n if (this._contextWatchdog.state === \"ready\") {\n return this._contextWatchdog.remove(this._id);\n }\n return Promise.resolve();\n }\n /**\n * An editor instance.\n */\n get editor() {\n return this._contextWatchdog.getItem(this._id);\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 useLifeCycleSemaphoreSyncRef = () => {\n const semaphoreRef = useRef(null);\n const [revision, setRevision] = useState(() => Date.now());\n const refresh = () => {\n setRevision(Date.now());\n };\n const release = (rerender = true) => {\n if (semaphoreRef.current) {\n semaphoreRef.current.release();\n semaphoreRef.current = null;\n }\n if (rerender) {\n setRevision(Date.now());\n }\n };\n const unsafeSetValue = (value) => {\n var _a;\n (_a = semaphoreRef.current) == null ? void 0 : _a.unsafeSetValue(value);\n refresh();\n };\n const runAfterMount = (callback) => {\n if (semaphoreRef.current) {\n semaphoreRef.current.runAfterMount(callback);\n }\n };\n const replace = (newSemaphore) => {\n release(false);\n semaphoreRef.current = newSemaphore();\n refresh();\n runAfterMount(refresh);\n };\n const createAttributeRef = (key) => ({\n get current() {\n if (!semaphoreRef.current || !semaphoreRef.current.value) {\n return null;\n }\n return semaphoreRef.current.value[key];\n }\n });\n return {\n get current() {\n return semaphoreRef.current;\n },\n revision,\n createAttributeRef,\n unsafeSetValue,\n release,\n replace,\n runAfterMount\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 mergeRefs(...refs) {\n return (value) => {\n refs.forEach((ref) => {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref != null) {\n ref.current = value;\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 useInstantEffect = (fn, deps) => {\n const [prevDeps, setDeps] = useState(null);\n if (!shallowCompareArrays(prevDeps, deps)) {\n fn();\n setDeps([...deps]);\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 useInstantEditorEffect = (semaphore, fn, deps) => {\n useInstantEffect(() => {\n if (semaphore) {\n semaphore.runAfterMount(fn);\n }\n }, [semaphore, ...deps]);\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 REACT_INTEGRATION_READ_ONLY_LOCK_ID = \"Lock from React integration (@ckeditor/ckeditor5-react)\";\nconst useMultiRootEditor = (props) => {\n const semaphoreElementRef = useRef(props.semaphoreElement || null);\n const semaphore = useLifeCycleSemaphoreSyncRef();\n const editorRefs = {\n watchdog: semaphore.createAttributeRef(\"watchdog\"),\n instance: semaphore.createAttributeRef(\"instance\")\n };\n const context = useContext(ContextWatchdogContext);\n const [roots, setRoots] = useState(() => Object.keys(props.data));\n const [data, setData] = useState({ ...props.data });\n const [attributes, setAttributes] = useState({ ...props.rootsAttributes });\n const shouldUpdateEditor = useRef(true);\n const forceAssignFakeEditableElements = () => {\n const editor = editorRefs.instance.current;\n if (!editor) {\n return;\n }\n const initializeEditableWithFakeElement = (editable) => {\n if (editable.name && !editor.editing.view.getDomRoot(editable.name)) {\n editor.editing.view.attachDomRoot(document.createElement(\"div\"), editable.name);\n }\n };\n Object.values(editor.ui.view.editables).forEach(initializeEditableWithFakeElement);\n };\n useEffect(() => {\n const semaphoreElement = semaphoreElementRef.current;\n if (context && !isContextWatchdogReadyToUse(context)) {\n return;\n }\n if (!semaphoreElement || props.isLayoutReady === false) {\n return;\n }\n semaphore.replace(() => new LifeCycleElementSemaphore(semaphoreElement, {\n mount: _initializeEditor,\n afterMount: ({ mountResult }) => {\n const { onReady } = props;\n if (onReady && semaphoreElementRef.current !== null) {\n onReady(mountResult.instance);\n }\n },\n unmount: async ({ element, mountResult }) => {\n const { onAfterDestroy } = props;\n try {\n await _destroyEditor(mountResult);\n element.innerHTML = \"\";\n } finally {\n if (onAfterDestroy) {\n onAfterDestroy(mountResult.instance);\n }\n }\n }\n }));\n return () => {\n forceAssignFakeEditableElements();\n semaphore.release(false);\n };\n }, [props.id, props.isLayoutReady, context == null ? void 0 : context.status]);\n const _getConfig = () => {\n const config = props.config || {};\n if (props.data && config.initialData) {\n console.warn(\n \"Editor data should be provided either using `config.initialData` or `data` property. The config value takes precedence over `data` property and will be used when both are specified.\"\n );\n }\n return {\n ...config,\n rootsAttributes: attributes\n };\n };\n const onChangeData = useRefSafeCallback((editor, event) => {\n const modelDocument = editor.model.document;\n if (!props.disableTwoWayDataBinding) {\n const newData = {};\n const newAttributes = {};\n modelDocument.differ.getChanges().forEach((change) => {\n let root;\n /* istanbul ignore else -- @preserve */\n if (change.type == \"insert\" || change.type == \"remove\") {\n root = change.position.root;\n } else {\n root = change.range.root;\n }\n if (!root.isAttached()) {\n return;\n }\n const { rootName } = root;\n newData[rootName] = editor.getData({ rootName });\n });\n modelDocument.differ.getChangedRoots().forEach((changedRoot) => {\n if (changedRoot.state) {\n if (newData[changedRoot.name] !== void 0) {\n delete newData[changedRoot.name];\n }\n return;\n }\n const rootName = changedRoot.name;\n newAttributes[rootName] = editor.getRootAttributes(rootName);\n });\n if (Object.keys(newData).length) {\n setData((previousData) => ({ ...previousData, ...newData }));\n }\n if (Object.keys(newAttributes).length) {\n setAttributes((previousAttributes) => ({ ...previousAttributes, ...newAttributes }));\n }\n }\n /* istanbul ignore else -- @preserve */\n if (props.onChange) {\n props.onChange(event, editor);\n }\n });\n const onAddRoot = useRefSafeCallback((editor, _evt, root) => {\n const rootName = root.rootName;\n if (!props.disableTwoWayDataBinding) {\n setData(\n (previousData) => ({ ...previousData, [rootName]: editor.getData({ rootName }) })\n );\n setAttributes(\n (previousAttributes) => ({ ...previousAttributes, [rootName]: editor.getRootAttributes(rootName) })\n );\n }\n setRoots((prevRoots) => uniq([...prevRoots, root.rootName]));\n });\n const onDetachRoot = useRefSafeCallback((_editor, _evt, root) => {\n const rootName = root.rootName;\n if (!props.disableTwoWayDataBinding) {\n setData((previousData) => {\n const { [rootName]: _, ...newData } = previousData;\n return { ...newData };\n });\n setAttributes((previousAttributes) => {\n const { [rootName]: _, ...newAttributes } = previousAttributes;\n return { ...newAttributes };\n });\n }\n setRoots((prevRoots) => prevRoots.filter((root2) => root2 !== rootName));\n });\n const _createEditor = useRefSafeCallback((initialData, config) => {\n overwriteObject({ ...props.rootsAttributes }, attributes);\n overwriteObject({ ...props.data }, data);\n overwriteArray(Object.keys(props.data), roots);\n return props.editor.create(\n initialData,\n appendAllIntegrationPluginsToConfig(config)\n ).then((editor) => {\n const editorData = editor.getFullData();\n overwriteObject({ ...editorData }, data);\n overwriteObject({ ...editor.getRootsAttributes() }, attributes);\n overwriteArray(Object.keys(editorData), roots);\n if (props.disabled) {\n /* istanbul ignore else -- @preserve */\n editor.enableReadOnlyMode(REACT_INTEGRATION_READ_ONLY_LOCK_ID);\n }\n const modelDocument = editor.model.document;\n const viewDocument = editor.editing.view.document;\n modelDocument.on(\"change:data\", (evt) => onChangeData(editor, evt));\n editor.on(\"addRoot\", (evt, root) => onAddRoot(editor, evt, root));\n editor.on(\"detachRoot\", (evt, root) => onDetachRoot(editor, evt, root));\n viewDocument.on(\"focus\", (event) => {\n /* istanbul ignore else -- @preserve */\n if (props.onFocus) {\n props.onFocus(event, editor);\n }\n });\n viewDocument.on(\"blur\", (event) => {\n /* istanbul ignore else -- @preserve */\n if (props.onBlur) {\n props.onBlur(event, editor);\n }\n });\n return editor;\n });\n });\n const _destroyEditor = (initializeResult) => {\n const { watchdog, instance } = initializeResult;\n return new Promise((resolve, reject) => {\n /* istanbul ignore next -- @preserve */\n setTimeout(async () => {\n try {\n if (watchdog) {\n await watchdog.destroy();\n return resolve();\n }\n if (instance) {\n await instance.destroy();\n return resolve();\n }\n resolve();\n } catch (e) {\n console.error(e);\n reject(e);\n }\n });\n });\n };\n const _initializeEditor = async () => {\n if (props.disableWatchdog) {\n const instance = await _createEditor(props.data, _getConfig());\n return {\n instance,\n watchdog: null\n };\n }\n const watchdog = (() => {\n if (isContextWatchdogReadyToUse(context)) {\n return new EditorWatchdogAdapter(context.watchdog);\n }\n return new props.editor.EditorWatchdog(props.editor, props.watchdogConfig);\n })();\n const totalRestartsRef = {\n current: 0\n };\n watchdog.setCreator(async (_, config) => {\n const { onAfterDestroy } = props;\n if (totalRestartsRef.current > 0 && onAfterDestroy && editorRefs.instance.current) {\n onAfterDestroy(editorRefs.instance.current);\n }\n const instance = await _createEditor(data, config);\n if (totalRestartsRef.current > 0) {\n semaphore.unsafeSetValue({\n instance,\n watchdog\n });\n setTimeout(() => {\n /* istanbul ignore next -- @preserve */\n if (props.onReady) {\n props.onReady(watchdog.editor);\n }\n });\n }\n totalRestartsRef.current++;\n return instance;\n });\n watchdog.on(\"error\", (_, { error, causesRestart }) => {\n const onError = props.onError || console.error;\n onError(error, { phase: \"runtime\", willEditorRestart: causesRestart });\n });\n await watchdog.create(data, _getConfig()).catch((error) => {\n const onError = props.onError || console.error;\n onError(error, { phase: \"initialization\", willEditorRestart: false });\n throw error;\n });\n return {\n watchdog,\n instance: watchdog.editor\n };\n };\n const _getStateDiff = (previousState, newState) => {\n const previousStateKeys = Object.keys(previousState);\n const newStateKeys = Object.keys(newState);\n return {\n addedKeys: newStateKeys.filter((key) => !previousStateKeys.includes(key)),\n removedKeys: previousStateKeys.filter((key) => !newStateKeys.includes(key))\n };\n };\n const _externalSetData = useCallback(\n (newData) => {\n semaphore.runAfterMount(() => {\n shouldUpdateEditor.current = true;\n setData(newData);\n });\n },\n [setData]\n );\n const _externalSetAttributes = useCallback(\n (newAttributes) => {\n semaphore.runAfterMount(() => {\n shouldUpdateEditor.current = true;\n setAttributes(newAttributes);\n });\n },\n [setAttributes]\n );\n const toolbarElement = /* @__PURE__ */ React.createElement(\n EditorToolbarWrapper,\n {\n ref: semaphoreElementRef,\n editor: editorRefs.instance.current\n }\n );\n useInstantEditorEffect(semaphore.current, ({ instance }) => {\n if (props.disabled) {\n instance.enableReadOnlyMode(REACT_INTEGRATION_READ_ONLY_LOCK_ID);\n } else {\n instance.disableReadOnlyMode(REACT_INTEGRATION_READ_ONLY_LOCK_ID);\n }\n }, [props.disabled]);\n useInstantEditorEffect(semaphore.current, ({ instance }) => {\n if (shouldUpdateEditor.current) {\n shouldUpdateEditor.current = false;\n const dataKeys = Object.keys(data);\n const attributesKeys = Object.keys(attributes);\n if (!dataKeys.every((key) => attributesKeys.includes(key))) {\n console.error(\"`data` and `attributes` objects must have the same keys (roots).\");\n throw new Error(\"`data` and `attributes` objects must have the same keys (roots).\");\n }\n const editorData = instance.getFullData();\n const editorAttributes = instance.getRootsAttributes();\n const {\n addedKeys: newRoots,\n removedKeys: removedRoots\n } = _getStateDiff(\n editorData,\n data || /* istanbul ignore next -- @preserve: It should never happen, data should be always filled. */\n {}\n );\n const modifiedRoots = dataKeys.filter(\n (rootName) => editorData[rootName] !== void 0 && JSON.stringify(editorData[rootName]) !== JSON.stringify(data[rootName])\n );\n const rootsWithChangedAttributes = attributesKeys.filter((rootName) => JSON.stringify(editorAttributes[rootName]) !== JSON.stringify(attributes[rootName]));\n const _handleNewRoots = (roots2) => {\n roots2.forEach((rootName) => {\n instance.addRoot(rootName, {\n data: data[rootName] || \"\",\n attributes: (attributes == null ? void 0 : attributes[rootName]) || /* istanbul ignore next -- @preserve: attributes should be in sync with root keys */\n {},\n isUndoable: true\n });\n });\n };\n const _handleRemovedRoots = (roots2) => {\n roots2.forEach((rootName) => {\n instance.detachRoot(rootName, true);\n });\n };\n const _updateEditorData = (roots2) => {\n const dataToUpdate = roots2.reduce(\n (result, rootName) => ({ ...result, [rootName]: data[rootName] }),\n /* @__PURE__ */ Object.create(null)\n );\n instance.data.set(dataToUpdate, { suppressErrorInCollaboration: true });\n };\n const _updateEditorAttributes = (writer, roots2) => {\n roots2.forEach((rootName) => {\n Object.keys(attributes[rootName]).forEach((attr) => {\n instance.registerRootAttribute(attr);\n });\n writer.clearAttributes(instance.model.document.getRoot(rootName));\n writer.setAttributes(attributes[rootName], instance.model.document.getRoot(rootName));\n });\n };\n setTimeout(() => {\n instance.model.change((writer) => {\n _handleNewRoots(newRoots);\n _handleRemovedRoots(removedRoots);\n if (modifiedRoots.length) {\n _updateEditorData(modifiedRoots);\n }\n if (rootsWithChangedAttributes.length) {\n _updateEditorAttributes(writer, rootsWithChangedAttributes);\n }\n });\n });\n }\n }, [data, attributes]);\n const editableElements = roots.map(\n (rootName) => /* @__PURE__ */ React.createElement(\n EditorEditable,\n {\n key: rootName,\n id: rootName,\n rootName,\n semaphore\n }\n )\n );\n return {\n editor: editorRefs.instance.current,\n editableElements,\n toolbarElement,\n data,\n setData: _externalSetData,\n attributes,\n setAttributes: _externalSetAttributes\n };\n};\nconst EditorEditable = memo(forwardRef(({ id, semaphore, rootName }, ref) => {\n const innerRef = useRef(null);\n useEffect(() => {\n let editable;\n let editor;\n semaphore.runAfterMount(({ instance }) => {\n if (!innerRef.current) {\n return;\n }\n editor = instance;\n const { ui, model } = editor;\n const root = model.document.getRoot(rootName);\n if (root && editor.ui.getEditableElement(rootName)) {\n editor.detachEditable(root);\n }\n editable = ui.view.createEditable(rootName, innerRef.current);\n ui.addEditable(editable);\n instance.editing.view.forceRender();\n });\n return () => {\n if (editor && editor.state !== \"destroyed\" && innerRef.current) {\n const root = editor.model.document.getRoot(rootName);\n /* istanbul ignore else -- @preserve */\n if (root) {\n editor.detachEditable(root);\n }\n }\n };\n }, [semaphore.revision]);\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n key: semaphore.revision,\n id,\n ref: mergeRefs(ref, innerRef)\n }\n );\n}));\nEditorEditable.displayName = \"EditorEditable\";\nconst EditorToolbarWrapper = forwardRef(({ editor }, ref) => {\n const toolbarRef = useRef(null);\n useEffect(() => {\n const toolbarContainer = toolbarRef.current;\n if (!editor || !toolbarContainer) {\n return void 0;\n }\n const element = editor.ui.view.toolbar.element;\n toolbarContainer.appendChild(element);\n return () => {\n if (toolbarContainer.contains(element)) {\n toolbarContainer.removeChild(element);\n }\n };\n }, [editor && editor.id]);\n return /* @__PURE__ */ React.createElement(\"div\", { ref: mergeRefs(toolbarRef, ref) });\n});\nEditorToolbarWrapper.displayName = \"EditorToolbarWrapper\";\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 useIsUnmountedRef = () => {\n const mountedRef = useRef(false);\n useEffect(() => {\n mountedRef.current = false;\n return () => {\n mountedRef.current = true;\n };\n }, []);\n return mountedRef;\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 useAsyncCallback = (callback) => {\n const [asyncState, setAsyncState] = useState({\n status: \"idle\"\n });\n const unmountedRef = useIsUnmountedRef();\n const prevExecutionUIDRef = useRef(null);\n const asyncExecutor = useRefSafeCallback(async (...args) => {\n if (unmountedRef.current || isSSR()) {\n return null;\n }\n const currentExecutionUUID = uid();\n prevExecutionUIDRef.current = currentExecutionUUID;\n try {\n if (asyncState.status !== \"loading\") {\n setAsyncState({\n status: \"loading\"\n });\n }\n const result = await callback(...args);\n if (!unmountedRef.current && prevExecutionUIDRef.current === currentExecutionUUID) {\n setAsyncState({\n status: \"success\",\n data: result\n });\n }\n return result;\n } catch (error) {\n console.error(error);\n if (!unmountedRef.current && prevExecutionUIDRef.current === currentExecutionUUID) {\n setAsyncState({\n status: \"error\",\n error\n });\n }\n }\n return null;\n });\n return [asyncExecutor, asyncState];\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 useAsyncValue = (callback, deps) => {\n const [asyncCallback, asyncState] = useAsyncCallback(callback);\n useInstantEffect(asyncCallback, deps);\n if (asyncState.status === \"idle\") {\n return {\n status: \"loading\"\n };\n }\n return asyncState;\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 useCKEditorCloud(config) {\n const serializedConfigKey = JSON.stringify(config);\n const result = useAsyncValue(\n async () => loadCKEditorCloud(config),\n [serializedConfigKey]\n );\n if (result.status === \"success\") {\n return {\n ...result.data,\n status: \"success\"\n };\n }\n return result;\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 withCKEditorCloud = (config) => (WrappedComponent) => {\n const ComponentWithCKEditorCloud = (props) => {\n var _a, _b;\n const ckeditorCloudResult = useCKEditorCloud(config.cloud);\n switch (ckeditorCloudResult.status) {\n case \"error\":\n if (!config.renderError) {\n return \"Unable to load CKEditor Cloud data!\";\n }\n return config.renderError(ckeditorCloudResult.error);\n case \"success\":\n return /* @__PURE__ */ React.createElement(WrappedComponent, { ...props, cloud: ckeditorCloudResult });\n default:\n return (_b = (_a = config.renderLoader) == null ? void 0 : _a.call(config)) != null ? _b : null;\n }\n };\n ComponentWithCKEditorCloud.displayName = \"ComponentWithCKEditorCloud\";\n return ComponentWithCKEditorCloud;\n};\nexport {\n CKEditor,\n CKEditorContext,\n loadCKEditorCloud2 as loadCKEditorCloud,\n useCKEditorCloud,\n useMultiRootEditor,\n withCKEditorCloud\n};\n//# sourceMappingURL=index.js.map\n","import React, { useEffect, useState, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { useForm, Controller } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport { CKEditor } from \"@ckeditor/ckeditor5-react\";\nimport Grid from \"@mui/material/Grid2\";\nimport * as Yup from \"yup\";\nimport {\n Button,\n IconButton,\n Modal,\n Typography,\n Box,\n FormControl,\n MenuItem,\n Select,\n FormControlLabel,\n Checkbox,\n Stack,\n TextField,\n useTheme,\n} from \"@mui/material\";\nimport CustomTextArea from \"@/views/custom-components/CustomTextArea\";\nimport CustomTextField from \"@/views/custom-components/CustomTextField\";\nimport {\n execute,\n retrieveAllConfigured,\n getNotificationTypeList,\n} from \"@/common/services/GlobalApis\";\nimport { showToast } from \"@/common/toaster/toaster\";\n// import { useTracking } from \"useranalytics/dist/index.es\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nimport \"./Styles/ManageEventConfiguration.scss\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport { faXmark } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport Editor from \"@/views/custom-components/CkEditor/CkEditor\";\n\n// Define the validation schema using Yup\n\n/**\n * Modal component for configuring other types of event notifications.\n * @module OtherTypeEventConfigModal\n *\n *\n *\n * @param {Object} props - The props for the component.\n * @param {boolean} props.open - Whether the modal is open or not.\n * @param {Function} props.handleClose - Function to close the modal.\n * @param {Function} props.handleClick - Function to handle submission of the modal form.\n * @param {Object} props.type - Configuration type object passed to the modal.\n *\n * @returns {JSX.Element} The rendered modal component.\n */\nconst OtherTypeEventConfigModal = ({\n open,\n handleClose,\n handleClick,\n type,\n}) => {\n const theme = useTheme();\n const isDark = theme.palette.mode === \"dark\";\n const formRef = useRef(null);\n const submitRef = useRef(false);\n const trackEvent = useTrackEvent();\n const [queryMasters, setQueryMasters] = useState([]);\n const [systemFunctions, setSystemFunctions] = useState([]);\n const [kafkaConfigs, setKafkaConfigs] = useState([]);\n const { translate } = useTranslateProvider();\n\n const [notificationTypeList, setnotificationTypeList] = useState([]);\n const validationSchema = Yup.object().shape({\n excetionTypes: Yup.string().test(\n \"is-required\",\n \"Execution type is required\",\n function (value) {\n if (type?.type === \"EXCEPTION\") {\n return !!value;\n }\n return true;\n },\n ),\n mobileNumberFieldName: Yup.string().test(\n \"is-required\",\n \"Enter Sms contact number field name\",\n function (value) {\n if (type?.type === \"SMS\") {\n return !!value;\n }\n return true;\n },\n ),\n smsTypeField: Yup.string().test(\n \"is-required\",\n \"Enter Sms Type Field\",\n function (value) {\n if (type?.type === \"SMS\") {\n return !!value;\n }\n return true;\n },\n ),\n trigerWhen: Yup.string().test(\n \"is-required\",\n \"trigerWhen is required\",\n function (value) {\n if (type?.type != \"EXCEPTION\" && type?.type != \"SYSTEM_FUNCTION\") {\n return !!value;\n }\n return true;\n },\n ),\n baseDateFieldName: Yup.string().test(\n \"is-required\",\n \"Enter Email Id field name\",\n function (value) {\n if (type?.type === \"EMAIL\") {\n return !!value;\n }\n return true;\n },\n ),\n emailSubject: Yup.string().test(\n \"is-required\",\n \"Enter email subject\",\n function (value) {\n if (type?.type === \"EMAIL\") {\n return !!value;\n }\n return true;\n },\n ),\n notificationTypeId: Yup.string().test(\n \"is-required\",\n \"Select type\",\n function (value) {\n if (type?.type === \"PUSH_NOTIFICATION\") {\n return !!value;\n }\n return true;\n },\n ),\n userFieldName: Yup.string().test(\n \"is-required\",\n \"Enter User Id field name\",\n function (value) {\n if (type?.type === \"PUSH_NOTIFICATION\") {\n return !!value;\n }\n return true;\n },\n ),\n heading: Yup.string().test(\n \"is-required\",\n \"Enter heading\",\n function (value) {\n if (type?.type === \"PUSH_NOTIFICATION\" && notificationTypeId) {\n return !!value;\n }\n return true;\n },\n ),\n template: Yup.string().test(\n \"is-required\",\n \"Enter Template\",\n function (value) {\n if (type?.type === \"PUSH_NOTIFICATION\" && notificationTypeId) {\n return !!value;\n }\n return true;\n },\n ),\n });\n\n const {\n control,\n handleSubmit,\n reset,\n setValue,\n unregister,\n getValues,\n watch,\n formState: { errors },\n } = useForm({\n defaultValues: {},\n resolver: yupResolver(validationSchema),\n mode: \"onChange\",\n });\n\n useEffect(() => {\n if (type) {\n loadInitialState();\n Object.keys(type)?.forEach((key) => {\n if (key === \"index\") {\n setValue(key, type[key]);\n }\n if (key === \"smsConfigJson\" && type[key]) {\n const smsConfigJson = type[key];\n Object.keys(smsConfigJson)?.forEach((keys) => {\n setValue(keys, smsConfigJson[keys]);\n });\n } else if (key === \"pushNotificationConfigJson\" && type[key]) {\n const pushNotificationConfigJson = type[key];\n Object.keys(pushNotificationConfigJson)?.forEach((keys) => {\n setValue(keys, pushNotificationConfigJson[keys]);\n });\n } else if (key === \"kafkaConfigJson\" && type[key]) {\n const kafkaConfigJson = type[key];\n Object.keys(kafkaConfigJson)?.forEach((keys) => {\n setValue(keys, kafkaConfigJson[keys]);\n });\n } else if (type[key] !== undefined && type[key] !== null) {\n setValue(key, type[key]);\n if (key === \"miniute\") {\n setValue(\"minute\", type[key]);\n }\n }\n });\n }\n }, [type]);\n\n const queryMasterParamJson = watch(\"queryMasterParamJson\");\n const queryCode = watch(\"queryCode\");\n const systemFunctionId = watch(\"systemFunctionId\");\n const functionParams = watch(\"functionParams\");\n const trigerWhen = watch(\"trigerWhen\");\n const notificationTypeId = watch(\"notificationTypeId\");\n const kafkaParameterJson = watch(\"kafkaParameterJson\");\n const formType = watch(\"formType\");\n\n /**\n * @function setImplicitParameters\n * @async\n * @description Sets implicit parameters based on the selected query master.\n *\n * @param {string} data - The code of the selected query master.\n */\n const setImplicitParameters = async (data) => {\n if (queryMasterParamJson) {\n queryMasterParamJson.forEach((param, index) => {\n setValue(`${param.parameterName}${index}`, \"\");\n\n setValue(`${param.parameterName}${index}isFixed`, false);\n });\n }\n\n let queryMasterParamJsonObj = [];\n\n const queryMaster = queryMasters?.find((master) => master?.code === data);\n if (queryMaster) {\n const params = queryMaster?.params?.split(\",\");\n const uniqueParams = Array.from(new Set(params));\n\n uniqueParams.forEach((param) => {\n queryMasterParamJsonObj.push({ parameterName: param });\n });\n }\n\n setValue(\"queryMasterParamJson\", queryMasterParamJsonObj);\n };\n\n /**\n * @function setFunctionParams\n * @description Sets function parameters based on the selected system function.\n *\n * @param {string} data - The ID of the selected system function.\n */\n const setFunctionParams = (data) => {\n if (functionParams) {\n functionParams.forEach((param, index) => {\n setValue(`${param.parameterName}${index}`, \"\");\n\n setValue(`${param.parameterName}${index}isFixed`, false);\n });\n }\n let functionParams1 = [];\n const systemFunction = systemFunctions.find((func) => func.id === data);\n if (systemFunction) {\n const uniqueParams = Array.from(new Set(systemFunction.parameters));\n uniqueParams.forEach((param) => {\n functionParams1.push(param);\n });\n }\n setValue(\"functionParams\", functionParams1);\n };\n\n /**\n * @function onNotificationTypeChange\n * @description Handles changes in the selected notification type.\n *\n * @param {string} notificationTypeId - The ID of the selected notification type.\n */\n const onNotificationTypeChange = (notificationTypeId) => {\n const notificationType = notificationTypeList.find(\n (type) => type.id === notificationTypeId,\n );\n\n if (notificationType) {\n setValue(\"notificationType\", notificationType);\n setValue(\"template\", notificationType.message);\n setValue(\"heading\", notificationType.heading);\n }\n };\n\n /**\n * @function handleChange\n * @description Updates the value of a field within query or system function parameters.\n *\n * @param {number} index - The index of the parameter configuration to update.\n * @param {string} field - The name of the field to update.\n * @param {*} value - The new value to set.\n */\n const handleChange = (index, field, value) => {\n if (type?.type === \"QUERY\") {\n const newConfigs = [...queryMasterParamJson];\n newConfigs[index][field] = value;\n setValue(\"queryMasterParamJson\", newConfigs);\n }\n if (type?.type === \"SYSTEM_FUNCTION\") {\n const newConfigs = [...functionParams];\n newConfigs[index][field] = value;\n setValue(\"functionParams\", newConfigs);\n }\n if (type?.type === \"KAFKA_SYNC\") {\n const newConfigs = [...kafkaParameterJson];\n newConfigs[index][field] = value;\n setValue(\"kafkaParameterJson\", newConfigs);\n }\n };\n\n /**\n * Updates kafka parameter information based on the selected kafka config.\n * @param {string} selectedFormType - The form_type of the selected kafka config.\n */\n const updateKafkaParameters = (selectedFormType) => {\n const currentParams = getValues(\"kafkaParameterJson\");\n if (currentParams && Array.isArray(currentParams)) {\n currentParams.forEach((param, index) => {\n unregister(`${param.parameterName}${index}`);\n unregister(`${param.parameterName}${index}isFixed`);\n });\n setValue(\"kafkaParameterJson\", [], { shouldValidate: true });\n }\n\n const selectedConfig = kafkaConfigs.find(\n (config) => config.form_type === selectedFormType,\n );\n if (selectedConfig && selectedConfig.param_types) {\n const paramTypes = JSON.parse(selectedConfig.param_types);\n const params = Object.keys(paramTypes).map((key) => {\n return {\n parameterName: key,\n mappingValue: \"\",\n isFixed: false,\n };\n });\n setValue(\"kafkaParameterJson\", params, { shouldValidate: true });\n } else {\n setValue(\"kafkaParameterJson\", [], { shouldValidate: true });\n }\n };\n\n /**\n * @function loadInitialState\n * @async\n * @description Loads the initial state by retrieving necessary data based on the selected type.\n */\n const loadInitialState = async () => {\n try {\n if (type?.type === \"QUERY\") {\n const res = await retrieveAllConfigured(true);\n\n setQueryMasters(res?.data);\n }\n if (type?.type === \"SYSTEM_FUNCTION\") {\n let dto = {\n code: \"system_function_retrieve_all\",\n parameters: {},\n };\n const res = await execute(dto);\n const data = res?.data?.result.map((systemFunction) => {\n systemFunction.parameters = JSON.parse(systemFunction.parameters);\n return systemFunction;\n });\n setSystemFunctions(data);\n }\n if (type?.type === \"PUSH_NOTIFICATION\") {\n const res = await getNotificationTypeList();\n setnotificationTypeList(res?.data);\n }\n if (type?.type === \"KAFKA_SYNC\") {\n const res = await execute({\n code: \"retrieve_all_kafka_configs\",\n parameters: {},\n });\n\n setKafkaConfigs(res?.data?.result || []);\n }\n } catch {\n showToast({ message: \"Error in loading\", type: \"error\" });\n }\n };\n const close = () => {\n trackEvent(\"conversion_event\", {\n form: formRef.current,\n form_name: \"Add Other Type Configuration\",\n submit: submitRef.current,\n }); // Use the current ref value\n\n handleClose();\n };\n /**\n * @function onSubmit\n * @description Handles the form submission and prepares data for the handleClick function.\n *\n * @param {Object} data - The submitted form data.\n */\n\n const onSubmit = (data) => {\n data = JSON.parse(JSON.stringify(data));\n data.minute = Number(data.minute || 0);\n data.miniute = Number(data.minute || 0);\n data.type = type?.type;\n if (type.type === \"SMS\") {\n data.smsConfigJson = {\n mobileNumberFieldName: data.mobileNumberFieldName,\n isPriority: data.isPriority,\n isSmsTypeFixed: data.isSmsTypeFixed,\n smsTypeField: data.smsTypeField,\n };\n delete data.mobileNumberFieldName;\n delete data.isPriority;\n delete data.isSmsTypeFixed;\n delete data.smsTypeField;\n }\n if (type.type === \"PUSH_NOTIFICATION\") {\n data.pushNotificationConfigJson = {\n notificationTypeId: data.notificationTypeId,\n userFieldName: data.userFieldName,\n heading: data.heading,\n template: data.template,\n };\n delete data.notificationTypeId;\n delete data.userFieldName;\n delete data.heading;\n delete data.template;\n }\n if (type.type === \"KAFKA_SYNC\") {\n data.kafkaConfigJson = {\n formType: data.formType,\n kafkaParameterJson: data.kafkaParameterJson,\n };\n }\n queryMasterParamJson?.forEach((param, index) => {\n delete data[`${param?.parameterName}${index}`];\n delete data[`${param?.parameterName}${index}isFixed`];\n });\n functionParams?.forEach((param, index) => {\n delete data[`${param?.parameterName}${index}`];\n delete data[`${param?.parameterName}${index}isFixed`];\n });\n kafkaParameterJson?.forEach((param, index) => {\n delete data[`${param?.parameterName}${index}`];\n delete data[`${param?.parameterName}${index}isFixed`];\n });\n handleClick(data); // Pass the form data to the handleClick function\n submitRef.current = true;\n close();\n reset(); // Close the modal after submitting\n };\n\n return (\n <Modal\n data-testid=\"othertypeeventconfigmodal-modal\"\n open={open}\n className=\"flex items-center justify-center\"\n onClose={() => {\n close();\n reset();\n }}\n sx={{\n \"& .MuiBackdrop-root\": {\n backgroundColor: \"rgba(0, 0, 0, 0.1)\",\n },\n }}\n >\n <Grid\n container\n className=\"w-[90%] md:w-[80%] flex flex-col\"\n sx={{\n // 1. Theme-aware background\n backgroundColor: (theme) => theme.palette.background.paper,\n\n // 2. Dynamic Border/Shadow for Dark Mode\n border: (theme) =>\n theme.palette.mode === \"dark\"\n ? `1px solid ${theme.palette.divider}`\n : \"none\",\n\n // 3. GitHub-style shadow (Soft in light, Deep in dark)\n boxShadow: (theme) =>\n theme.palette.mode === \"dark\"\n ? \"0 8px 24px rgba(0,0,0,0.4)\"\n : theme.shadows[2], // Standard MUI shadow for light mode\n\n borderRadius: \"12px\", // Matches your MuiCard configuration\n transition: \"all 0.3s ease-in-out\",\n // Keeps children inside the rounded corners\n }}\n >\n <Grid\n className=\"manageeventconfiguration-modal-header p-2.5 px-5 flex border-b\"\n data-testid=\"othertypeeventconfigmodal-modal-header\"\n >\n <Typography\n variant=\"body1\"\n className=\"font-medium text-lg text-customBlue\"\n >\n {translate(\"Add\")} {translate(type?.type)}{\" \"}\n {translate(\"Configuration\")}\n </Typography>\n <IconButton\n size=\"small\"\n onClick={() => {\n close();\n reset();\n }}\n data-testid=\"othertypeeventconfigmodal-close-button\"\n >\n <FontAwesomeIcon icon={faXmark} />\n </IconButton>\n </Grid>\n <form\n onSubmit={handleSubmit(onSubmit)}\n ref={formRef}\n data-testid=\"othertypeeventconfigmodal-form\"\n >\n <Grid container className=\" max-h-[60vh] overflow-y-auto w-full\">\n <Grid\n item\n className=\"border-b border-gray-300 p-2.5 flex flex-col items-start\"\n size={{ xs: 12 }}\n >\n <Box className=\"whitespace-normal w-full break-all p-2.5 flex flex-col items-start\">\n <Typography variant=\"body2\" className=\"font-bold\">\n {translate(\"Available Implicit Parameters\")}:{\" \"}\n {type?.implicitParam}{\" \"}\n </Typography>\n </Box>\n </Grid>\n\n <Grid item className=\"p-2.5 w-full\">\n {type?.type === \"EXCEPTION\" && (\n <Grid container spacing={2}>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-exceptionType\"\n >\n <Typography variant=\"body2\">\n {translate(\"Exception\")} {translate(\"Type\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>*</span>\n </Typography>\n <Box className=\" w-full\">\n <Controller\n name=\"excetionTypes\"\n control={control}\n defaultValue=\"\"\n className=\" w-full\"\n render={({ field }) => (\n <Select\n className=\" w-full\"\n {...field}\n error={errors.excetionTypes}\n size=\"small\"\n data-testid=\"othertypeeventconfigmodal-excetionTypes-select\"\n >\n <MenuItem value=\"\">\n <Typography variant=\"body2\">\n {translate(\"Select\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"ImtechoUserException\">\n <Typography variant=\"body2\">\n {translate(\"Imtecho User Exception\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"ImtechoSystemException\">\n <Typography variant=\"body2\">\n {\" \"}\n {translate(\"Imtecho System Exception\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"ImtechoMobileException\">\n <Typography variant=\"body2\">\n {translate(\"Imtecho Mobile Exception\")}\n </Typography>\n </MenuItem>\n </Select>\n )}\n />\n {errors?.excetionTypes && (\n <p\n className=\"error-helper\"\n data-testid=\"custom-error-message\"\n >\n {errors?.excetionTypes?.message}\n </p>\n )}\n </Box>\n </FormControl>\n </Grid>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n {\" \"}\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-exceptionMessage\"\n >\n <Typography variant=\"body2\">\n {translate(\"Message\")}\n </Typography>\n <Box className=\" w-full\">\n <CustomTextArea\n control={control}\n id=\"exceptionMessage\"\n name=\"exceptionMessage\"\n errors={errors}\n label=\"\"\n minRows={5}\n data-testid=\"othertypeeventconfigmodal-exceptionMessage-customtextarea\"\n />\n </Box>\n </FormControl>\n </Grid>\n </Grid>\n )}\n\n {type?.type === \"SMS\" && (\n <Grid container spacing={2}>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-mobileNumberFieldName\"\n >\n <Typography variant=\"body2\">\n {translate(\"SMS\")} {translate(\"Phone number\")}{\" \"}\n {translate(\"Field\")} {translate(\"Name\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>*</span>\n </Typography>\n <Box className=\" w-full\">\n <CustomTextField\n control={control}\n id=\"mobileNumberFieldName\"\n name=\"mobileNumberFieldName\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"othertypeeventconfigmodal-mobileNumberFieldName-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-smsTypeField\"\n >\n <Grid\n container\n justifyContent=\"space-between\"\n alignItems=\"center\"\n >\n <Grid item xs>\n <Typography variant=\"body2\">\n {translate(\"SMS\")} {translate(\"Type\")}{\" \"}\n {translate(\"Field\")} {translate(\"Value\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>\n *\n </span>\n </Typography>\n </Grid>\n <Grid container>\n {\" \"}\n <Grid item>\n <FormControl component=\"fieldset\" className=\"mr-2\">\n <Controller\n control={control}\n name=\"isPriority\"\n defaultValue={false}\n render={({ field }) => (\n <FormControlLabel\n control={\n <Checkbox\n checked={field.value}\n onChange={(e) =>\n field.onChange(e.target.checked)\n }\n data-testid=\"othertypeeventconfigmodal-isPriority-checkbox\"\n />\n }\n label=\"Is Priority\"\n />\n )}\n />\n </FormControl>\n </Grid>\n <Grid item>\n <FormControl component=\"fieldset\" className=\"mr-2\">\n <Controller\n control={control}\n name=\"isSmsTypeFixed\"\n defaultValue={false}\n render={({ field }) => (\n <FormControlLabel\n control={\n <Checkbox\n checked={field.value}\n onChange={(e) =>\n field.onChange(e.target.checked)\n }\n data-testid=\"othertypeeventconfigmodal-isSmsTypeFixed-checkbox\"\n />\n }\n label={translate(\"Is Fixed Value\")}\n />\n )}\n />\n </FormControl>\n </Grid>\n </Grid>\n </Grid>\n\n <Box className=\" w-full\">\n <CustomTextField\n control={control}\n id=\"smsTypeField\"\n name=\"smsTypeField\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"othertypeeventconfigmodal-smsTypeField-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n </Grid>\n )}\n {type?.type === \"EMAIL\" && (\n <Grid container spacing={2} className=\" w-full\">\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-emailIdField\"\n >\n <Typography variant=\"body2\">\n {translate(\"Email\")} {translate(\"Id\")}{\" \"}\n {translate(\"Field\")} {translate(\"Value\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>*</span>\n </Typography>\n <Box className=\" w-full\">\n <CustomTextField\n control={control}\n id=\"baseDateFieldName\"\n name=\"baseDateFieldName\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"othertypeeventconfigmodal-baseDateFieldName-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-emailSubjectField\"\n >\n <Typography variant=\"body2\">\n {translate(\"Email\")} {translate(\"Subject\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>*</span>\n </Typography>\n <Box className=\" w-full\">\n <CustomTextField\n control={control}\n id=\"emailSubject\"\n name=\"emailSubject\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"othertypeeventconfigmodal-emailSubject-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-[95%] md:w-full overflow-auto\"\n data-testid=\"othertypeeventconfigmodal-template\"\n >\n <Typography variant=\"body2\">\n {translate(\"Template\")}\n </Typography>\n <Box\n className=\" w-full\"\n sx={{\n borderRadius: \"8px\",\n overflow: \"hidden\",\n border: `1px solid ${theme.palette.divider}`,\n // This targets the actual writing area\n \"& .ck-editor__main > .ck-editor__editable\": {\n backgroundColor: `${theme.palette.background.paper} !important`,\n color: `${theme.palette.text.primary} !important`,\n minHeight: \"200px\",\n \"&.ck-focused\": {\n borderColor: `${theme.palette.primary.main} !important`,\n },\n },\n // This targets the toolbar\n \"& .ck.ck-toolbar\": {\n backgroundColor: isDark\n ? \"#21262D !important\"\n : \"var(--color-gray4) !important\",\n borderColor: `${theme.palette.divider} !important`,\n },\n // This targets the buttons/icons inside the toolbar\n \"& .ck.ck-toolbar .ck-button\": {\n color: `${theme.palette.text.primary} !important`,\n cursor: \"pointer\",\n \"&:hover\": {\n backgroundColor: isDark\n ? \"#30363D !important\"\n : \"var(--color-gray3) !important\",\n },\n \"&.ck-on\": {\n backgroundColor: isDark\n ? \"#11B66633 !important\"\n : \"var(--color-gray3) !important\",\n color: `${theme.palette.primary.main} !important`,\n },\n },\n // This targets dropdowns and labels\n \"& .ck.ck-label\": {\n color: `${theme.palette.text.secondary} !important`,\n },\n }}\n >\n <CKEditor\n editor={Editor}\n data={getValues(\"template\") || \"\"}\n config={{\n toolbar: [\n \"heading\",\n \"|\",\n \"bold\",\n \"italic\",\n \"underline\",\n \"|\",\n \"cut\",\n \"copy\",\n \"|\", // Added cut and copy\n \"bulletedList\",\n \"numberedList\",\n \"|\",\n \"blockQuote\",\n \"|\",\n \"undo\",\n \"redo\",\n ],\n }}\n onChange={(_, editor) => {\n const data = editor.getData();\n setValue(\"template\", data);\n }}\n data-testid=\"othertypeeventconfigmodal-template-ckeditor\"\n />\n </Box>\n </FormControl>\n </Grid>\n </Grid>\n )}\n {type?.type === \"QUERY\" && (\n <Grid container>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-querySelect\"\n >\n <Typography variant=\"body2\">\n {translate(\"Query\")}\n </Typography>\n <Box className=\" w-full\">\n <Controller\n className=\" w-full\"\n name=\"queryCode\"\n control={control}\n defaultValue={null}\n render={({ field }) => (\n <Select\n {...field}\n className=\" w-full\"\n size=\"small\"\n displayEmpty\n onChange={(data) => {\n field.onChange(data);\n setImplicitParameters(data.target.value);\n }}\n data-testid=\"othertypeeventconfigmodal-queryCode-select\"\n >\n <MenuItem value={null}>\n <Typography variant=\"body2\">\n {translate(\"Select\")}\n </Typography>\n </MenuItem>\n\n {queryMasters?.map((data, index) => (\n <MenuItem key={index + 1} value={data?.code}>\n <Typography variant=\"body2\">\n {\" \"}\n {data?.code}\n </Typography>\n </MenuItem>\n ))}\n </Select>\n )}\n />\n </Box>\n </FormControl>\n </Grid>\n </Grid>\n )}\n {queryMasterParamJson && type?.type === \"QUERY\" && queryCode && (\n <Grid container className=\" w-full\">\n {queryMasterParamJson?.map((param, index) => (\n <Grid\n item\n size={{ xs: 12 }}\n className=\" w-full\"\n key={index + 1}\n >\n <FormControl variant=\"outlined\" className=\" w-full\">\n <Grid\n container\n justifyContent=\"space-between\"\n alignItems=\"center\"\n >\n <Grid item>\n <Typography variant=\"body1\">\n {param?.parameterName} {translate(\"Mapping\")}\n </Typography>\n </Grid>\n <Grid item>\n <FormControl component=\"fieldset\" className=\"mr-2\">\n <Controller\n control={control}\n name={`${param?.parameterName}${index}isFixed`}\n defaultValue={param?.isFixed || false}\n render={({ field }) => (\n <FormControlLabel\n control={\n <Checkbox\n checked={field.value}\n onChange={(e) => {\n field.onChange(e.target.checked);\n handleChange(\n index,\n \"isFixed\",\n e.target.checked,\n );\n }}\n data-testid=\"othertypeeventconfigmodal-isFixed-checkbox\"\n />\n }\n label=\"Is Fixed Value\"\n />\n )}\n />\n </FormControl>\n </Grid>\n </Grid>\n\n <Box className=\" w-full\">\n <Controller\n control={control}\n className=\" w-full\"\n name={`${param?.parameterName}${index}`}\n defaultValue={param?.mappingValue}\n render={({ field }) => (\n <TextField\n variant=\"outlined\"\n size=\"small\"\n className=\" w-full\"\n {...field}\n fullWidth // Ensure TextField takes full width\n onChange={(e) => {\n setValue(\n `${param?.parameterName}${index}`,\n e.target.value,\n );\n handleChange(\n index,\n \"mappingValue\",\n e.target.value,\n );\n }}\n data-testid={`othertypeeventconfigmodal-${param?.parameterName}${index}-textfiled`}\n />\n )}\n />\n </Box>\n </FormControl>\n </Grid>\n ))}\n </Grid>\n )}\n\n {type?.type === \"SYSTEM_FUNCTION\" && (\n <Grid container>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-systemFunction\"\n >\n <Typography variant=\"body2\">\n {translate(\"System Function\")}\n </Typography>\n <Box className=\" w-full\">\n <Controller\n className=\" w-full\"\n name=\"systemFunctionId\"\n control={control}\n defaultValue=\"\"\n render={({ field }) => (\n <Select\n {...field}\n className=\" w-full\"\n size=\"small\"\n onChange={(data) => {\n field.onChange(data);\n <Box className=\" w-full\">\n <Controller\n className=\" w-full\"\n name=\"systemFunctionId\"\n control={control}\n defaultValue=\"\"\n render={({ field }) => (\n <Select\n {...field}\n className=\" w-full\"\n size=\"small\"\n onChange={(data) => {\n field.onChange(data);\n setFunctionParams(data.target.value);\n }}\n data-testid=\"othertypeeventconfigmodal-systemFunctionId-select\"\n sx={{\n \".MuiSelect-select\": {\n whiteSpace: \"pre-wrap\", // Allows line breaks\n wordBreak: \"break-word\",\n height: \"auto\",\n minHeight: \"1.4375em\",\n },\n }}\n MenuProps={{\n PaperProps: {\n sx: {\n maxHeight: 300,\n overflow: \"auto\",\n width: {\n xs: \"100%\", // full width on small screens\n sm: 300, // fixed width on tablets\n md: 400, // wider on desktops\n },\n },\n },\n }}\n >\n <MenuItem value=\"\">\n <Typography variant=\"body2\">\n {translate(\"None\")}\n </Typography>\n </MenuItem>\n\n {systemFunctions?.map((data, index) => (\n <MenuItem\n key={index + 1}\n value={data?.id}\n >\n <Typography variant=\"body2\">\n {\" \"}\n {data?.name} ({data?.className})\n </Typography>\n </MenuItem>\n ))}\n </Select>\n )}\n />\n </Box>;\n setFunctionParams(data.target.value);\n }}\n data-testid=\"othertypeeventconfigmodal-systemFunctionId-select\"\n sx={{\n \".MuiSelect-select\": {\n whiteSpace: \"pre-wrap\", // Allows line breaks\n wordBreak: \"break-word\",\n height: \"auto\",\n minHeight: \"1.4375em\",\n },\n }}\n MenuProps={{\n PaperProps: {\n sx: {\n maxHeight: 300,\n overflow: \"auto\",\n maxWidth: 410,\n },\n },\n }}\n >\n <MenuItem value=\"\">\n <Typography variant=\"body2\">\n {translate(\"None\")}\n </Typography>\n </MenuItem>\n\n {systemFunctions?.map((data, index) => (\n <MenuItem key={index + 1} value={data?.id}>\n <Typography variant=\"body2\">\n {\" \"}\n {data?.name} ({data?.className})\n </Typography>\n </MenuItem>\n ))}\n </Select>\n )}\n />\n </Box>\n </FormControl>\n </Grid>\n </Grid>\n )}\n {functionParams &&\n type?.type === \"SYSTEM_FUNCTION\" &&\n systemFunctionId && (\n <Grid container>\n {functionParams?.map((param, index) => (\n <Grid\n item\n size={{ xs: 12 }}\n className=\" w-full\"\n key={index + 1}\n >\n <FormControl variant=\"outlined\" className=\" w-full\">\n <Grid\n container\n justifyContent=\"space-between\"\n alignItems=\"center\"\n >\n <Grid item xs>\n <Typography variant=\"body2\">\n {param?.parameterName} {translate(\"Mapping\")}\n </Typography>\n </Grid>\n <Grid item>\n <FormControl\n component=\"fieldset\"\n className=\"mr-2\"\n >\n <Controller\n control={control}\n name={`${param?.parameterName}${index}isFixed`}\n defaultValue={param?.isFixed || false}\n render={({ field }) => (\n <FormControlLabel\n control={\n <Checkbox\n checked={field.value}\n onChange={(e) => {\n field.onChange(e.target.checked);\n handleChange(\n index,\n \"isFixed\",\n e.target.checked,\n );\n }}\n data-testid=\"othertypeeventconfigmodal-systemFunctionId-checkbox\"\n />\n }\n label=\"Is Fixed Value\"\n />\n )}\n />\n </FormControl>\n </Grid>\n </Grid>\n\n <Box className=\" w-full\">\n <Controller\n control={control}\n className=\" w-full\"\n name={`${param?.parameterName}${index}`}\n defaultValue={param?.mappingValue}\n render={({ field }) => (\n <TextField\n variant=\"outlined\"\n size=\"small\"\n className=\" w-full\"\n {...field}\n fullWidth // Ensure TextField takes full width\n onChange={(e) => {\n setValue(\n `${param?.parameterName}${index}`,\n e.target.value,\n );\n handleChange(\n index,\n \"mappingValue\",\n e.target.value,\n );\n }}\n data-testid={`othertypeeventconfigmodal-${param?.parameterName}${index}-textfiled`}\n />\n )}\n />\n </Box>\n </FormControl>\n </Grid>\n ))}\n </Grid>\n )}\n\n {type?.type === \"PUSH_NOTIFICATION\" && (\n <Grid container spacing={2}>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-userIdFieldName\"\n >\n <Typography variant=\"body2\">\n {translate(\"User\")} {translate(\"Id\")}{\" \"}\n {translate(\"Field\")} {translate(\"Name\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>*</span>\n </Typography>\n <Box className=\" w-full\">\n <CustomTextField\n control={control}\n id=\"userFieldName\"\n name=\"userFieldName\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"othertypeeventconfigmodal-userFieldName-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-notificationType\"\n >\n <Typography variant=\"body2\">\n {translate(\"Notification\")} {translate(\"Type\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>*</span>\n </Typography>\n <Box className=\" w-full\">\n <Controller\n className=\" w-full\"\n name=\"notificationTypeId\"\n control={control}\n defaultValue=\"\"\n render={({ field }) => (\n <Select\n {...field}\n className=\" w-full\"\n size=\"small\"\n error={errors?.notificationTypeId}\n onChange={(data) => {\n field.onChange(data);\n onNotificationTypeChange(data.target.value);\n }}\n data-testid=\"othertypeeventconfigmodal-notificationtypeid-select\"\n >\n <MenuItem value=\"\">\n <Typography variant=\"body2\">\n {translate(\"None\")}\n </Typography>\n </MenuItem>\n {notificationTypeList?.map((data, index) => (\n <MenuItem key={index + 1} value={data?.id}>\n <Typography variant=\"body2\">\n {data?.type}\n </Typography>\n </MenuItem>\n ))}\n </Select>\n )}\n />\n {errors?.notificationTypeId && (\n <p\n className=\"error-helper\"\n data-testid=\"custom-error-message\"\n >\n {errors?.notificationTypeId?.message}\n </p>\n )}\n </Box>\n </FormControl>\n </Grid>\n </Grid>\n )}\n {type?.type === \"PUSH_NOTIFICATION\" && notificationTypeId && (\n <Grid container spacing={2}>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl variant=\"outlined\" className=\" w-full\">\n <Typography variant=\"body2\">\n {translate(\"Notification\")} {translate(\"Heading\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>*</span>\n </Typography>\n <Box className=\" w-full\">\n <CustomTextField\n control={control}\n id=\"heading\"\n name=\"heading\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"othertypeeventconfigmodal-heading-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n {\" \"}\n <FormControl variant=\"outlined\" className=\" w-full\">\n <Typography variant=\"body2\">\n {translate(\"Template\")}\n </Typography>\n <Box className=\" w-full\">\n <CustomTextArea\n control={control}\n id=\"template\"\n name=\"template\"\n errors={errors}\n label=\"\"\n minRows={5}\n data-testid=\"othertypeeventconfigmodal-template-customtextarea\"\n />\n </Box>\n </FormControl>\n </Grid>\n </Grid>\n )}\n\n {type?.type === \"KAFKA_SYNC\" && (\n <Grid container>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-kafkaConfig\"\n >\n <Typography variant=\"body2\">\n {translate(\"Kafka Config\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>*</span>\n </Typography>\n <Box className=\" w-full\">\n <Controller\n className=\" w-full\"\n name=\"formType\"\n control={control}\n defaultValue=\"\"\n error={errors}\n render={({ field }) => (\n <Select\n {...field}\n className=\" w-full\"\n size=\"small\"\n displayEmpty\n onChange={(e) => {\n field.onChange(e);\n updateKafkaParameters(e.target.value);\n }}\n data-testid=\"othertypeeventconfigmodal-kafkaConfig-select\"\n >\n <MenuItem value=\"\">\n <Typography variant=\"body2\">\n {translate(\"Select\")}\n </Typography>\n </MenuItem>\n {kafkaConfigs?.map((config, index) => (\n <MenuItem key={index} value={config.form_type}>\n <Typography variant=\"body2\">\n {config.form_type}\n </Typography>\n </MenuItem>\n ))}\n </Select>\n )}\n />\n </Box>\n </FormControl>\n </Grid>\n </Grid>\n )}\n {kafkaParameterJson &&\n type?.type === \"KAFKA_SYNC\" &&\n formType &&\n kafkaParameterJson.length > 0 && (\n <Grid container className=\" w-full\">\n {kafkaParameterJson?.map((param, index) => (\n <Grid\n item\n size={{ xs: 12 }}\n className=\" w-full\"\n key={`${formType}-${param?.parameterName}-${index}`}\n >\n <FormControl variant=\"outlined\" className=\" w-full\">\n <Grid\n container\n justifyContent=\"space-between\"\n alignItems=\"center\"\n >\n <Grid item xs>\n <Typography variant=\"body2\">\n {param?.parameterName} {translate(\"Mapping\")}\n </Typography>\n </Grid>\n <Grid item>\n <FormControl\n component=\"fieldset\"\n className=\"mr-2\"\n >\n <Controller\n control={control}\n name={`${param?.parameterName}${index}isFixed`}\n defaultValue={param?.isFixed || false}\n render={({ field }) => (\n <FormControlLabel\n control={\n <Checkbox\n checked={field.value}\n onChange={(e) => {\n field.onChange(e.target.checked);\n handleChange(\n index,\n \"isFixed\",\n e.target.checked,\n );\n }}\n data-testid=\"othertypeeventconfigmodal-kafka-isFixed-checkbox\"\n />\n }\n label={translate(\"Is Fixed Value\")}\n />\n )}\n />\n </FormControl>\n </Grid>\n </Grid>\n <Box className=\" w-full\">\n <Controller\n control={control}\n className=\" w-full\"\n name={`${param?.parameterName}${index}`}\n defaultValue={param?.mappingValue || \"\"}\n render={({ field }) => (\n <TextField\n variant=\"outlined\"\n size=\"small\"\n className=\" w-full\"\n {...field}\n fullWidth\n onChange={(e) => {\n setValue(\n `${param?.parameterName}${index}`,\n e.target.value,\n );\n handleChange(\n index,\n \"mappingValue\",\n e.target.value,\n );\n }}\n data-testid={`othertypeeventconfigmodal-kafka-${param?.parameterName}${index}-textfield`}\n />\n )}\n />\n </Box>\n </FormControl>\n </Grid>\n ))}\n </Grid>\n )}\n\n {(type?.type === \"SMS\" ||\n (type?.type == \"QUERY\" && !queryCode)) && (\n <Grid container spacing={2}>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n {\" \"}\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid={\n type.type === \"QUERY\"\n ? \"othertypeeventconfigmodal-queryArea\"\n : \"othertypeeventconfigmodal-template\"\n }\n >\n <Typography variant=\"body2\">\n {translate(\n type.type === \"QUERY\" ? \"Query\" : \"Template\",\n )}\n </Typography>\n <Box className=\" w-full\">\n <CustomTextArea\n control={control}\n id=\"template\"\n name=\"template\"\n label=\"\"\n minRows={5}\n data-testid=\"othertypeeventconfigmodal-template-customtextarea\"\n />\n </Box>\n </FormControl>\n </Grid>\n </Grid>\n )}\n {type?.type != \"EXCEPTION\" && type?.type != \"SYSTEM_FUNCTION\" && (\n <Grid container spacing={2}>\n <Grid item size={{ xs: 12 }} className=\"mt-2 w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-triggerWhen\"\n >\n <Typography variant=\"body2\">\n {translate(\"Trigger\")} {translate(\"When\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>*</span>\n </Typography>\n <Box className=\" w-full\">\n <Controller\n name=\"trigerWhen\"\n control={control}\n defaultValue=\"\"\n className=\" w-full\"\n render={({ field }) => (\n <Select\n className=\" w-full\"\n {...field}\n error={errors.trigerWhen}\n size=\"small\"\n displayEmpty\n data-testid=\"othertypeeventconfigmodal-trigegrwhen-select\"\n >\n <MenuItem value=\"\">\n <Typography variant=\"body2\">\n {translate(\"Select\")}\n </Typography>\n </MenuItem>\n\n <MenuItem value=\"IMMEDIATELY\">\n <Typography variant=\"body2\">\n {translate(\"Immediately\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"AFTER\">\n <Typography variant=\"body2\">\n {translate(\"After\")}\n </Typography>\n </MenuItem>\n </Select>\n )}\n />\n {errors?.trigerWhen && (\n <p\n className=\"error-helper\"\n data-testid=\"custom-error-message\"\n >\n {errors?.trigerWhen?.message}\n </p>\n )}\n </Box>\n </FormControl>\n {trigerWhen === \"AFTER\" && (\n <>\n <Grid item size={{ xs: 12 }}>\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-dayField\"\n >\n <Typography variant=\"body2\">\n {translate(\"Day\")}\n </Typography>\n <Box className=\" w-full\">\n <CustomTextField\n control={control}\n id=\"day\"\n name=\"day\"\n errors={errors}\n label=\"\"\n type=\"number\"\n size=\"small\"\n dataTestId=\"othertypeeventconfigmodal-type-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n <Grid item size={{ xs: 12 }}>\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-hourField\"\n >\n <Typography variant=\"body2\">\n {translate(\"Hour\")}\n </Typography>\n <Box className=\" w-full\">\n <CustomTextField\n control={control}\n id=\"hour\"\n name=\"hour\"\n errors={errors}\n label=\"\"\n type=\"number\"\n size=\"small\"\n dataTestId=\"othertypeeventconfigmodal-type-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n <Grid item size={{ xs: 12 }}>\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-minuteField\"\n >\n <Typography variant=\"body2\">\n {translate(\"Minute\")}\n </Typography>\n <Box className=\" w-full\">\n <CustomTextField\n control={control}\n id=\"minute\"\n name=\"minute\"\n type=\"number\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"othertypeeventconfigmodal-type-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n </>\n )}\n </Grid>\n </Grid>\n )}\n </Grid>\n </Grid>\n\n <Stack\n direction=\"row\"\n className=\"mr-5\"\n spacing={2}\n justifyContent=\"flex-end\"\n mt={1}\n mb={1}\n >\n <Button\n variant=\"contained\"\n size=\"small\"\n color=\"secondary\"\n onClick={() => {\n close();\n reset();\n }}\n data-testid=\"othertypeeventconfigmodal-cancel-button\"\n >\n <Typography variant=\"body2\">{translate(\"Cancel\")}</Typography>\n </Button>\n <Button\n size=\"small\"\n type=\"submit\"\n variant=\"contained\"\n color=\"primary\"\n data-testid=\"othertypeeventconfigmodal-submit-button\"\n >\n {translate(\"Submit\")}\n </Button>\n </Stack>\n </form>\n </Grid>\n </Modal>\n );\n};\n\nOtherTypeEventConfigModal.propTypes = {\n open: PropTypes.any,\n handleClose: PropTypes.any,\n handleClick: PropTypes.any,\n type: PropTypes.any,\n};\n\nexport default OtherTypeEventConfigModal;\n"],"names":["createDefer","deferred","resolve","once","fn","lastResult","args","HEX_NUMBERS","_","index","uid","r1","r2","r3","r4","isSemanticVersion","version","destructureSemanticVersion","major","minor","patch","isCKTestingVersion","testVersion","isCKVersion","appendExtraPluginsToEditorConfig","config","plugins","extraPlugins","item","getLicenseVersionFromEditorVersion","getCKBaseBundleInstallationInfo","CKEDITOR_VERSION","CKEDITOR","getSupportedLicenseVersionInstallationInfo","installationInfo","isCKEditorFreeLicense","licenseKey","licenseVersion","createIntegrationUsageDataPlugin","integrationName","usageData","editor","source","setUsageData","__defProp","__defNormalProp","obj","key","value","__publicField","_LifeCycleElementSemaphore","element","lifecycle","_releaseLock","_state","_element","_lifecycle","error","callback","_value","_afterMountCallbacks","_semaphores","prevElementSemaphore","releaseLock","newElementSemaphore","mountResult","LifeCycleElementSemaphore","ReactContextMetadataKey","withCKEditorReactContextMetadata","metadata","ContextWatchdogContext","React","isContextWatchdogValue","isContextWatchdogValueWithStatus","status","isContextWatchdogInitializing","isContextWatchdogReadyToUse","ReactIntegrationUsageDataPlugin","appendAllIntegrationPluginsToConfig","editorConfig","REACT_INTEGRATION_READ_ONLY_LOCK_ID$1","CKEditor","props","editorSemaphore","_semaphoreValue","nextProps","instance","onReady","onAfterDestroy","watchdog","EditorWatchdogAdapter","totalRestartsRef","el","_a","causesRestart","contextItemMetadata","modelDocument","viewDocument","event","initializeResult","reject","e","prevProps","contextWatchdog","creator","sourceElementOrData","_2","itemId","mergeRefs","refs","ref","EditorEditable","memo","forwardRef","id","semaphore","rootName","innerRef","useRef","useEffect","editable","ui","model","root","EditorToolbarWrapper","toolbarRef","toolbarContainer","OtherTypeEventConfigModal","open","handleClose","handleClick","type","theme","useTheme","isDark","formRef","submitRef","trackEvent","useTrackEvent","queryMasters","setQueryMasters","useState","systemFunctions","setSystemFunctions","kafkaConfigs","setKafkaConfigs","translate","useTranslateProvider","notificationTypeList","setnotificationTypeList","validationSchema","Yup","notificationTypeId","control","handleSubmit","reset","setValue","unregister","getValues","watch","errors","useForm","yupResolver","loadInitialState","smsConfigJson","keys","pushNotificationConfigJson","_b","kafkaConfigJson","_c","queryMasterParamJson","queryCode","systemFunctionId","functionParams","trigerWhen","kafkaParameterJson","formType","setImplicitParameters","data","param","queryMasterParamJsonObj","queryMaster","master","params","setFunctionParams","functionParams1","systemFunction","func","onNotificationTypeChange","notificationType","handleChange","field","newConfigs","updateKafkaParameters","selectedFormType","currentParams","selectedConfig","paramTypes","res","retrieveAllConfigured","execute","getNotificationTypeList","showToast","close","onSubmit","jsx","Modal","jsxs","Grid","Typography","IconButton","FontAwesomeIcon","faXmark","Box","FormControl","Controller","Select","MenuItem","CustomTextArea","CustomTextField","FormControlLabel","Checkbox","Editor","TextField","Fragment","Stack","Button","PropTypes"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
1
|
+
{"version":3,"file":"OtherTypeEventConfigModal-BeG1GrUi.js","sources":["../../node_modules/@ckeditor/ckeditor5-integrations-common/dist/index.js","../../node_modules/@ckeditor/ckeditor5-react/dist/index.js","../src/views/Events/OtherTypeEventConfigModal.jsx"],"sourcesContent":["function 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\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\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\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 // It'll append styles *before* the stylesheets that are already present in the head\n // but after the ones that are injected by this function.\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 // It'll append styles *after* the stylesheets already in the head.\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\nfunction isSSR() {\n return typeof window === \"undefined\";\n}\n\nfunction omit(keys, obj) {\n const clone = { ...obj };\n for (const key of keys) {\n if (Object.hasOwn(obj, key)) {\n delete clone[key];\n }\n }\n return clone;\n}\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\nfunction overwriteArray(source, destination) {\n destination.length = 0;\n destination.push(...source);\n return destination;\n}\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\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\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\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\nfunction uniq(source) {\n return Array.from(new Set(source));\n}\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\nfunction filterObjectValues(obj, filter) {\n const filteredEntries = Object.entries(obj).filter(([key, value]) => filter(value, key));\n return Object.fromEntries(filteredEntries);\n}\n\nfunction filterBlankObjectValues(obj) {\n return filterObjectValues(\n obj,\n (value) => value !== null && value !== void 0\n );\n}\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\nfunction without(itemsToRemove, items) {\n return items.filter((item) => !itemsToRemove.includes(item));\n}\n\nfunction mapObjectKeys(obj, fn) {\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [fn(key), value])\n );\n}\n\nfunction kebabToCamelCase(str) {\n return str.replace(/-([a-z])/g, (match, letter) => letter.toUpperCase());\n}\n\nfunction isSemanticVersion(version) {\n return !!version && /^\\d+\\.\\d+\\.\\d+/.test(version);\n}\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\nfunction compareSemanticVersions(a, b) {\n const parsedA = destructureSemanticVersion(a);\n const parsedB = destructureSemanticVersion(b);\n return Math.sign(\n parsedA.major - parsedB.major || parsedA.minor - parsedB.minor || parsedA.patch - parsedB.patch\n );\n}\n\nfunction isCKTestingVersion(version) {\n if (!version) {\n return false;\n }\n return [\"nightly\", \"alpha\", \"internal\", \"nightly-\", \"staging\"].some((testVersion) => version.includes(testVersion));\n}\nfunction isCKZeroBaseVersion(version) {\n return !!version?.startsWith(\"0.0.0-\");\n}\nfunction isCKVersion(version) {\n return isSemanticVersion(version) || isCKTestingVersion(version);\n}\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\nfunction getLicenseVersionFromEditorVersion(version) {\n if (isCKTestingVersion(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\nfunction getCKBaseBundleInstallationInfo() {\n const { CKEDITOR_VERSION, CKEDITOR } = window;\n if (!isCKVersion(CKEDITOR_VERSION)) {\n return null;\n }\n return {\n source: CKEDITOR ? \"cdn\" : \"npm\",\n version: CKEDITOR_VERSION\n };\n}\n\nfunction getSupportedLicenseVersionInstallationInfo() {\n const installationInfo = getCKBaseBundleInstallationInfo();\n if (!installationInfo) {\n return null;\n }\n return getLicenseVersionFromEditorVersion(installationInfo.version);\n}\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\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\nconst CK_CDN_URL = \"https://cdn.ckeditor.com\";\nfunction createCKCdnUrl(bundle, file, version) {\n return `${CK_CDN_URL}/${bundle}/${version}/${file}`;\n}\n\nconst CKBOX_CDN_URL = \"https://cdn.ckbox.io\";\nfunction createCKBoxCdnUrl(bundle, file, version) {\n return `${CKBOX_CDN_URL}/${bundle}/${version}/${file}`;\n}\n\nconst CK_DOCS_URL = \"https://ckeditor.com/docs/ckeditor5\";\nfunction createCKDocsUrl(path, version = \"latest\") {\n return `${CK_DOCS_URL}/${version}/${path}`;\n}\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/migrations/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\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\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\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\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\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\nfunction isCKCdnSupportedByEditorVersion(version) {\n if (isCKTestingVersion(version)) {\n return true;\n }\n const { major } = destructureSemanticVersion(version);\n const licenseVersion = getLicenseVersionFromEditorVersion(version);\n switch (licenseVersion) {\n // For newer license versions, we support all newer versions.\n case 3:\n return true;\n // For the license v1-v2, we support only the 43 version.\n default:\n return major === 43;\n }\n}\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\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 (isCKTestingVersion(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\nfunction compareInstalledCKBaseVersion(version) {\n const installedVersion = getCKBaseBundleInstallationInfo()?.version;\n if (!installedVersion) {\n return null;\n }\n if (isCKZeroBaseVersion(version)) {\n return -1;\n }\n if (!isSemanticVersion(installedVersion) || isCKZeroBaseVersion(installedVersion)) {\n return 1;\n }\n return compareSemanticVersions(installedVersion, version);\n}\n\nfunction getInstalledCKBaseFeatures() {\n const installedVersion = compareInstalledCKBaseVersion(\"48.0.0\");\n const isV48OrNewer = installedVersion !== null && installedVersion >= 0;\n return {\n rootsConfigEntry: isV48OrNewer,\n elementConfigAttachment: isV48OrNewer\n };\n}\n\nfunction assignAttributesPropToMultiRootEditorConfig(attributes, config) {\n const supports = getInstalledCKBaseFeatures();\n if (supports.rootsConfigEntry) {\n const knownRootsKeys = uniq([\n ...Object.keys(attributes || {}),\n ...Object.keys(config.roots || {}),\n ...Object.keys(config.rootsAttributes || {})\n ]);\n const roots = knownRootsKeys.reduce((acc, rootName) => {\n const legacyRootAttributes = config.rootsAttributes?.[rootName];\n const configRootValue = config.roots?.[rootName];\n acc[rootName] = {\n ...configRootValue,\n modelAttributes: attributes?.[rootName] ?? {\n ...legacyRootAttributes,\n ...configRootValue?.modelAttributes\n }\n };\n return acc;\n }, /* @__PURE__ */ Object.create(null));\n const mappedConfig = {\n ...config,\n roots\n };\n delete mappedConfig.rootsAttributes;\n return mappedConfig;\n }\n return {\n ...config,\n rootsAttributes: attributes\n };\n}\n\nfunction assignInitialDataToMultirootEditorConfig(data, config) {\n const supports = getInstalledCKBaseFeatures();\n if (supports.rootsConfigEntry) {\n const knownRootsKeys = uniq([\n ...Object.keys(data || {}),\n ...Object.keys(config.roots || {}),\n ...typeof config.initialData === \"string\" ? [] : Object.keys(config.initialData || {})\n ]);\n const roots = knownRootsKeys.reduce((acc, rootName) => {\n const rootConfig = config.roots?.[rootName];\n const rootInitialData = rootConfig?.initialData;\n if (rootInitialData && data?.[rootName]) {\n console.warn(\n `Editor data should be provided either using \\`config.roots['${rootName}'].initialData\\` or the bound component property. The config value takes precedence over the bound component property and will be used when both are specified.`\n );\n }\n acc[rootName] = {\n ...rootConfig,\n initialData: rootInitialData || data?.[rootName] || config.initialData?.[rootName] || \"\"\n };\n return acc;\n }, /* @__PURE__ */ Object.create(null));\n const normalizedConfig = {\n ...config,\n roots\n };\n delete normalizedConfig.initialData;\n return normalizedConfig;\n }\n if (data && config?.initialData) {\n console.warn(\n \"Editor data should be provided either using `config.initialData` or the bound component property. The config value takes precedence over the bound component property and will be used when both are specified.\"\n );\n }\n return {\n ...config,\n initialData: config?.initialData || data\n };\n}\n\nfunction assignElementToEditorConfig(Editor, element, config) {\n if (!Editor.editorName || Editor.editorName === \"ClassicEditor\") {\n return {\n ...config,\n attachTo: element\n };\n }\n const mappedConfig = {\n ...config,\n roots: {\n ...config.roots,\n main: {\n ...config.root,\n ...config.roots?.main,\n element\n }\n }\n };\n delete mappedConfig.root;\n return mappedConfig;\n}\n\nfunction getInitialDataFromEditorConfig(config) {\n const supports = getInstalledCKBaseFeatures();\n if (supports.rootsConfigEntry) {\n return config.roots?.main?.initialData || config.root?.initialData || /* legacy */\n config.initialData;\n }\n return config.initialData;\n}\n\nfunction assignInitialDataToEditorConfig(config, data, ignoreConfigInitialData) {\n const supports = getInstalledCKBaseFeatures();\n const configInitialData = ignoreConfigInitialData ? null : getInitialDataFromEditorConfig(config);\n if (supports.rootsConfigEntry) {\n const normalizedConfig = {\n ...config,\n roots: {\n ...config.roots,\n main: {\n ...config.root,\n ...config.roots?.main,\n initialData: configInitialData || data || \"\"\n }\n }\n };\n if (data && configInitialData) {\n console.warn(\n \"Editor data should be provided either via the config (`config.root.initialData`) or the component's `data` property, but not both. The configuration value takes precedence.\"\n );\n }\n delete normalizedConfig.root;\n delete normalizedConfig.initialData;\n return normalizedConfig;\n }\n if (data && configInitialData) {\n console.warn(\n \"Editor data should be provided either via the config (`config.initialData`) or the component's `data` property, but not both. The configuration value takes precedence.\"\n );\n }\n return {\n ...config,\n initialData: configInitialData || data || \"\"\n };\n}\n\nexport { CKBOX_CDN_URL, CK_CDN_URL, INJECTED_SCRIPTS, INJECTED_STYLESHEETS, appendExtraPluginsToEditorConfig, assignAttributesPropToMultiRootEditorConfig, assignElementToEditorConfig, assignInitialDataToEditorConfig, assignInitialDataToMultirootEditorConfig, compareInstalledCKBaseVersion, compareSemanticVersions, createCKBoxCdnUrl, createCKCdnUrl, createDefer, createIntegrationUsageDataPlugin, destructureSemanticVersion, filterBlankObjectValues, filterObjectValues, getCKBaseBundleInstallationInfo, getCKBoxInstallationInfo, getInitialDataFromEditorConfig, getInstalledCKBaseFeatures, injectScript, injectScriptsInParallel, injectStylesheet, isCKEditorFreeLicense, isCKTestingVersion, isCKVersion, isCKZeroBaseVersion, isSSR, isSemanticVersion, kebabToCamelCase, loadCKEditorCloud, mapObjectKeys, mapObjectValues, omit, once, overwriteArray, overwriteObject, preloadResource, shallowCompareArrays, uid, uniq, waitFor, waitForWindowEntry, without };\n//# sourceMappingURL=index.js.map\n","var __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nimport React, { useRef, useEffect, useCallback, useState, memo, forwardRef, useContext } from \"react\";\nimport { createDefer, once, uid, createIntegrationUsageDataPlugin, isCKEditorFreeLicense, appendExtraPluginsToEditorConfig, shallowCompareArrays, uniq, overwriteObject, overwriteArray, isSSR, loadCKEditorCloud } from \"@ckeditor/ckeditor5-integrations-common\";\nimport { loadCKEditorCloud as loadCKEditorCloud2 } from \"@ckeditor/ckeditor5-integrations-common\";\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 _LifeCycleElementSemaphore = class _LifeCycleElementSemaphore {\n constructor(element, lifecycle) {\n /**\n * This should define async methods for initializing and destroying the editor.\n * Essentially, it's an async version of basic React lifecycle methods like `componentDidMount`, `componentWillUnmount`.\n *\n * \t* Result of {@link LifeCycleAsyncOperators#mount} method is passed to {@link LifeCycleAsyncOperators#unmount} as an argument.\n */\n __publicField(this, \"_lifecycle\");\n /**\n * This is the element instance that the editor uses for mounting. This element should contain the `ckeditorInstance` member\n * once the editor has been successfully mounted to it. The semaphore ensures that a new instance of the editor, which will\n * be assigned to this element by the {@link #_lifecycle:mount} method, will always be initialized after the successful\n * destruction of the underlying `ckeditorInstance` that was previously mounted on this element.\n */\n __publicField(this, \"_element\");\n /**\n * This is the lock mechanism utilized by the {@link #lock} and {@link #release} methods.\n *\n * \t* If the editor is not yet mounted and is awaiting mounting (for instance, when another editor is\n * \t occupying the element), then it is null.\n *\n * \t* When the editor is mounted on the element, this variable holds an unresolved promise that will be\n * \t resolved after the editor is destroyed.\n *\n * \t* Once the editor is destroyed (and it was previously mounted), the promise is resolved.\n */\n __publicField(this, \"_releaseLock\", null);\n /**\n * This is the result of the {@link #_lifecycle:mount} function. This value should be reset to `null`\n * once the semaphore is released. It is utilized to store certain data that must be removed following\n * the destruction of the editor. This data may include the editor's instance, the assigned watchdog,\n * or handles for additional window listeners.\n */\n __publicField(this, \"_value\", null);\n /**\n * This is a list of callbacks that are triggered if the semaphore {@link #_lifecycle:mount} method executes successfully.\n * It is utilized in scenarios where we need to assign certain properties to an editor that is currently in the process of mounting.\n * An instance of such usage could be two-way binding. We aim to prevent the loss of all `setData` calls if the editor has not\n * yet been mounted, therefore these calls will be executed immediately following the completion of the mounting process.\n */\n __publicField(this, \"_afterMountCallbacks\", []);\n /**\n * This represents the actual mounting state of the semaphore. It is primarily used by the {@link #release} method to\n * determine whether the initialization of the editor should be skipped or, if the editor is already initialized, the editor\n * should be destroyed.\n *\n * \t* If `destroyedBeforeInitialization` is true, then the {@link #release} method was invoked before the editor began to mount.\n * \t This often occurs in strict mode when we assign a promise to the {@link LifeCycleEditorElementSemaphore#_semaphores} map\n * \t and the assigned `mount` callback has not yet been called. In this scenario, it is safe to skip the initialization of the editor\n * \t and simply release the semaphore.\n *\n *\t* If `mountingInProgress` is a Promise, then the {@link #release} method was invoked after the initialization of the editor and\n \t the editor must be destroyed before the semaphore is released.\n */\n __publicField(this, \"_state\", {\n destroyedBeforeInitialization: false,\n mountingInProgress: null\n });\n /**\n * Inverse of {@link #_lock} method that tries to destroy attached editor.\n *\n * \t* If editor is being already attached to element (or is in attaching process) then after fully initialization of editor\n * \t destroy is performed and semaphore is released. The {@link #_lifecycle} unmount method is called.\n *\n * \t* If editor is being destroyed before initialization then it does nothing but sets `destroyedBeforeInitialization` flag that\n * \t will be later checked by {@link #_lock} method in initialization. The {@link #_lifecycle} unmount method is not called.\n *\n * *Important note:*\n *\n * It’s really important to keep this method *sync*. If we make this method *async*, it won’t work well because\n * it will cause problems when we’re trying to set up the {@link LifeCycleEditorElementSemaphore#_semaphores} map entries.\n */\n __publicField(this, \"release\", once(() => {\n const { _releaseLock, _state, _element, _lifecycle } = this;\n if (_state.mountingInProgress) {\n _state.mountingInProgress.then(() => _lifecycle.unmount({\n element: _element,\n // Mount result might be overridden by watchdog during restart so use instance variable.\n mountResult: this.value\n })).catch((error) => {\n console.error(\"Semaphore unmounting error:\", error);\n }).then(_releaseLock.resolve).then(() => {\n this._value = null;\n });\n } else {\n _state.destroyedBeforeInitialization = true;\n _releaseLock.resolve();\n }\n }));\n this._element = element;\n this._lifecycle = lifecycle;\n this._lock();\n }\n /**\n * Getter for {@link #_value}.\n */\n get value() {\n return this._value;\n }\n /**\n * Occasionally, the Watchdog restarts the editor instance, resulting in a new instance being assigned to the semaphore.\n * In terms of race conditions, it's generally safer to simply override the semaphore value rather than recreating it\n * with a different one.\n */\n unsafeSetValue(value) {\n this._value = value;\n this._afterMountCallbacks.forEach((callback) => callback(value));\n this._afterMountCallbacks = [];\n }\n /**\n * This registers a callback that will be triggered after the editor has been successfully mounted.\n *\n * \t* If the editor is already mounted, the callback will be executed immediately.\n *\t* If the editor is in the process of mounting, the callback will be executed upon successful mounting.\n * \t* If the editor is never mounted, the passed callback will not be executed.\n * \t* If an exception is thrown within the callback, it will be re-thrown in the semaphore.\n */\n runAfterMount(callback) {\n const { _value, _afterMountCallbacks } = this;\n if (_value) {\n callback(_value);\n } else {\n _afterMountCallbacks.push(callback);\n }\n }\n /**\n * This method is used to inform other components that the {@link #_element} will be used by the editor,\n * which is initialized by the {@link #_lifecycle} methods.\n *\n * \t* If an editor is already present on the provided element, the initialization of the current one\n * \t will be postponed until the previous one is destroyed.\n *\n * \t* If the element is empty and does not have an editor attached to it, the currently locked editor will\n * \t be mounted immediately.\n *\n * After the successful initialization of the editor and the assignment of the {@link #_value} member,\n * the `onReady` lifecycle method is called.\n *\n * *Important note:*\n *\n * It’s really important to keep this method *sync*. If we make this method *async*, it won’t work well because\n * it will cause problems when we’re trying to set up the {@link LifeCycleEditorElementSemaphore#_semaphores} map entries.\n */\n _lock() {\n const { _semaphores } = _LifeCycleElementSemaphore;\n const { _state, _element, _lifecycle } = this;\n const prevElementSemaphore = _semaphores.get(_element) || Promise.resolve(null);\n const releaseLock = createDefer();\n this._releaseLock = releaseLock;\n const newElementSemaphore = prevElementSemaphore.then(() => {\n if (_state.destroyedBeforeInitialization) {\n return Promise.resolve(void 0);\n }\n _state.mountingInProgress = _lifecycle.mount().then((mountResult) => {\n if (mountResult) {\n this.unsafeSetValue(mountResult);\n }\n return mountResult;\n });\n return _state.mountingInProgress;\n }).then(async (mountResult) => {\n if (mountResult && _lifecycle.afterMount) {\n await _lifecycle.afterMount({\n element: _element,\n mountResult\n });\n }\n }).then(() => releaseLock.promise).catch((error) => {\n console.error(\"Semaphore mounting error:\", error);\n }).then(() => {\n if (_semaphores.get(_element) === newElementSemaphore) {\n _semaphores.delete(_element);\n }\n });\n _semaphores.set(_element, newElementSemaphore);\n }\n};\n/**\n * This is a map of elements associated with promises. It informs the semaphore that the underlying HTML element, used as a key,\n * is currently in use by another editor. Each element is assigned a promise, which allows for the easy chaining of new\n * editor instances on an element that is already in use by another instance. The process works as follows:\n *\n * \t1. If an element is being used by an editor, then the initialization of a new editor\n * \t instance is chained using the `.then()` method of the Promise.\n *\n * \t2. If the editor associated with the underlying element is destroyed, then `Promise.resolve()` is called\n * \t and the previously assigned `.then()` editor callback is executed.\n *\n * @see {@link #lock} for more detailed information on the implementation.\n */\n__publicField(_LifeCycleElementSemaphore, \"_semaphores\", /* @__PURE__ */ new Map());\nlet LifeCycleElementSemaphore = _LifeCycleElementSemaphore;\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 ReactContextMetadataKey = \"$__CKEditorReactContextMetadata\";\nfunction withCKEditorReactContextMetadata(metadata, config) {\n return {\n ...config,\n [ReactContextMetadataKey]: metadata\n };\n}\nfunction tryExtractCKEditorReactContextMetadata(object) {\n return object.get(ReactContextMetadataKey);\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 useIsMountedRef = () => {\n const mountedRef = useRef(false);\n useEffect(() => {\n mountedRef.current = true;\n return () => {\n mountedRef.current = false;\n };\n }, []);\n return mountedRef;\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 useRefSafeCallback = (fn) => {\n const callbackRef = useRef();\n callbackRef.current = fn;\n return useCallback(\n (...args) => callbackRef.current(...args),\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 useInitializedCKEditorsMap = ({\n currentContextWatchdog,\n onChangeInitializedEditors\n}) => {\n const onChangeInitializedEditorsSafe = useRefSafeCallback(onChangeInitializedEditors || (() => {\n }));\n useEffect(() => {\n var _a;\n if (currentContextWatchdog.status !== \"initialized\") {\n return;\n }\n const { watchdog } = currentContextWatchdog;\n const editors = (_a = watchdog == null ? void 0 : watchdog.context) == null ? void 0 : _a.editors;\n if (!editors) {\n return;\n }\n const getInitializedContextEditors = () => [...editors].reduce(\n (map, editor) => {\n var _a2;\n if (editor.state !== \"ready\") {\n return map;\n }\n const metadata = tryExtractCKEditorReactContextMetadata(editor.config);\n const nameOrId = (_a2 = metadata == null ? void 0 : metadata.name) != null ? _a2 : editor.id;\n map[nameOrId] = {\n instance: editor,\n metadata\n };\n return map;\n },\n /* @__PURE__ */ Object.create({})\n // Prevent the prototype pollution.\n );\n const onEditorStatusChange = () => {\n onChangeInitializedEditorsSafe(\n getInitializedContextEditors(),\n watchdog\n );\n };\n const trackEditorLifecycle = (editor) => {\n editor.once(\"ready\", onEditorStatusChange, { priority: \"lowest\" });\n editor.once(\"destroy\", onEditorStatusChange, { priority: \"lowest\" });\n };\n const onAddEditorToCollection = (_, editor) => {\n trackEditorLifecycle(editor);\n };\n editors.forEach(trackEditorLifecycle);\n editors.on(\"add\", onAddEditorToCollection);\n if (Array.from(editors).some((editor) => editor.state === \"ready\")) {\n onEditorStatusChange();\n }\n return () => {\n editors.off(\"add\", onAddEditorToCollection);\n };\n }, [currentContextWatchdog]);\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 ContextWatchdogContext = React.createContext(null);\nconst CKEditorContext = (props) => {\n const {\n id,\n context,\n watchdogConfig,\n children,\n config,\n onReady,\n contextWatchdog: ContextWatchdogConstructor,\n isLayoutReady = true,\n onChangeInitializedEditors,\n onError = (error, details) => console.error(error, details)\n } = props;\n const isMountedRef = useIsMountedRef();\n const prevWatchdogInitializationIDRef = useRef(null);\n const [currentContextWatchdog, setCurrentContextWatchdog] = useState({\n status: \"initializing\"\n });\n useEffect(() => {\n if (isLayoutReady) {\n initializeContextWatchdog();\n } else {\n setCurrentContextWatchdog({\n status: \"initializing\"\n });\n }\n }, [id, isLayoutReady]);\n useEffect(() => () => {\n if (currentContextWatchdog.status === \"initialized\") {\n currentContextWatchdog.watchdog.destroy();\n }\n }, [currentContextWatchdog]);\n useInitializedCKEditorsMap({\n currentContextWatchdog,\n onChangeInitializedEditors\n });\n function regenerateInitializationID() {\n prevWatchdogInitializationIDRef.current = uid();\n return prevWatchdogInitializationIDRef.current;\n }\n function canUpdateState(initializationID) {\n return prevWatchdogInitializationIDRef.current === initializationID && isMountedRef.current;\n }\n function initializeContextWatchdog() {\n const watchdogInitializationID = regenerateInitializationID();\n const contextWatchdog = new ContextWatchdogConstructor(context, watchdogConfig);\n contextWatchdog.on(\"error\", (_, errorEvent) => {\n /* istanbul ignore else -- @preserve */\n if (canUpdateState(watchdogInitializationID)) {\n onError(errorEvent.error, {\n phase: \"runtime\",\n willContextRestart: errorEvent.causesRestart\n });\n }\n });\n contextWatchdog.on(\"stateChange\", () => {\n if (onReady && contextWatchdog.state === \"ready\" && canUpdateState(watchdogInitializationID)) {\n onReady(\n contextWatchdog.context,\n contextWatchdog\n );\n }\n });\n contextWatchdog.create(config).then(() => {\n if (canUpdateState(watchdogInitializationID)) {\n setCurrentContextWatchdog({\n status: \"initialized\",\n watchdog: contextWatchdog\n });\n } else {\n contextWatchdog.destroy();\n }\n }).catch((error) => {\n if (canUpdateState(watchdogInitializationID)) {\n onError(error, {\n phase: \"initialization\",\n willContextRestart: false\n });\n setCurrentContextWatchdog({\n status: \"error\",\n error\n });\n }\n });\n return contextWatchdog;\n }\n return /* @__PURE__ */ React.createElement(ContextWatchdogContext.Provider, { value: currentContextWatchdog }, children);\n};\nconst isContextWatchdogValue = (obj) => !!obj && typeof obj === \"object\" && \"status\" in obj && [\"initializing\", \"initialized\", \"error\"].includes(obj.status);\nconst isContextWatchdogValueWithStatus = (status) => (obj) => isContextWatchdogValue(obj) && obj.status === status;\nconst isContextWatchdogInitializing = isContextWatchdogValueWithStatus(\"initializing\");\nconst isContextWatchdogReadyToUse = (obj) => isContextWatchdogValueWithStatus(\"initialized\")(obj) && obj.watchdog.state === \"ready\";\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 ReactIntegrationUsageDataPlugin = createIntegrationUsageDataPlugin(\n \"react\",\n {\n version: \"9.5.0\",\n frameworkVersion: React.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 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 ReactIntegrationUsageDataPlugin\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 REACT_INTEGRATION_READ_ONLY_LOCK_ID$1 = \"Lock from React integration (@ckeditor/ckeditor5-react)\";\nclass CKEditor extends React.Component {\n constructor(props) {\n super(props);\n /**\n * After mounting the editor, the variable will contain a reference to the created editor.\n * @see: https://ckeditor.com/docs/ckeditor5/latest/api/module_core_editor_editor-Editor.html\n */\n __publicField(this, \"domContainer\", React.createRef());\n /**\n * Unlocks element in editor semaphore after destroy editor instance.\n */\n __publicField(this, \"editorSemaphore\", null);\n this._checkVersion();\n }\n /**\n * Checks if the CKEditor version used in the application is compatible with the component.\n */\n _checkVersion() {\n const { CKEDITOR_VERSION } = window;\n if (!CKEDITOR_VERSION) {\n return console.warn('Cannot find the \"CKEDITOR_VERSION\" in the \"window\" scope.');\n }\n const [major] = CKEDITOR_VERSION.split(\".\").map(Number);\n if (major >= 42 || CKEDITOR_VERSION.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 get _semaphoreValue() {\n const { editorSemaphore } = this;\n return editorSemaphore ? editorSemaphore.value : null;\n }\n /**\n * An watchdog instance.\n */\n get watchdog() {\n const { _semaphoreValue } = this;\n return _semaphoreValue ? _semaphoreValue.watchdog : null;\n }\n /**\n * An editor instance.\n */\n get editor() {\n const { _semaphoreValue } = this;\n return _semaphoreValue ? _semaphoreValue.instance : null;\n }\n /**\n * The CKEditor component should not be updated by React itself.\n * However, if the component identifier changes, the whole structure should be created once again.\n */\n shouldComponentUpdate(nextProps) {\n const { props, editorSemaphore } = this;\n if (nextProps.id !== props.id) {\n return true;\n }\n if (nextProps.disableWatchdog !== props.disableWatchdog) {\n return true;\n }\n if (editorSemaphore) {\n editorSemaphore.runAfterMount(({ instance }) => {\n if (this._shouldUpdateEditorData(props, nextProps, instance)) {\n instance.data.set(nextProps.data);\n }\n });\n if (\"disabled\" in nextProps) {\n editorSemaphore.runAfterMount(({ instance }) => {\n if (nextProps.disabled) {\n instance.enableReadOnlyMode(REACT_INTEGRATION_READ_ONLY_LOCK_ID$1);\n } else {\n instance.disableReadOnlyMode(REACT_INTEGRATION_READ_ONLY_LOCK_ID$1);\n }\n });\n }\n }\n return false;\n }\n /**\n * Initialize the editor when the component is mounted.\n */\n componentDidMount() {\n if (!isContextWatchdogInitializing(this.context)) {\n this._initLifeCycleSemaphore();\n }\n }\n /**\n * Re-render the entire component once again. The old editor will be destroyed and the new one will be created.\n */\n componentDidUpdate() {\n if (!isContextWatchdogInitializing(this.context)) {\n this._initLifeCycleSemaphore();\n }\n }\n /**\n * Destroy the editor before unmounting the component.\n */\n componentWillUnmount() {\n this._unlockLifeCycleSemaphore();\n }\n /**\n * Async destroy attached editor and unlock element semaphore.\n */\n _unlockLifeCycleSemaphore() {\n if (this.editorSemaphore) {\n this.editorSemaphore.release();\n this.editorSemaphore = null;\n }\n }\n /**\n * Unlocks previous editor semaphore and creates new one..\n */\n _initLifeCycleSemaphore() {\n this._unlockLifeCycleSemaphore();\n this.editorSemaphore = new LifeCycleElementSemaphore(this.domContainer.current, {\n mount: async () => this._initializeEditor(),\n afterMount: ({ mountResult }) => {\n const { onReady } = this.props;\n if (onReady && this.domContainer.current !== null) {\n onReady(mountResult.instance);\n }\n },\n unmount: async ({ element, mountResult }) => {\n const { onAfterDestroy } = this.props;\n try {\n await this._destroyEditor(mountResult);\n element.innerHTML = \"\";\n } finally {\n if (onAfterDestroy) {\n onAfterDestroy(mountResult.instance);\n }\n }\n }\n });\n }\n /**\n * Render a <div> element which will be replaced by CKEditor.\n */\n render() {\n return /* @__PURE__ */ React.createElement(\"div\", { ref: this.domContainer });\n }\n /**\n * Initializes the editor by creating a proper watchdog and initializing it with the editor's configuration.\n */\n async _initializeEditor() {\n if (this.props.disableWatchdog) {\n const instance = await this._createEditor(this.domContainer.current, this._getConfig());\n return {\n instance,\n watchdog: null\n };\n }\n const watchdog = (() => {\n if (isContextWatchdogReadyToUse(this.context)) {\n return new EditorWatchdogAdapter(this.context.watchdog);\n }\n return new this.props.editor.EditorWatchdog(this.props.editor, this.props.watchdogConfig);\n })();\n const totalRestartsRef = {\n current: 0\n };\n watchdog.setCreator(async (el, config) => {\n var _a;\n const { editorSemaphore } = this;\n const { onAfterDestroy } = this.props;\n if (totalRestartsRef.current > 0 && onAfterDestroy && ((_a = editorSemaphore == null ? void 0 : editorSemaphore.value) == null ? void 0 : _a.instance)) {\n onAfterDestroy(editorSemaphore.value.instance);\n }\n const instance = await this._createEditor(el, config);\n if (editorSemaphore && totalRestartsRef.current > 0) {\n editorSemaphore.unsafeSetValue({\n instance,\n watchdog\n });\n setTimeout(() => {\n if (this.props.onReady) {\n this.props.onReady(watchdog.editor);\n }\n });\n }\n totalRestartsRef.current++;\n return instance;\n });\n watchdog.on(\"error\", (_, { error, causesRestart }) => {\n const onError = this.props.onError || console.error;\n onError(error, { phase: \"runtime\", willEditorRestart: causesRestart });\n });\n await watchdog.create(this.domContainer.current, this._getConfig()).catch((error) => {\n const onError = this.props.onError || console.error;\n onError(error, { phase: \"initialization\", willEditorRestart: false });\n });\n return {\n watchdog,\n instance: watchdog.editor\n };\n }\n /**\n * Creates an editor from the element and configuration.\n *\n * @param element The source element.\n * @param config CKEditor 5 editor configuration.\n */\n _createEditor(element, config) {\n const { contextItemMetadata } = this.props;\n if (contextItemMetadata) {\n config = withCKEditorReactContextMetadata(contextItemMetadata, config);\n }\n return this.props.editor.create(\n element,\n appendAllIntegrationPluginsToConfig(config)\n ).then((editor) => {\n if (\"disabled\" in this.props) {\n /* istanbul ignore else -- @preserve */\n if (this.props.disabled) {\n editor.enableReadOnlyMode(REACT_INTEGRATION_READ_ONLY_LOCK_ID$1);\n }\n }\n const modelDocument = editor.model.document;\n const viewDocument = editor.editing.view.document;\n modelDocument.on(\"change:data\", (event) => {\n /* istanbul ignore else -- @preserve */\n if (this.props.onChange) {\n this.props.onChange(event, editor);\n }\n });\n viewDocument.on(\"focus\", (event) => {\n /* istanbul ignore else -- @preserve */\n if (this.props.onFocus) {\n this.props.onFocus(event, editor);\n }\n });\n viewDocument.on(\"blur\", (event) => {\n /* istanbul ignore else -- @preserve */\n if (this.props.onBlur) {\n this.props.onBlur(event, editor);\n }\n });\n return editor;\n });\n }\n /**\n * Destroys the editor by destroying the watchdog.\n */\n async _destroyEditor(initializeResult) {\n const { watchdog, instance } = initializeResult;\n return new Promise((resolve, reject) => {\n /* istanbul ignore next -- @preserve */\n setTimeout(async () => {\n try {\n if (watchdog) {\n await watchdog.destroy();\n return resolve();\n }\n if (instance) {\n await instance.destroy();\n return resolve();\n }\n resolve();\n } catch (e) {\n console.error(e);\n reject(e);\n }\n });\n });\n }\n /**\n * Returns true when the editor should be updated.\n *\n * @param prevProps Previous react's properties.\n * @param nextProps React's properties.\n * @param editor Current editor instance.\n */\n _shouldUpdateEditorData(prevProps, nextProps, editor) {\n if (prevProps.data === nextProps.data) {\n return false;\n }\n if (editor.data.get() === nextProps.data) {\n return false;\n }\n return true;\n }\n /**\n * Returns the editor configuration.\n */\n _getConfig() {\n const config = this.props.config || {};\n if (this.props.data && config.initialData) {\n console.warn(\n \"Editor data should be provided either using `config.initialData` or `content` property. The config value takes precedence over `content` property and will be used when both are specified.\"\n );\n }\n return {\n ...config,\n initialData: config.initialData || this.props.data || \"\"\n };\n }\n}\n__publicField(CKEditor, \"contextType\", ContextWatchdogContext);\nclass EditorWatchdogAdapter {\n /**\n * @param contextWatchdog The context watchdog instance that will be wrapped into editor watchdog API.\n */\n constructor(contextWatchdog) {\n /**\n * The context watchdog instance that will be wrapped into editor watchdog API.\n */\n __publicField(this, \"_contextWatchdog\");\n /**\n * A unique id for the adapter to distinguish editor items when using the context watchdog API.\n */\n __publicField(this, \"_id\");\n /**\n * A watchdog's editor creator function.\n */\n __publicField(this, \"_creator\");\n this._contextWatchdog = contextWatchdog;\n this._id = uid();\n }\n /**\n * @param creator A watchdog's editor creator function.\n */\n setCreator(creator) {\n this._creator = creator;\n }\n /**\n * Adds an editor configuration to the context watchdog registry. Creates an instance of it.\n *\n * @param sourceElementOrData A source element or data for the new editor.\n * @param config CKEditor 5 editor config.\n */\n create(sourceElementOrData, config) {\n return this._contextWatchdog.add({\n sourceElementOrData,\n config,\n creator: this._creator,\n id: this._id,\n type: \"editor\"\n });\n }\n /**\n * Creates a listener that is attached to context watchdog's item and run when the context watchdog fires.\n * Currently works only for the `error` event.\n */\n on(_, callback) {\n this._contextWatchdog.on(\"itemError\", (_2, { itemId, error }) => {\n if (itemId === this._id) {\n callback(null, { error, causesRestart: void 0 });\n }\n });\n }\n destroy() {\n if (this._contextWatchdog.state === \"ready\") {\n return this._contextWatchdog.remove(this._id);\n }\n return Promise.resolve();\n }\n /**\n * An editor instance.\n */\n get editor() {\n return this._contextWatchdog.getItem(this._id);\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 useLifeCycleSemaphoreSyncRef = () => {\n const semaphoreRef = useRef(null);\n const [revision, setRevision] = useState(() => Date.now());\n const refresh = () => {\n setRevision(Date.now());\n };\n const release = (rerender = true) => {\n if (semaphoreRef.current) {\n semaphoreRef.current.release();\n semaphoreRef.current = null;\n }\n if (rerender) {\n setRevision(Date.now());\n }\n };\n const unsafeSetValue = (value) => {\n var _a;\n (_a = semaphoreRef.current) == null ? void 0 : _a.unsafeSetValue(value);\n refresh();\n };\n const runAfterMount = (callback) => {\n if (semaphoreRef.current) {\n semaphoreRef.current.runAfterMount(callback);\n }\n };\n const replace = (newSemaphore) => {\n release(false);\n semaphoreRef.current = newSemaphore();\n refresh();\n runAfterMount(refresh);\n };\n const createAttributeRef = (key) => ({\n get current() {\n if (!semaphoreRef.current || !semaphoreRef.current.value) {\n return null;\n }\n return semaphoreRef.current.value[key];\n }\n });\n return {\n get current() {\n return semaphoreRef.current;\n },\n revision,\n createAttributeRef,\n unsafeSetValue,\n release,\n replace,\n runAfterMount\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 mergeRefs(...refs) {\n return (value) => {\n refs.forEach((ref) => {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref != null) {\n ref.current = value;\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 useInstantEffect = (fn, deps) => {\n const [prevDeps, setDeps] = useState(null);\n if (!shallowCompareArrays(prevDeps, deps)) {\n fn();\n setDeps([...deps]);\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 useInstantEditorEffect = (semaphore, fn, deps) => {\n useInstantEffect(() => {\n if (semaphore) {\n semaphore.runAfterMount(fn);\n }\n }, [semaphore, ...deps]);\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 REACT_INTEGRATION_READ_ONLY_LOCK_ID = \"Lock from React integration (@ckeditor/ckeditor5-react)\";\nconst useMultiRootEditor = (props) => {\n const semaphoreElementRef = useRef(props.semaphoreElement || null);\n const semaphore = useLifeCycleSemaphoreSyncRef();\n const editorRefs = {\n watchdog: semaphore.createAttributeRef(\"watchdog\"),\n instance: semaphore.createAttributeRef(\"instance\")\n };\n const context = useContext(ContextWatchdogContext);\n const [roots, setRoots] = useState(() => Object.keys(props.data));\n const [data, setData] = useState({ ...props.data });\n const [attributes, setAttributes] = useState({ ...props.rootsAttributes });\n const shouldUpdateEditor = useRef(true);\n const forceAssignFakeEditableElements = () => {\n const editor = editorRefs.instance.current;\n if (!editor) {\n return;\n }\n const initializeEditableWithFakeElement = (editable) => {\n if (editable.name && !editor.editing.view.getDomRoot(editable.name)) {\n editor.editing.view.attachDomRoot(document.createElement(\"div\"), editable.name);\n }\n };\n Object.values(editor.ui.view.editables).forEach(initializeEditableWithFakeElement);\n };\n useEffect(() => {\n const semaphoreElement = semaphoreElementRef.current;\n if (context && !isContextWatchdogReadyToUse(context)) {\n return;\n }\n if (!semaphoreElement || props.isLayoutReady === false) {\n return;\n }\n semaphore.replace(() => new LifeCycleElementSemaphore(semaphoreElement, {\n mount: _initializeEditor,\n afterMount: ({ mountResult }) => {\n const { onReady } = props;\n if (onReady && semaphoreElementRef.current !== null) {\n onReady(mountResult.instance);\n }\n },\n unmount: async ({ element, mountResult }) => {\n const { onAfterDestroy } = props;\n try {\n await _destroyEditor(mountResult);\n element.innerHTML = \"\";\n } finally {\n if (onAfterDestroy) {\n onAfterDestroy(mountResult.instance);\n }\n }\n }\n }));\n return () => {\n forceAssignFakeEditableElements();\n semaphore.release(false);\n };\n }, [props.id, props.isLayoutReady, context == null ? void 0 : context.status]);\n const _getConfig = () => {\n const config = props.config || {};\n if (props.data && config.initialData) {\n console.warn(\n \"Editor data should be provided either using `config.initialData` or `data` property. The config value takes precedence over `data` property and will be used when both are specified.\"\n );\n }\n return {\n ...config,\n rootsAttributes: attributes\n };\n };\n const onChangeData = useRefSafeCallback((editor, event) => {\n const modelDocument = editor.model.document;\n if (!props.disableTwoWayDataBinding) {\n const newData = {};\n const newAttributes = {};\n modelDocument.differ.getChanges().forEach((change) => {\n let root;\n /* istanbul ignore else -- @preserve */\n if (change.type == \"insert\" || change.type == \"remove\") {\n root = change.position.root;\n } else {\n root = change.range.root;\n }\n if (!root.isAttached()) {\n return;\n }\n const { rootName } = root;\n newData[rootName] = editor.getData({ rootName });\n });\n modelDocument.differ.getChangedRoots().forEach((changedRoot) => {\n if (changedRoot.state) {\n if (newData[changedRoot.name] !== void 0) {\n delete newData[changedRoot.name];\n }\n return;\n }\n const rootName = changedRoot.name;\n newAttributes[rootName] = editor.getRootAttributes(rootName);\n });\n if (Object.keys(newData).length) {\n setData((previousData) => ({ ...previousData, ...newData }));\n }\n if (Object.keys(newAttributes).length) {\n setAttributes((previousAttributes) => ({ ...previousAttributes, ...newAttributes }));\n }\n }\n /* istanbul ignore else -- @preserve */\n if (props.onChange) {\n props.onChange(event, editor);\n }\n });\n const onAddRoot = useRefSafeCallback((editor, _evt, root) => {\n const rootName = root.rootName;\n if (!props.disableTwoWayDataBinding) {\n setData(\n (previousData) => ({ ...previousData, [rootName]: editor.getData({ rootName }) })\n );\n setAttributes(\n (previousAttributes) => ({ ...previousAttributes, [rootName]: editor.getRootAttributes(rootName) })\n );\n }\n setRoots((prevRoots) => uniq([...prevRoots, root.rootName]));\n });\n const onDetachRoot = useRefSafeCallback((_editor, _evt, root) => {\n const rootName = root.rootName;\n if (!props.disableTwoWayDataBinding) {\n setData((previousData) => {\n const { [rootName]: _, ...newData } = previousData;\n return { ...newData };\n });\n setAttributes((previousAttributes) => {\n const { [rootName]: _, ...newAttributes } = previousAttributes;\n return { ...newAttributes };\n });\n }\n setRoots((prevRoots) => prevRoots.filter((root2) => root2 !== rootName));\n });\n const _createEditor = useRefSafeCallback((initialData, config) => {\n overwriteObject({ ...props.rootsAttributes }, attributes);\n overwriteObject({ ...props.data }, data);\n overwriteArray(Object.keys(props.data), roots);\n return props.editor.create(\n initialData,\n appendAllIntegrationPluginsToConfig(config)\n ).then((editor) => {\n const editorData = editor.getFullData();\n overwriteObject({ ...editorData }, data);\n overwriteObject({ ...editor.getRootsAttributes() }, attributes);\n overwriteArray(Object.keys(editorData), roots);\n if (props.disabled) {\n /* istanbul ignore else -- @preserve */\n editor.enableReadOnlyMode(REACT_INTEGRATION_READ_ONLY_LOCK_ID);\n }\n const modelDocument = editor.model.document;\n const viewDocument = editor.editing.view.document;\n modelDocument.on(\"change:data\", (evt) => onChangeData(editor, evt));\n editor.on(\"addRoot\", (evt, root) => onAddRoot(editor, evt, root));\n editor.on(\"detachRoot\", (evt, root) => onDetachRoot(editor, evt, root));\n viewDocument.on(\"focus\", (event) => {\n /* istanbul ignore else -- @preserve */\n if (props.onFocus) {\n props.onFocus(event, editor);\n }\n });\n viewDocument.on(\"blur\", (event) => {\n /* istanbul ignore else -- @preserve */\n if (props.onBlur) {\n props.onBlur(event, editor);\n }\n });\n return editor;\n });\n });\n const _destroyEditor = (initializeResult) => {\n const { watchdog, instance } = initializeResult;\n return new Promise((resolve, reject) => {\n /* istanbul ignore next -- @preserve */\n setTimeout(async () => {\n try {\n if (watchdog) {\n await watchdog.destroy();\n return resolve();\n }\n if (instance) {\n await instance.destroy();\n return resolve();\n }\n resolve();\n } catch (e) {\n console.error(e);\n reject(e);\n }\n });\n });\n };\n const _initializeEditor = async () => {\n if (props.disableWatchdog) {\n const instance = await _createEditor(props.data, _getConfig());\n return {\n instance,\n watchdog: null\n };\n }\n const watchdog = (() => {\n if (isContextWatchdogReadyToUse(context)) {\n return new EditorWatchdogAdapter(context.watchdog);\n }\n return new props.editor.EditorWatchdog(props.editor, props.watchdogConfig);\n })();\n const totalRestartsRef = {\n current: 0\n };\n watchdog.setCreator(async (_, config) => {\n const { onAfterDestroy } = props;\n if (totalRestartsRef.current > 0 && onAfterDestroy && editorRefs.instance.current) {\n onAfterDestroy(editorRefs.instance.current);\n }\n const instance = await _createEditor(data, config);\n if (totalRestartsRef.current > 0) {\n semaphore.unsafeSetValue({\n instance,\n watchdog\n });\n setTimeout(() => {\n /* istanbul ignore next -- @preserve */\n if (props.onReady) {\n props.onReady(watchdog.editor);\n }\n });\n }\n totalRestartsRef.current++;\n return instance;\n });\n watchdog.on(\"error\", (_, { error, causesRestart }) => {\n const onError = props.onError || console.error;\n onError(error, { phase: \"runtime\", willEditorRestart: causesRestart });\n });\n await watchdog.create(data, _getConfig()).catch((error) => {\n const onError = props.onError || console.error;\n onError(error, { phase: \"initialization\", willEditorRestart: false });\n throw error;\n });\n return {\n watchdog,\n instance: watchdog.editor\n };\n };\n const _getStateDiff = (previousState, newState) => {\n const previousStateKeys = Object.keys(previousState);\n const newStateKeys = Object.keys(newState);\n return {\n addedKeys: newStateKeys.filter((key) => !previousStateKeys.includes(key)),\n removedKeys: previousStateKeys.filter((key) => !newStateKeys.includes(key))\n };\n };\n const _externalSetData = useCallback(\n (newData) => {\n semaphore.runAfterMount(() => {\n shouldUpdateEditor.current = true;\n setData(newData);\n });\n },\n [setData]\n );\n const _externalSetAttributes = useCallback(\n (newAttributes) => {\n semaphore.runAfterMount(() => {\n shouldUpdateEditor.current = true;\n setAttributes(newAttributes);\n });\n },\n [setAttributes]\n );\n const toolbarElement = /* @__PURE__ */ React.createElement(\n EditorToolbarWrapper,\n {\n ref: semaphoreElementRef,\n editor: editorRefs.instance.current\n }\n );\n useInstantEditorEffect(semaphore.current, ({ instance }) => {\n if (props.disabled) {\n instance.enableReadOnlyMode(REACT_INTEGRATION_READ_ONLY_LOCK_ID);\n } else {\n instance.disableReadOnlyMode(REACT_INTEGRATION_READ_ONLY_LOCK_ID);\n }\n }, [props.disabled]);\n useInstantEditorEffect(semaphore.current, ({ instance }) => {\n if (shouldUpdateEditor.current) {\n shouldUpdateEditor.current = false;\n const dataKeys = Object.keys(data);\n const attributesKeys = Object.keys(attributes);\n if (!dataKeys.every((key) => attributesKeys.includes(key))) {\n console.error(\"`data` and `attributes` objects must have the same keys (roots).\");\n throw new Error(\"`data` and `attributes` objects must have the same keys (roots).\");\n }\n const editorData = instance.getFullData();\n const editorAttributes = instance.getRootsAttributes();\n const {\n addedKeys: newRoots,\n removedKeys: removedRoots\n } = _getStateDiff(\n editorData,\n data || /* istanbul ignore next -- @preserve: It should never happen, data should be always filled. */\n {}\n );\n const modifiedRoots = dataKeys.filter(\n (rootName) => editorData[rootName] !== void 0 && JSON.stringify(editorData[rootName]) !== JSON.stringify(data[rootName])\n );\n const rootsWithChangedAttributes = attributesKeys.filter((rootName) => JSON.stringify(editorAttributes[rootName]) !== JSON.stringify(attributes[rootName]));\n const _handleNewRoots = (roots2) => {\n roots2.forEach((rootName) => {\n instance.addRoot(rootName, {\n data: data[rootName] || \"\",\n attributes: (attributes == null ? void 0 : attributes[rootName]) || /* istanbul ignore next -- @preserve: attributes should be in sync with root keys */\n {},\n isUndoable: true\n });\n });\n };\n const _handleRemovedRoots = (roots2) => {\n roots2.forEach((rootName) => {\n instance.detachRoot(rootName, true);\n });\n };\n const _updateEditorData = (roots2) => {\n const dataToUpdate = roots2.reduce(\n (result, rootName) => ({ ...result, [rootName]: data[rootName] }),\n /* @__PURE__ */ Object.create(null)\n );\n instance.data.set(dataToUpdate, { suppressErrorInCollaboration: true });\n };\n const _updateEditorAttributes = (writer, roots2) => {\n roots2.forEach((rootName) => {\n Object.keys(attributes[rootName]).forEach((attr) => {\n instance.registerRootAttribute(attr);\n });\n writer.clearAttributes(instance.model.document.getRoot(rootName));\n writer.setAttributes(attributes[rootName], instance.model.document.getRoot(rootName));\n });\n };\n setTimeout(() => {\n instance.model.change((writer) => {\n _handleNewRoots(newRoots);\n _handleRemovedRoots(removedRoots);\n if (modifiedRoots.length) {\n _updateEditorData(modifiedRoots);\n }\n if (rootsWithChangedAttributes.length) {\n _updateEditorAttributes(writer, rootsWithChangedAttributes);\n }\n });\n });\n }\n }, [data, attributes]);\n const editableElements = roots.map(\n (rootName) => /* @__PURE__ */ React.createElement(\n EditorEditable,\n {\n key: rootName,\n id: rootName,\n rootName,\n semaphore\n }\n )\n );\n return {\n editor: editorRefs.instance.current,\n editableElements,\n toolbarElement,\n data,\n setData: _externalSetData,\n attributes,\n setAttributes: _externalSetAttributes\n };\n};\nconst EditorEditable = memo(forwardRef(({ id, semaphore, rootName }, ref) => {\n const innerRef = useRef(null);\n useEffect(() => {\n let editable;\n let editor;\n semaphore.runAfterMount(({ instance }) => {\n if (!innerRef.current) {\n return;\n }\n editor = instance;\n const { ui, model } = editor;\n const root = model.document.getRoot(rootName);\n if (root && editor.ui.getEditableElement(rootName)) {\n editor.detachEditable(root);\n }\n editable = ui.view.createEditable(rootName, innerRef.current);\n ui.addEditable(editable);\n instance.editing.view.forceRender();\n });\n return () => {\n if (editor && editor.state !== \"destroyed\" && innerRef.current) {\n const root = editor.model.document.getRoot(rootName);\n /* istanbul ignore else -- @preserve */\n if (root) {\n editor.detachEditable(root);\n }\n }\n };\n }, [semaphore.revision]);\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n key: semaphore.revision,\n id,\n ref: mergeRefs(ref, innerRef)\n }\n );\n}));\nEditorEditable.displayName = \"EditorEditable\";\nconst EditorToolbarWrapper = forwardRef(({ editor }, ref) => {\n const toolbarRef = useRef(null);\n useEffect(() => {\n const toolbarContainer = toolbarRef.current;\n if (!editor || !toolbarContainer) {\n return void 0;\n }\n const element = editor.ui.view.toolbar.element;\n toolbarContainer.appendChild(element);\n return () => {\n if (toolbarContainer.contains(element)) {\n toolbarContainer.removeChild(element);\n }\n };\n }, [editor && editor.id]);\n return /* @__PURE__ */ React.createElement(\"div\", { ref: mergeRefs(toolbarRef, ref) });\n});\nEditorToolbarWrapper.displayName = \"EditorToolbarWrapper\";\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 useIsUnmountedRef = () => {\n const mountedRef = useRef(false);\n useEffect(() => {\n mountedRef.current = false;\n return () => {\n mountedRef.current = true;\n };\n }, []);\n return mountedRef;\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 useAsyncCallback = (callback) => {\n const [asyncState, setAsyncState] = useState({\n status: \"idle\"\n });\n const unmountedRef = useIsUnmountedRef();\n const prevExecutionUIDRef = useRef(null);\n const asyncExecutor = useRefSafeCallback(async (...args) => {\n if (unmountedRef.current || isSSR()) {\n return null;\n }\n const currentExecutionUUID = uid();\n prevExecutionUIDRef.current = currentExecutionUUID;\n try {\n if (asyncState.status !== \"loading\") {\n setAsyncState({\n status: \"loading\"\n });\n }\n const result = await callback(...args);\n if (!unmountedRef.current && prevExecutionUIDRef.current === currentExecutionUUID) {\n setAsyncState({\n status: \"success\",\n data: result\n });\n }\n return result;\n } catch (error) {\n console.error(error);\n if (!unmountedRef.current && prevExecutionUIDRef.current === currentExecutionUUID) {\n setAsyncState({\n status: \"error\",\n error\n });\n }\n }\n return null;\n });\n return [asyncExecutor, asyncState];\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 useAsyncValue = (callback, deps) => {\n const [asyncCallback, asyncState] = useAsyncCallback(callback);\n useInstantEffect(asyncCallback, deps);\n if (asyncState.status === \"idle\") {\n return {\n status: \"loading\"\n };\n }\n return asyncState;\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 useCKEditorCloud(config) {\n const serializedConfigKey = JSON.stringify(config);\n const result = useAsyncValue(\n async () => loadCKEditorCloud(config),\n [serializedConfigKey]\n );\n if (result.status === \"success\") {\n return {\n ...result.data,\n status: \"success\"\n };\n }\n return result;\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 withCKEditorCloud = (config) => (WrappedComponent) => {\n const ComponentWithCKEditorCloud = (props) => {\n var _a, _b;\n const ckeditorCloudResult = useCKEditorCloud(config.cloud);\n switch (ckeditorCloudResult.status) {\n case \"error\":\n if (!config.renderError) {\n return \"Unable to load CKEditor Cloud data!\";\n }\n return config.renderError(ckeditorCloudResult.error);\n case \"success\":\n return /* @__PURE__ */ React.createElement(WrappedComponent, { ...props, cloud: ckeditorCloudResult });\n default:\n return (_b = (_a = config.renderLoader) == null ? void 0 : _a.call(config)) != null ? _b : null;\n }\n };\n ComponentWithCKEditorCloud.displayName = \"ComponentWithCKEditorCloud\";\n return ComponentWithCKEditorCloud;\n};\nexport {\n CKEditor,\n CKEditorContext,\n loadCKEditorCloud2 as loadCKEditorCloud,\n useCKEditorCloud,\n useMultiRootEditor,\n withCKEditorCloud\n};\n//# sourceMappingURL=index.js.map\n","import React, { useEffect, useState, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { useForm, Controller } from \"react-hook-form\";\nimport { yupResolver } from \"@hookform/resolvers/yup\";\nimport { CKEditor } from \"@ckeditor/ckeditor5-react\";\nimport Grid from \"@mui/material/Grid2\";\nimport * as Yup from \"yup\";\nimport {\n Button,\n IconButton,\n Modal,\n Typography,\n Box,\n FormControl,\n MenuItem,\n Select,\n FormControlLabel,\n Checkbox,\n Stack,\n TextField,\n useTheme,\n} from \"@mui/material\";\nimport CustomTextArea from \"@/views/custom-components/CustomTextArea\";\nimport CustomTextField from \"@/views/custom-components/CustomTextField\";\nimport {\n execute,\n retrieveAllConfigured,\n getNotificationTypeList,\n} from \"@/common/services/GlobalApis\";\nimport { showToast } from \"@/common/toaster/toaster\";\n// import { useTracking } from \"useranalytics/dist/index.es\";\nimport useTrackEvent from \"@/hooks/useTrackEvent\";\nimport \"./Styles/ManageEventConfiguration.scss\";\nimport { useTranslateProvider } from \"@/common/languageTranslator/TranslationContext\";\nimport { faXmark } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport Editor from \"@/views/custom-components/CkEditor/CkEditor\";\n\n// Define the validation schema using Yup\n\n/**\n * Modal component for configuring other types of event notifications.\n * @module OtherTypeEventConfigModal\n *\n *\n *\n * @param {Object} props - The props for the component.\n * @param {boolean} props.open - Whether the modal is open or not.\n * @param {Function} props.handleClose - Function to close the modal.\n * @param {Function} props.handleClick - Function to handle submission of the modal form.\n * @param {Object} props.type - Configuration type object passed to the modal.\n *\n * @returns {JSX.Element} The rendered modal component.\n */\nconst OtherTypeEventConfigModal = ({\n open,\n handleClose,\n handleClick,\n type,\n}) => {\n const theme = useTheme();\n const isDark = theme.palette.mode === \"dark\";\n const formRef = useRef(null);\n const submitRef = useRef(false);\n const trackEvent = useTrackEvent();\n const [queryMasters, setQueryMasters] = useState([]);\n const [systemFunctions, setSystemFunctions] = useState([]);\n const [kafkaConfigs, setKafkaConfigs] = useState([]);\n const { translate } = useTranslateProvider();\n\n const [notificationTypeList, setnotificationTypeList] = useState([]);\n const validationSchema = Yup.object().shape({\n excetionTypes: Yup.string().test(\n \"is-required\",\n \"Execution type is required\",\n function (value) {\n if (type?.type === \"EXCEPTION\") {\n return !!value;\n }\n return true;\n },\n ),\n mobileNumberFieldName: Yup.string().test(\n \"is-required\",\n \"Enter Sms contact number field name\",\n function (value) {\n if (type?.type === \"SMS\") {\n return !!value;\n }\n return true;\n },\n ),\n smsTypeField: Yup.string().test(\n \"is-required\",\n \"Enter Sms Type Field\",\n function (value) {\n if (type?.type === \"SMS\") {\n return !!value;\n }\n return true;\n },\n ),\n trigerWhen: Yup.string().test(\n \"is-required\",\n \"trigerWhen is required\",\n function (value) {\n if (type?.type != \"EXCEPTION\" && type?.type != \"SYSTEM_FUNCTION\") {\n return !!value;\n }\n return true;\n },\n ),\n baseDateFieldName: Yup.string().test(\n \"is-required\",\n \"Enter Email Id field name\",\n function (value) {\n if (type?.type === \"EMAIL\") {\n return !!value;\n }\n return true;\n },\n ),\n emailSubject: Yup.string().test(\n \"is-required\",\n \"Enter email subject\",\n function (value) {\n if (type?.type === \"EMAIL\") {\n return !!value;\n }\n return true;\n },\n ),\n notificationTypeId: Yup.string().test(\n \"is-required\",\n \"Select type\",\n function (value) {\n if (type?.type === \"PUSH_NOTIFICATION\") {\n return !!value;\n }\n return true;\n },\n ),\n userFieldName: Yup.string().test(\n \"is-required\",\n \"Enter User Id field name\",\n function (value) {\n if (type?.type === \"PUSH_NOTIFICATION\") {\n return !!value;\n }\n return true;\n },\n ),\n heading: Yup.string().test(\n \"is-required\",\n \"Enter heading\",\n function (value) {\n if (type?.type === \"PUSH_NOTIFICATION\" && notificationTypeId) {\n return !!value;\n }\n return true;\n },\n ),\n template: Yup.string().test(\n \"is-required\",\n \"Enter Template\",\n function (value) {\n if (type?.type === \"PUSH_NOTIFICATION\" && notificationTypeId) {\n return !!value;\n }\n return true;\n },\n ),\n });\n\n const {\n control,\n handleSubmit,\n reset,\n setValue,\n unregister,\n getValues,\n watch,\n formState: { errors },\n } = useForm({\n defaultValues: {},\n resolver: yupResolver(validationSchema),\n mode: \"onChange\",\n });\n\n useEffect(() => {\n if (type) {\n loadInitialState();\n Object.keys(type)?.forEach((key) => {\n if (key === \"index\") {\n setValue(key, type[key]);\n }\n if (key === \"smsConfigJson\" && type[key]) {\n const smsConfigJson = type[key];\n Object.keys(smsConfigJson)?.forEach((keys) => {\n setValue(keys, smsConfigJson[keys]);\n });\n } else if (key === \"pushNotificationConfigJson\" && type[key]) {\n const pushNotificationConfigJson = type[key];\n Object.keys(pushNotificationConfigJson)?.forEach((keys) => {\n setValue(keys, pushNotificationConfigJson[keys]);\n });\n } else if (key === \"kafkaConfigJson\" && type[key]) {\n const kafkaConfigJson = type[key];\n Object.keys(kafkaConfigJson)?.forEach((keys) => {\n setValue(keys, kafkaConfigJson[keys]);\n });\n } else if (type[key] !== undefined && type[key] !== null) {\n setValue(key, type[key]);\n if (key === \"miniute\") {\n setValue(\"minute\", type[key]);\n }\n }\n });\n }\n }, [type]);\n\n const queryMasterParamJson = watch(\"queryMasterParamJson\");\n const queryCode = watch(\"queryCode\");\n const systemFunctionId = watch(\"systemFunctionId\");\n const functionParams = watch(\"functionParams\");\n const trigerWhen = watch(\"trigerWhen\");\n const notificationTypeId = watch(\"notificationTypeId\");\n const kafkaParameterJson = watch(\"kafkaParameterJson\");\n const formType = watch(\"formType\");\n\n /**\n * @function setImplicitParameters\n * @async\n * @description Sets implicit parameters based on the selected query master.\n *\n * @param {string} data - The code of the selected query master.\n */\n const setImplicitParameters = async (data) => {\n if (queryMasterParamJson) {\n queryMasterParamJson.forEach((param, index) => {\n setValue(`${param.parameterName}${index}`, \"\");\n\n setValue(`${param.parameterName}${index}isFixed`, false);\n });\n }\n\n let queryMasterParamJsonObj = [];\n\n const queryMaster = queryMasters?.find((master) => master?.code === data);\n if (queryMaster) {\n const params = queryMaster?.params?.split(\",\");\n const uniqueParams = Array.from(new Set(params));\n\n uniqueParams.forEach((param) => {\n queryMasterParamJsonObj.push({ parameterName: param });\n });\n }\n\n setValue(\"queryMasterParamJson\", queryMasterParamJsonObj);\n };\n\n /**\n * @function setFunctionParams\n * @description Sets function parameters based on the selected system function.\n *\n * @param {string} data - The ID of the selected system function.\n */\n const setFunctionParams = (data) => {\n if (functionParams) {\n functionParams.forEach((param, index) => {\n setValue(`${param.parameterName}${index}`, \"\");\n\n setValue(`${param.parameterName}${index}isFixed`, false);\n });\n }\n let functionParams1 = [];\n const systemFunction = systemFunctions.find((func) => func.id === data);\n if (systemFunction) {\n const uniqueParams = Array.from(new Set(systemFunction.parameters));\n uniqueParams.forEach((param) => {\n functionParams1.push(param);\n });\n }\n setValue(\"functionParams\", functionParams1);\n };\n\n /**\n * @function onNotificationTypeChange\n * @description Handles changes in the selected notification type.\n *\n * @param {string} notificationTypeId - The ID of the selected notification type.\n */\n const onNotificationTypeChange = (notificationTypeId) => {\n const notificationType = notificationTypeList.find(\n (type) => type.id === notificationTypeId,\n );\n\n if (notificationType) {\n setValue(\"notificationType\", notificationType);\n setValue(\"template\", notificationType.message);\n setValue(\"heading\", notificationType.heading);\n }\n };\n\n /**\n * @function handleChange\n * @description Updates the value of a field within query or system function parameters.\n *\n * @param {number} index - The index of the parameter configuration to update.\n * @param {string} field - The name of the field to update.\n * @param {*} value - The new value to set.\n */\n const handleChange = (index, field, value) => {\n if (type?.type === \"QUERY\") {\n const newConfigs = [...queryMasterParamJson];\n newConfigs[index][field] = value;\n setValue(\"queryMasterParamJson\", newConfigs);\n }\n if (type?.type === \"SYSTEM_FUNCTION\") {\n const newConfigs = [...functionParams];\n newConfigs[index][field] = value;\n setValue(\"functionParams\", newConfigs);\n }\n if (type?.type === \"KAFKA_SYNC\") {\n const newConfigs = [...kafkaParameterJson];\n newConfigs[index][field] = value;\n setValue(\"kafkaParameterJson\", newConfigs);\n }\n };\n\n /**\n * Updates kafka parameter information based on the selected kafka config.\n * @param {string} selectedFormType - The form_type of the selected kafka config.\n */\n const updateKafkaParameters = (selectedFormType) => {\n const currentParams = getValues(\"kafkaParameterJson\");\n if (currentParams && Array.isArray(currentParams)) {\n currentParams.forEach((param, index) => {\n unregister(`${param.parameterName}${index}`);\n unregister(`${param.parameterName}${index}isFixed`);\n });\n setValue(\"kafkaParameterJson\", [], { shouldValidate: true });\n }\n\n const selectedConfig = kafkaConfigs.find(\n (config) => config.form_type === selectedFormType,\n );\n if (selectedConfig && selectedConfig.param_types) {\n const paramTypes = JSON.parse(selectedConfig.param_types);\n const params = Object.keys(paramTypes).map((key) => {\n return {\n parameterName: key,\n mappingValue: \"\",\n isFixed: false,\n };\n });\n setValue(\"kafkaParameterJson\", params, { shouldValidate: true });\n } else {\n setValue(\"kafkaParameterJson\", [], { shouldValidate: true });\n }\n };\n\n /**\n * @function loadInitialState\n * @async\n * @description Loads the initial state by retrieving necessary data based on the selected type.\n */\n const loadInitialState = async () => {\n try {\n if (type?.type === \"QUERY\") {\n const res = await retrieveAllConfigured(true);\n\n setQueryMasters(res?.data);\n }\n if (type?.type === \"SYSTEM_FUNCTION\") {\n let dto = {\n code: \"system_function_retrieve_all\",\n parameters: {},\n };\n const res = await execute(dto);\n const data = res?.data?.result.map((systemFunction) => {\n systemFunction.parameters = JSON.parse(systemFunction.parameters);\n return systemFunction;\n });\n setSystemFunctions(data);\n }\n if (type?.type === \"PUSH_NOTIFICATION\") {\n const res = await getNotificationTypeList();\n setnotificationTypeList(res?.data);\n }\n if (type?.type === \"KAFKA_SYNC\") {\n const res = await execute({\n code: \"retrieve_all_kafka_configs\",\n parameters: {},\n });\n\n setKafkaConfigs(res?.data?.result || []);\n }\n } catch {\n showToast({ message: \"Error in loading\", type: \"error\" });\n }\n };\n const close = () => {\n trackEvent(\"conversion_event\", {\n form: formRef.current,\n form_name: \"Add Other Type Configuration\",\n submit: submitRef.current,\n }); // Use the current ref value\n\n handleClose();\n };\n /**\n * @function onSubmit\n * @description Handles the form submission and prepares data for the handleClick function.\n *\n * @param {Object} data - The submitted form data.\n */\n\n const onSubmit = (data) => {\n data = JSON.parse(JSON.stringify(data));\n data.minute = Number(data.minute || 0);\n data.miniute = Number(data.minute || 0);\n data.type = type?.type;\n if (type.type === \"SMS\") {\n data.smsConfigJson = {\n mobileNumberFieldName: data.mobileNumberFieldName,\n isPriority: data.isPriority,\n isSmsTypeFixed: data.isSmsTypeFixed,\n smsTypeField: data.smsTypeField,\n };\n delete data.mobileNumberFieldName;\n delete data.isPriority;\n delete data.isSmsTypeFixed;\n delete data.smsTypeField;\n }\n if (type.type === \"PUSH_NOTIFICATION\") {\n data.pushNotificationConfigJson = {\n notificationTypeId: data.notificationTypeId,\n userFieldName: data.userFieldName,\n heading: data.heading,\n template: data.template,\n };\n delete data.notificationTypeId;\n delete data.userFieldName;\n delete data.heading;\n delete data.template;\n }\n if (type.type === \"KAFKA_SYNC\") {\n data.kafkaConfigJson = {\n formType: data.formType,\n kafkaParameterJson: data.kafkaParameterJson,\n };\n }\n queryMasterParamJson?.forEach((param, index) => {\n delete data[`${param?.parameterName}${index}`];\n delete data[`${param?.parameterName}${index}isFixed`];\n });\n functionParams?.forEach((param, index) => {\n delete data[`${param?.parameterName}${index}`];\n delete data[`${param?.parameterName}${index}isFixed`];\n });\n kafkaParameterJson?.forEach((param, index) => {\n delete data[`${param?.parameterName}${index}`];\n delete data[`${param?.parameterName}${index}isFixed`];\n });\n handleClick(data); // Pass the form data to the handleClick function\n submitRef.current = true;\n close();\n reset(); // Close the modal after submitting\n };\n\n return (\n <Modal\n data-testid=\"othertypeeventconfigmodal-modal\"\n open={open}\n className=\"flex items-center justify-center\"\n onClose={() => {\n close();\n reset();\n }}\n sx={{\n \"& .MuiBackdrop-root\": {\n backgroundColor: \"rgba(0, 0, 0, 0.1)\",\n },\n }}\n >\n <Grid\n container\n className=\"w-[90%] md:w-[80%] flex flex-col\"\n sx={{\n // 1. Theme-aware background\n backgroundColor: (theme) => theme.palette.background.paper,\n\n // 2. Dynamic Border/Shadow for Dark Mode\n border: (theme) =>\n theme.palette.mode === \"dark\"\n ? `1px solid ${theme.palette.divider}`\n : \"none\",\n\n // 3. GitHub-style shadow (Soft in light, Deep in dark)\n boxShadow: (theme) =>\n theme.palette.mode === \"dark\"\n ? \"0 8px 24px rgba(0,0,0,0.4)\"\n : theme.shadows[2], // Standard MUI shadow for light mode\n\n borderRadius: \"12px\", // Matches your MuiCard configuration\n transition: \"all 0.3s ease-in-out\",\n // Keeps children inside the rounded corners\n }}\n >\n <Grid\n className=\"manageeventconfiguration-modal-header p-2.5 px-5 flex border-b\"\n data-testid=\"othertypeeventconfigmodal-modal-header\"\n >\n <Typography\n variant=\"body1\"\n className=\"font-medium text-lg text-customBlue\"\n >\n {translate(\"Add\")} {translate(type?.type)}{\" \"}\n {translate(\"Configuration\")}\n </Typography>\n <IconButton\n size=\"small\"\n onClick={() => {\n close();\n reset();\n }}\n data-testid=\"othertypeeventconfigmodal-close-button\"\n >\n <FontAwesomeIcon icon={faXmark} />\n </IconButton>\n </Grid>\n <form\n onSubmit={handleSubmit(onSubmit)}\n ref={formRef}\n data-testid=\"othertypeeventconfigmodal-form\"\n >\n <Grid container className=\" max-h-[60vh] overflow-y-auto w-full\">\n <Grid\n item\n className=\"border-b border-gray-300 p-2.5 flex flex-col items-start\"\n size={{ xs: 12 }}\n >\n <Box className=\"whitespace-normal w-full break-all p-2.5 flex flex-col items-start\">\n <Typography variant=\"body2\" className=\"font-bold\">\n {translate(\"Available Implicit Parameters\")}:{\" \"}\n {type?.implicitParam}{\" \"}\n </Typography>\n </Box>\n </Grid>\n\n <Grid item className=\"p-2.5 w-full\">\n {type?.type === \"EXCEPTION\" && (\n <Grid container spacing={2}>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-exceptionType\"\n >\n <Typography variant=\"body2\">\n {translate(\"Exception\")} {translate(\"Type\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>*</span>\n </Typography>\n <Box className=\" w-full\">\n <Controller\n name=\"excetionTypes\"\n control={control}\n defaultValue=\"\"\n className=\" w-full\"\n render={({ field }) => (\n <Select\n className=\" w-full\"\n {...field}\n error={errors.excetionTypes}\n size=\"small\"\n data-testid=\"othertypeeventconfigmodal-excetionTypes-select\"\n >\n <MenuItem value=\"\">\n <Typography variant=\"body2\">\n {translate(\"Select\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"ImtechoUserException\">\n <Typography variant=\"body2\">\n {translate(\"Imtecho User Exception\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"ImtechoSystemException\">\n <Typography variant=\"body2\">\n {\" \"}\n {translate(\"Imtecho System Exception\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"ImtechoMobileException\">\n <Typography variant=\"body2\">\n {translate(\"Imtecho Mobile Exception\")}\n </Typography>\n </MenuItem>\n </Select>\n )}\n />\n {errors?.excetionTypes && (\n <p\n className=\"error-helper\"\n data-testid=\"custom-error-message\"\n >\n {errors?.excetionTypes?.message}\n </p>\n )}\n </Box>\n </FormControl>\n </Grid>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n {\" \"}\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-exceptionMessage\"\n >\n <Typography variant=\"body2\">\n {translate(\"Message\")}\n </Typography>\n <Box className=\" w-full\">\n <CustomTextArea\n control={control}\n id=\"exceptionMessage\"\n name=\"exceptionMessage\"\n errors={errors}\n label=\"\"\n minRows={5}\n data-testid=\"othertypeeventconfigmodal-exceptionMessage-customtextarea\"\n />\n </Box>\n </FormControl>\n </Grid>\n </Grid>\n )}\n\n {type?.type === \"SMS\" && (\n <Grid container spacing={2}>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-mobileNumberFieldName\"\n >\n <Typography variant=\"body2\">\n {translate(\"SMS\")} {translate(\"Phone number\")}{\" \"}\n {translate(\"Field\")} {translate(\"Name\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>*</span>\n </Typography>\n <Box className=\" w-full\">\n <CustomTextField\n control={control}\n id=\"mobileNumberFieldName\"\n name=\"mobileNumberFieldName\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"othertypeeventconfigmodal-mobileNumberFieldName-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-smsTypeField\"\n >\n <Grid\n container\n justifyContent=\"space-between\"\n alignItems=\"center\"\n >\n <Grid item xs>\n <Typography variant=\"body2\">\n {translate(\"SMS\")} {translate(\"Type\")}{\" \"}\n {translate(\"Field\")} {translate(\"Value\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>\n *\n </span>\n </Typography>\n </Grid>\n <Grid container>\n {\" \"}\n <Grid item>\n <FormControl component=\"fieldset\" className=\"mr-2\">\n <Controller\n control={control}\n name=\"isPriority\"\n defaultValue={false}\n render={({ field }) => (\n <FormControlLabel\n control={\n <Checkbox\n checked={field.value}\n onChange={(e) =>\n field.onChange(e.target.checked)\n }\n data-testid=\"othertypeeventconfigmodal-isPriority-checkbox\"\n />\n }\n label=\"Is Priority\"\n />\n )}\n />\n </FormControl>\n </Grid>\n <Grid item>\n <FormControl component=\"fieldset\" className=\"mr-2\">\n <Controller\n control={control}\n name=\"isSmsTypeFixed\"\n defaultValue={false}\n render={({ field }) => (\n <FormControlLabel\n control={\n <Checkbox\n checked={field.value}\n onChange={(e) =>\n field.onChange(e.target.checked)\n }\n data-testid=\"othertypeeventconfigmodal-isSmsTypeFixed-checkbox\"\n />\n }\n label={translate(\"Is Fixed Value\")}\n />\n )}\n />\n </FormControl>\n </Grid>\n </Grid>\n </Grid>\n\n <Box className=\" w-full\">\n <CustomTextField\n control={control}\n id=\"smsTypeField\"\n name=\"smsTypeField\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"othertypeeventconfigmodal-smsTypeField-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n </Grid>\n )}\n {type?.type === \"EMAIL\" && (\n <Grid container spacing={2} className=\" w-full\">\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-emailIdField\"\n >\n <Typography variant=\"body2\">\n {translate(\"Email\")} {translate(\"Id\")}{\" \"}\n {translate(\"Field\")} {translate(\"Value\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>*</span>\n </Typography>\n <Box className=\" w-full\">\n <CustomTextField\n control={control}\n id=\"baseDateFieldName\"\n name=\"baseDateFieldName\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"othertypeeventconfigmodal-baseDateFieldName-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-emailSubjectField\"\n >\n <Typography variant=\"body2\">\n {translate(\"Email\")} {translate(\"Subject\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>*</span>\n </Typography>\n <Box className=\" w-full\">\n <CustomTextField\n control={control}\n id=\"emailSubject\"\n name=\"emailSubject\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"othertypeeventconfigmodal-emailSubject-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-[95%] md:w-full overflow-auto\"\n data-testid=\"othertypeeventconfigmodal-template\"\n >\n <Typography variant=\"body2\">\n {translate(\"Template\")}\n </Typography>\n <Box\n className=\" w-full\"\n sx={{\n borderRadius: \"8px\",\n overflow: \"hidden\",\n border: `1px solid ${theme.palette.divider}`,\n // This targets the actual writing area\n \"& .ck-editor__main > .ck-editor__editable\": {\n backgroundColor: `${theme.palette.background.paper} !important`,\n color: `${theme.palette.text.primary} !important`,\n minHeight: \"200px\",\n \"&.ck-focused\": {\n borderColor: `${theme.palette.primary.main} !important`,\n },\n },\n // This targets the toolbar\n \"& .ck.ck-toolbar\": {\n backgroundColor: isDark\n ? \"#21262D !important\"\n : \"var(--color-gray4) !important\",\n borderColor: `${theme.palette.divider} !important`,\n },\n // This targets the buttons/icons inside the toolbar\n \"& .ck.ck-toolbar .ck-button\": {\n color: `${theme.palette.text.primary} !important`,\n cursor: \"pointer\",\n \"&:hover\": {\n backgroundColor: isDark\n ? \"#30363D !important\"\n : \"var(--color-gray3) !important\",\n },\n \"&.ck-on\": {\n backgroundColor: isDark\n ? \"#11B66633 !important\"\n : \"var(--color-gray3) !important\",\n color: `${theme.palette.primary.main} !important`,\n },\n },\n // This targets dropdowns and labels\n \"& .ck.ck-label\": {\n color: `${theme.palette.text.secondary} !important`,\n },\n }}\n >\n <CKEditor\n editor={Editor}\n data={getValues(\"template\") || \"\"}\n config={{\n toolbar: [\n \"heading\",\n \"|\",\n \"bold\",\n \"italic\",\n \"underline\",\n \"link\",\n \"|\",\n \"cut\",\n \"copy\",\n \"|\", // Added cut and copy\n \"bulletedList\",\n \"numberedList\",\n \"|\",\n \"blockQuote\",\n \"|\",\n \"undo\",\n \"redo\",\n ],\n }}\n onChange={(_, editor) => {\n const data = editor.getData();\n setValue(\"template\", data);\n }}\n data-testid=\"othertypeeventconfigmodal-template-ckeditor\"\n />\n </Box>\n </FormControl>\n </Grid>\n </Grid>\n )}\n {type?.type === \"QUERY\" && (\n <Grid container>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-querySelect\"\n >\n <Typography variant=\"body2\">\n {translate(\"Query\")}\n </Typography>\n <Box className=\" w-full\">\n <Controller\n className=\" w-full\"\n name=\"queryCode\"\n control={control}\n defaultValue={null}\n render={({ field }) => (\n <Select\n {...field}\n className=\" w-full\"\n size=\"small\"\n displayEmpty\n onChange={(data) => {\n field.onChange(data);\n setImplicitParameters(data.target.value);\n }}\n data-testid=\"othertypeeventconfigmodal-queryCode-select\"\n >\n <MenuItem value={null}>\n <Typography variant=\"body2\">\n {translate(\"Select\")}\n </Typography>\n </MenuItem>\n\n {queryMasters?.map((data, index) => (\n <MenuItem key={index + 1} value={data?.code}>\n <Typography variant=\"body2\">\n {\" \"}\n {data?.code}\n </Typography>\n </MenuItem>\n ))}\n </Select>\n )}\n />\n </Box>\n </FormControl>\n </Grid>\n </Grid>\n )}\n {queryMasterParamJson && type?.type === \"QUERY\" && queryCode && (\n <Grid container className=\" w-full\">\n {queryMasterParamJson?.map((param, index) => (\n <Grid\n item\n size={{ xs: 12 }}\n className=\" w-full\"\n key={index + 1}\n >\n <FormControl variant=\"outlined\" className=\" w-full\">\n <Grid\n container\n justifyContent=\"space-between\"\n alignItems=\"center\"\n >\n <Grid item>\n <Typography variant=\"body1\">\n {param?.parameterName} {translate(\"Mapping\")}\n </Typography>\n </Grid>\n <Grid item>\n <FormControl component=\"fieldset\" className=\"mr-2\">\n <Controller\n control={control}\n name={`${param?.parameterName}${index}isFixed`}\n defaultValue={param?.isFixed || false}\n render={({ field }) => (\n <FormControlLabel\n control={\n <Checkbox\n checked={field.value}\n onChange={(e) => {\n field.onChange(e.target.checked);\n handleChange(\n index,\n \"isFixed\",\n e.target.checked,\n );\n }}\n data-testid=\"othertypeeventconfigmodal-isFixed-checkbox\"\n />\n }\n label=\"Is Fixed Value\"\n />\n )}\n />\n </FormControl>\n </Grid>\n </Grid>\n\n <Box className=\" w-full\">\n <Controller\n control={control}\n className=\" w-full\"\n name={`${param?.parameterName}${index}`}\n defaultValue={param?.mappingValue}\n render={({ field }) => (\n <TextField\n variant=\"outlined\"\n size=\"small\"\n className=\" w-full\"\n {...field}\n fullWidth // Ensure TextField takes full width\n onChange={(e) => {\n setValue(\n `${param?.parameterName}${index}`,\n e.target.value,\n );\n handleChange(\n index,\n \"mappingValue\",\n e.target.value,\n );\n }}\n data-testid={`othertypeeventconfigmodal-${param?.parameterName}${index}-textfiled`}\n />\n )}\n />\n </Box>\n </FormControl>\n </Grid>\n ))}\n </Grid>\n )}\n\n {type?.type === \"SYSTEM_FUNCTION\" && (\n <Grid container>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-systemFunction\"\n >\n <Typography variant=\"body2\">\n {translate(\"System Function\")}\n </Typography>\n <Box className=\" w-full\">\n <Controller\n className=\" w-full\"\n name=\"systemFunctionId\"\n control={control}\n defaultValue=\"\"\n render={({ field }) => (\n <Select\n {...field}\n className=\" w-full\"\n size=\"small\"\n onChange={(data) => {\n field.onChange(data);\n <Box className=\" w-full\">\n <Controller\n className=\" w-full\"\n name=\"systemFunctionId\"\n control={control}\n defaultValue=\"\"\n render={({ field }) => (\n <Select\n {...field}\n className=\" w-full\"\n size=\"small\"\n onChange={(data) => {\n field.onChange(data);\n setFunctionParams(data.target.value);\n }}\n data-testid=\"othertypeeventconfigmodal-systemFunctionId-select\"\n sx={{\n \".MuiSelect-select\": {\n whiteSpace: \"pre-wrap\", // Allows line breaks\n wordBreak: \"break-word\",\n height: \"auto\",\n minHeight: \"1.4375em\",\n },\n }}\n MenuProps={{\n PaperProps: {\n sx: {\n maxHeight: 300,\n overflow: \"auto\",\n width: {\n xs: \"100%\", // full width on small screens\n sm: 300, // fixed width on tablets\n md: 400, // wider on desktops\n },\n },\n },\n }}\n >\n <MenuItem value=\"\">\n <Typography variant=\"body2\">\n {translate(\"None\")}\n </Typography>\n </MenuItem>\n\n {systemFunctions?.map((data, index) => (\n <MenuItem\n key={index + 1}\n value={data?.id}\n >\n <Typography variant=\"body2\">\n {\" \"}\n {data?.name} ({data?.className})\n </Typography>\n </MenuItem>\n ))}\n </Select>\n )}\n />\n </Box>;\n setFunctionParams(data.target.value);\n }}\n data-testid=\"othertypeeventconfigmodal-systemFunctionId-select\"\n sx={{\n \".MuiSelect-select\": {\n whiteSpace: \"pre-wrap\", // Allows line breaks\n wordBreak: \"break-word\",\n height: \"auto\",\n minHeight: \"1.4375em\",\n },\n }}\n MenuProps={{\n PaperProps: {\n sx: {\n maxHeight: 300,\n overflow: \"auto\",\n maxWidth: 410,\n },\n },\n }}\n >\n <MenuItem value=\"\">\n <Typography variant=\"body2\">\n {translate(\"None\")}\n </Typography>\n </MenuItem>\n\n {systemFunctions?.map((data, index) => (\n <MenuItem key={index + 1} value={data?.id}>\n <Typography variant=\"body2\">\n {\" \"}\n {data?.name} ({data?.className})\n </Typography>\n </MenuItem>\n ))}\n </Select>\n )}\n />\n </Box>\n </FormControl>\n </Grid>\n </Grid>\n )}\n {functionParams &&\n type?.type === \"SYSTEM_FUNCTION\" &&\n systemFunctionId && (\n <Grid container>\n {functionParams?.map((param, index) => (\n <Grid\n item\n size={{ xs: 12 }}\n className=\" w-full\"\n key={index + 1}\n >\n <FormControl variant=\"outlined\" className=\" w-full\">\n <Grid\n container\n justifyContent=\"space-between\"\n alignItems=\"center\"\n >\n <Grid item xs>\n <Typography variant=\"body2\">\n {param?.parameterName} {translate(\"Mapping\")}\n </Typography>\n </Grid>\n <Grid item>\n <FormControl\n component=\"fieldset\"\n className=\"mr-2\"\n >\n <Controller\n control={control}\n name={`${param?.parameterName}${index}isFixed`}\n defaultValue={param?.isFixed || false}\n render={({ field }) => (\n <FormControlLabel\n control={\n <Checkbox\n checked={field.value}\n onChange={(e) => {\n field.onChange(e.target.checked);\n handleChange(\n index,\n \"isFixed\",\n e.target.checked,\n );\n }}\n data-testid=\"othertypeeventconfigmodal-systemFunctionId-checkbox\"\n />\n }\n label=\"Is Fixed Value\"\n />\n )}\n />\n </FormControl>\n </Grid>\n </Grid>\n\n <Box className=\" w-full\">\n <Controller\n control={control}\n className=\" w-full\"\n name={`${param?.parameterName}${index}`}\n defaultValue={param?.mappingValue}\n render={({ field }) => (\n <TextField\n variant=\"outlined\"\n size=\"small\"\n className=\" w-full\"\n {...field}\n fullWidth // Ensure TextField takes full width\n onChange={(e) => {\n setValue(\n `${param?.parameterName}${index}`,\n e.target.value,\n );\n handleChange(\n index,\n \"mappingValue\",\n e.target.value,\n );\n }}\n data-testid={`othertypeeventconfigmodal-${param?.parameterName}${index}-textfiled`}\n />\n )}\n />\n </Box>\n </FormControl>\n </Grid>\n ))}\n </Grid>\n )}\n\n {type?.type === \"PUSH_NOTIFICATION\" && (\n <Grid container spacing={2}>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-userIdFieldName\"\n >\n <Typography variant=\"body2\">\n {translate(\"User\")} {translate(\"Id\")}{\" \"}\n {translate(\"Field\")} {translate(\"Name\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>*</span>\n </Typography>\n <Box className=\" w-full\">\n <CustomTextField\n control={control}\n id=\"userFieldName\"\n name=\"userFieldName\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"othertypeeventconfigmodal-userFieldName-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-notificationType\"\n >\n <Typography variant=\"body2\">\n {translate(\"Notification\")} {translate(\"Type\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>*</span>\n </Typography>\n <Box className=\" w-full\">\n <Controller\n className=\" w-full\"\n name=\"notificationTypeId\"\n control={control}\n defaultValue=\"\"\n render={({ field }) => (\n <Select\n {...field}\n className=\" w-full\"\n size=\"small\"\n error={errors?.notificationTypeId}\n onChange={(data) => {\n field.onChange(data);\n onNotificationTypeChange(data.target.value);\n }}\n data-testid=\"othertypeeventconfigmodal-notificationtypeid-select\"\n >\n <MenuItem value=\"\">\n <Typography variant=\"body2\">\n {translate(\"None\")}\n </Typography>\n </MenuItem>\n {notificationTypeList?.map((data, index) => (\n <MenuItem key={index + 1} value={data?.id}>\n <Typography variant=\"body2\">\n {data?.type}\n </Typography>\n </MenuItem>\n ))}\n </Select>\n )}\n />\n {errors?.notificationTypeId && (\n <p\n className=\"error-helper\"\n data-testid=\"custom-error-message\"\n >\n {errors?.notificationTypeId?.message}\n </p>\n )}\n </Box>\n </FormControl>\n </Grid>\n </Grid>\n )}\n {type?.type === \"PUSH_NOTIFICATION\" && notificationTypeId && (\n <Grid container spacing={2}>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl variant=\"outlined\" className=\" w-full\">\n <Typography variant=\"body2\">\n {translate(\"Notification\")} {translate(\"Heading\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>*</span>\n </Typography>\n <Box className=\" w-full\">\n <CustomTextField\n control={control}\n id=\"heading\"\n name=\"heading\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"othertypeeventconfigmodal-heading-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n {\" \"}\n <FormControl variant=\"outlined\" className=\" w-full\">\n <Typography variant=\"body2\">\n {translate(\"Template\")}\n </Typography>\n <Box className=\" w-full\">\n <CustomTextArea\n control={control}\n id=\"template\"\n name=\"template\"\n errors={errors}\n label=\"\"\n minRows={5}\n data-testid=\"othertypeeventconfigmodal-template-customtextarea\"\n />\n </Box>\n </FormControl>\n </Grid>\n </Grid>\n )}\n\n {type?.type === \"KAFKA_SYNC\" && (\n <Grid container>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-kafkaConfig\"\n >\n <Typography variant=\"body2\">\n {translate(\"Kafka Config\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>*</span>\n </Typography>\n <Box className=\" w-full\">\n <Controller\n className=\" w-full\"\n name=\"formType\"\n control={control}\n defaultValue=\"\"\n error={errors}\n render={({ field }) => (\n <Select\n {...field}\n className=\" w-full\"\n size=\"small\"\n displayEmpty\n onChange={(e) => {\n field.onChange(e);\n updateKafkaParameters(e.target.value);\n }}\n data-testid=\"othertypeeventconfigmodal-kafkaConfig-select\"\n >\n <MenuItem value=\"\">\n <Typography variant=\"body2\">\n {translate(\"Select\")}\n </Typography>\n </MenuItem>\n {kafkaConfigs?.map((config, index) => (\n <MenuItem key={index} value={config.form_type}>\n <Typography variant=\"body2\">\n {config.form_type}\n </Typography>\n </MenuItem>\n ))}\n </Select>\n )}\n />\n </Box>\n </FormControl>\n </Grid>\n </Grid>\n )}\n {kafkaParameterJson &&\n type?.type === \"KAFKA_SYNC\" &&\n formType &&\n kafkaParameterJson.length > 0 && (\n <Grid container className=\" w-full\">\n {kafkaParameterJson?.map((param, index) => (\n <Grid\n item\n size={{ xs: 12 }}\n className=\" w-full\"\n key={`${formType}-${param?.parameterName}-${index}`}\n >\n <FormControl variant=\"outlined\" className=\" w-full\">\n <Grid\n container\n justifyContent=\"space-between\"\n alignItems=\"center\"\n >\n <Grid item xs>\n <Typography variant=\"body2\">\n {param?.parameterName} {translate(\"Mapping\")}\n </Typography>\n </Grid>\n <Grid item>\n <FormControl\n component=\"fieldset\"\n className=\"mr-2\"\n >\n <Controller\n control={control}\n name={`${param?.parameterName}${index}isFixed`}\n defaultValue={param?.isFixed || false}\n render={({ field }) => (\n <FormControlLabel\n control={\n <Checkbox\n checked={field.value}\n onChange={(e) => {\n field.onChange(e.target.checked);\n handleChange(\n index,\n \"isFixed\",\n e.target.checked,\n );\n }}\n data-testid=\"othertypeeventconfigmodal-kafka-isFixed-checkbox\"\n />\n }\n label={translate(\"Is Fixed Value\")}\n />\n )}\n />\n </FormControl>\n </Grid>\n </Grid>\n <Box className=\" w-full\">\n <Controller\n control={control}\n className=\" w-full\"\n name={`${param?.parameterName}${index}`}\n defaultValue={param?.mappingValue || \"\"}\n render={({ field }) => (\n <TextField\n variant=\"outlined\"\n size=\"small\"\n className=\" w-full\"\n {...field}\n fullWidth\n onChange={(e) => {\n setValue(\n `${param?.parameterName}${index}`,\n e.target.value,\n );\n handleChange(\n index,\n \"mappingValue\",\n e.target.value,\n );\n }}\n data-testid={`othertypeeventconfigmodal-kafka-${param?.parameterName}${index}-textfield`}\n />\n )}\n />\n </Box>\n </FormControl>\n </Grid>\n ))}\n </Grid>\n )}\n\n {(type?.type === \"SMS\" ||\n (type?.type == \"QUERY\" && !queryCode)) && (\n <Grid container spacing={2}>\n <Grid item size={{ xs: 12 }} className=\" w-full\">\n {\" \"}\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid={\n type.type === \"QUERY\"\n ? \"othertypeeventconfigmodal-queryArea\"\n : \"othertypeeventconfigmodal-template\"\n }\n >\n <Typography variant=\"body2\">\n {translate(\n type.type === \"QUERY\" ? \"Query\" : \"Template\",\n )}\n </Typography>\n <Box className=\" w-full\">\n <CustomTextArea\n control={control}\n id=\"template\"\n name=\"template\"\n label=\"\"\n minRows={5}\n data-testid=\"othertypeeventconfigmodal-template-customtextarea\"\n />\n </Box>\n </FormControl>\n </Grid>\n </Grid>\n )}\n {type?.type != \"EXCEPTION\" && type?.type != \"SYSTEM_FUNCTION\" && (\n <Grid container spacing={2}>\n <Grid item size={{ xs: 12 }} className=\"mt-2 w-full\">\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-triggerWhen\"\n >\n <Typography variant=\"body2\">\n {translate(\"Trigger\")} {translate(\"When\")}\n <span style={{ color: \"red\", marginLeft: 4 }}>*</span>\n </Typography>\n <Box className=\" w-full\">\n <Controller\n name=\"trigerWhen\"\n control={control}\n defaultValue=\"\"\n className=\" w-full\"\n render={({ field }) => (\n <Select\n className=\" w-full\"\n {...field}\n error={errors.trigerWhen}\n size=\"small\"\n displayEmpty\n data-testid=\"othertypeeventconfigmodal-trigegrwhen-select\"\n >\n <MenuItem value=\"\">\n <Typography variant=\"body2\">\n {translate(\"Select\")}\n </Typography>\n </MenuItem>\n\n <MenuItem value=\"IMMEDIATELY\">\n <Typography variant=\"body2\">\n {translate(\"Immediately\")}\n </Typography>\n </MenuItem>\n <MenuItem value=\"AFTER\">\n <Typography variant=\"body2\">\n {translate(\"After\")}\n </Typography>\n </MenuItem>\n </Select>\n )}\n />\n {errors?.trigerWhen && (\n <p\n className=\"error-helper\"\n data-testid=\"custom-error-message\"\n >\n {errors?.trigerWhen?.message}\n </p>\n )}\n </Box>\n </FormControl>\n {trigerWhen === \"AFTER\" && (\n <>\n <Grid item size={{ xs: 12 }}>\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-dayField\"\n >\n <Typography variant=\"body2\">\n {translate(\"Day\")}\n </Typography>\n <Box className=\" w-full\">\n <CustomTextField\n control={control}\n id=\"day\"\n name=\"day\"\n errors={errors}\n label=\"\"\n type=\"number\"\n size=\"small\"\n dataTestId=\"othertypeeventconfigmodal-type-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n <Grid item size={{ xs: 12 }}>\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-hourField\"\n >\n <Typography variant=\"body2\">\n {translate(\"Hour\")}\n </Typography>\n <Box className=\" w-full\">\n <CustomTextField\n control={control}\n id=\"hour\"\n name=\"hour\"\n errors={errors}\n label=\"\"\n type=\"number\"\n size=\"small\"\n dataTestId=\"othertypeeventconfigmodal-type-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n <Grid item size={{ xs: 12 }}>\n <FormControl\n variant=\"outlined\"\n className=\" w-full\"\n data-testid=\"othertypeeventconfigmodal-minuteField\"\n >\n <Typography variant=\"body2\">\n {translate(\"Minute\")}\n </Typography>\n <Box className=\" w-full\">\n <CustomTextField\n control={control}\n id=\"minute\"\n name=\"minute\"\n type=\"number\"\n errors={errors}\n label=\"\"\n size=\"small\"\n dataTestId=\"othertypeeventconfigmodal-type-textfield\"\n />\n </Box>\n </FormControl>\n </Grid>\n </>\n )}\n </Grid>\n </Grid>\n )}\n </Grid>\n </Grid>\n\n <Stack\n direction=\"row\"\n className=\"mr-5\"\n spacing={2}\n justifyContent=\"flex-end\"\n mt={1}\n mb={1}\n >\n <Button\n variant=\"contained\"\n size=\"small\"\n color=\"secondary\"\n onClick={() => {\n close();\n reset();\n }}\n data-testid=\"othertypeeventconfigmodal-cancel-button\"\n >\n <Typography variant=\"body2\">{translate(\"Cancel\")}</Typography>\n </Button>\n <Button\n size=\"small\"\n type=\"submit\"\n variant=\"contained\"\n color=\"primary\"\n data-testid=\"othertypeeventconfigmodal-submit-button\"\n >\n {translate(\"Submit\")}\n </Button>\n </Stack>\n </form>\n </Grid>\n </Modal>\n );\n};\n\nOtherTypeEventConfigModal.propTypes = {\n open: PropTypes.any,\n handleClose: PropTypes.any,\n handleClick: PropTypes.any,\n type: PropTypes.any,\n};\n\nexport default OtherTypeEventConfigModal;\n"],"names":["createDefer","deferred","resolve","once","fn","lastResult","args","HEX_NUMBERS","_","index","uid","r1","r2","r3","r4","isSemanticVersion","version","destructureSemanticVersion","major","minor","patch","isCKTestingVersion","testVersion","isCKVersion","appendExtraPluginsToEditorConfig","config","plugins","extraPlugins","item","getLicenseVersionFromEditorVersion","getCKBaseBundleInstallationInfo","CKEDITOR_VERSION","CKEDITOR","getSupportedLicenseVersionInstallationInfo","installationInfo","isCKEditorFreeLicense","licenseKey","licenseVersion","createIntegrationUsageDataPlugin","integrationName","usageData","editor","source","setUsageData","__defProp","__defNormalProp","obj","key","value","__publicField","_LifeCycleElementSemaphore","element","lifecycle","_releaseLock","_state","_element","_lifecycle","error","callback","_value","_afterMountCallbacks","_semaphores","prevElementSemaphore","releaseLock","newElementSemaphore","mountResult","LifeCycleElementSemaphore","ReactContextMetadataKey","withCKEditorReactContextMetadata","metadata","ContextWatchdogContext","React","isContextWatchdogValue","isContextWatchdogValueWithStatus","status","isContextWatchdogInitializing","isContextWatchdogReadyToUse","ReactIntegrationUsageDataPlugin","appendAllIntegrationPluginsToConfig","editorConfig","REACT_INTEGRATION_READ_ONLY_LOCK_ID$1","CKEditor","props","editorSemaphore","_semaphoreValue","nextProps","instance","onReady","onAfterDestroy","watchdog","EditorWatchdogAdapter","totalRestartsRef","el","_a","causesRestart","contextItemMetadata","modelDocument","viewDocument","event","initializeResult","reject","e","prevProps","contextWatchdog","creator","sourceElementOrData","_2","itemId","mergeRefs","refs","ref","EditorEditable","memo","forwardRef","id","semaphore","rootName","innerRef","useRef","useEffect","editable","ui","model","root","EditorToolbarWrapper","toolbarRef","toolbarContainer","OtherTypeEventConfigModal","open","handleClose","handleClick","type","theme","useTheme","isDark","formRef","submitRef","trackEvent","useTrackEvent","queryMasters","setQueryMasters","useState","systemFunctions","setSystemFunctions","kafkaConfigs","setKafkaConfigs","translate","useTranslateProvider","notificationTypeList","setnotificationTypeList","validationSchema","Yup","notificationTypeId","control","handleSubmit","reset","setValue","unregister","getValues","watch","errors","useForm","yupResolver","loadInitialState","smsConfigJson","keys","pushNotificationConfigJson","_b","kafkaConfigJson","_c","queryMasterParamJson","queryCode","systemFunctionId","functionParams","trigerWhen","kafkaParameterJson","formType","setImplicitParameters","data","param","queryMasterParamJsonObj","queryMaster","master","params","setFunctionParams","functionParams1","systemFunction","func","onNotificationTypeChange","notificationType","handleChange","field","newConfigs","updateKafkaParameters","selectedFormType","currentParams","selectedConfig","paramTypes","res","retrieveAllConfigured","execute","getNotificationTypeList","showToast","close","onSubmit","jsx","Modal","jsxs","Grid","Typography","IconButton","FontAwesomeIcon","faXmark","Box","FormControl","Controller","Select","MenuItem","CustomTextArea","CustomTextField","FormControlLabel","Checkbox","Editor","TextField","Fragment","Stack","Button","PropTypes"],"mappings":"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","x_google_ignoreList":[0,1]}
|