@kosdev-code/kos-ui-plugin 2.0.40 → 2.0.41
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/dev.cjs +1 -1
- package/dev.cjs.map +1 -1
- package/dev.js +1 -1
- package/dev.js.map +1 -1
- package/emotion-react-jsx-runtime.browser.esm-0ViwU5Kh.cjs +17 -0
- package/emotion-react-jsx-runtime.browser.esm-0ViwU5Kh.cjs.map +1 -0
- package/emotion-react-jsx-runtime.browser.esm-70CdOW1e.js +1065 -0
- package/emotion-react-jsx-runtime.browser.esm-70CdOW1e.js.map +1 -0
- package/index.cjs +1 -1
- package/index.cjs.map +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/package.json +2 -2
- package/resolve-best-extension-CqHaJSdN.js.map +1 -1
- package/resolve-best-extension-DSdPcuL3.cjs.map +1 -1
- package/utils.cjs.map +1 -1
- package/utils.js.map +1 -1
- package/webpack.cjs +11 -11
- package/webpack.cjs.map +1 -1
- package/webpack.js +338 -385
- package/webpack.js.map +1 -1
- package/emotion-react-jsx-runtime.browser.esm-UFFvJLiS.cjs +0 -27
- package/emotion-react-jsx-runtime.browser.esm-UFFvJLiS.cjs.map +0 -1
- package/emotion-react-jsx-runtime.browser.esm-by8ODyOQ.js +0 -1161
- package/emotion-react-jsx-runtime.browser.esm-by8ODyOQ.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-best-extension-CqHaJSdN.js","sources":["../../../../node_modules/@nx/react/mf/dynamic-federation.js","../../../../node_modules/@nx/react/mf/index.js","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/plugin-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/control-pour-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/cui-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/dashboard-detail-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/dashboard-pump-detail-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/dashboard-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/dashboard-summary-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/nav-view-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/plugin-extension-registry.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/settings-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/setup-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/state-action-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/util-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/plugin-extension-registry-init.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/initialize-plugins.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/contribution-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/plugin-extension-manager.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/resolve-best-extension.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadRemoteModule = exports.setRemoteDefinitions = exports.setRemoteUrlResolver = void 0;\nlet remoteUrlDefinitions;\nlet resolveRemoteUrl;\nconst remoteModuleMap = new Map();\nconst remoteContainerMap = new Map();\nlet initialSharingScopeCreated = false;\nfunction setRemoteUrlResolver(_resolveRemoteUrl) {\n resolveRemoteUrl = _resolveRemoteUrl;\n}\nexports.setRemoteUrlResolver = setRemoteUrlResolver;\nfunction setRemoteDefinitions(definitions) {\n remoteUrlDefinitions = definitions;\n}\nexports.setRemoteDefinitions = setRemoteDefinitions;\nasync function loadRemoteModule(remoteName, moduleName) {\n const remoteModuleKey = `${remoteName}:${moduleName}`;\n if (remoteModuleMap.has(remoteModuleKey)) {\n return remoteModuleMap.get(remoteModuleKey);\n }\n const container = remoteContainerMap.has(remoteName)\n ? remoteContainerMap.get(remoteName)\n : await loadRemoteContainer(remoteName);\n const factory = await container.get(moduleName);\n const Module = factory();\n remoteModuleMap.set(remoteModuleKey, Module);\n return Module;\n}\nexports.loadRemoteModule = loadRemoteModule;\nconst fetchRemoteModule = (url, remoteName) => {\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = url;\n script.type = 'text/javascript';\n script.async = true;\n script.onload = () => {\n const proxy = {\n get: (request) => window[remoteName].get(request),\n init: (arg) => {\n try {\n window[remoteName].init(arg);\n }\n catch (e) {\n console.error(`Failed to initialize remote ${remoteName}`, e);\n reject(e);\n }\n },\n };\n resolve(proxy);\n };\n script.onerror = () => reject(new Error(`Remote ${remoteName} not found`));\n document.head.appendChild(script);\n });\n};\nasync function loadRemoteContainer(remoteName) {\n if (!resolveRemoteUrl && !remoteUrlDefinitions) {\n throw new Error('Call setRemoteDefinitions or setRemoteUrlResolver to allow Dynamic Federation to find the remote apps correctly.');\n }\n if (!initialSharingScopeCreated) {\n initialSharingScopeCreated = true;\n await __webpack_init_sharing__('default');\n }\n const remoteUrl = remoteUrlDefinitions\n ? remoteUrlDefinitions[remoteName]\n : await resolveRemoteUrl(remoteName);\n let containerUrl = remoteUrl;\n if (!remoteUrl.endsWith('.mjs') && !remoteUrl.endsWith('.js')) {\n containerUrl = `${remoteUrl}${remoteUrl.endsWith('/') ? '' : '/'}remoteEntry.js`;\n }\n const container = await fetchRemoteModule(containerUrl, remoteName);\n await container.init(__webpack_share_scopes__.default);\n remoteContainerMap.set(remoteName, container);\n return container;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setRemoteUrlResolver = exports.setRemoteDefinitions = exports.loadRemoteModule = void 0;\nvar dynamic_federation_1 = require(\"./dynamic-federation\");\nObject.defineProperty(exports, \"loadRemoteModule\", { enumerable: true, get: function () { return dynamic_federation_1.loadRemoteModule; } });\nObject.defineProperty(exports, \"setRemoteDefinitions\", { enumerable: true, get: function () { return dynamic_federation_1.setRemoteDefinitions; } });\nObject.defineProperty(exports, \"setRemoteUrlResolver\", { enumerable: true, get: function () { return dynamic_federation_1.setRemoteUrlResolver; } });\n","import type {\n BaseViewPluginExtension,\n PluginExtensionsType,\n ProcessedContributions,\n} from \"../../types/plugins\";\n\nexport const EXTENSION_POINT_SETUP_DEF = \"ddk.setup\";\nexport const EXTENSION_POINT_SETUP_VIEW = \"ddk.setup.view\";\nexport const EXTENSION_POINT_SETUP = \"ddk.ncui.setup.config\";\n\ninterface PluginReducer {\n contributionKey: string;\n basePluginType: string;\n keys: {\n EXTENSION_POINT_DEF?: string;\n EXTENSION_POINT_VIEW?: string;\n EXTENSION_POINT: string;\n };\n}\nexport const pluginReducer =\n ({\n contributionKey,\n basePluginType,\n keys: { EXTENSION_POINT, EXTENSION_POINT_DEF, EXTENSION_POINT_VIEW },\n }: PluginReducer) =>\n (\n experiences: ProcessedContributions[\"experiences\"],\n contributions: ProcessedContributions\n ) =>\n (acc: PluginExtensionsType, key: string) => {\n const id = key;\n const definitions = contributions[contributionKey];\n const def = definitions[key];\n const view = experiences[def.experienceId] || {};\n\n if (EXTENSION_POINT_DEF) {\n acc[EXTENSION_POINT_DEF] = acc[EXTENSION_POINT_DEF] || {};\n acc[EXTENSION_POINT_DEF][id] = {\n id,\n type: `${basePluginType}.definition`,\n data: def,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n const viewId = view.id;\n if (viewId && EXTENSION_POINT_VIEW) {\n acc[EXTENSION_POINT_VIEW] = acc[EXTENSION_POINT_VIEW] || {};\n acc[EXTENSION_POINT_VIEW][id] = {\n id,\n type: `${basePluginType}.view`,\n data: view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n acc[EXTENSION_POINT] = acc[EXTENSION_POINT] || {};\n const contribution: BaseViewPluginExtension = {\n id,\n type: `${basePluginType}`,\n data: def,\n view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n acc[EXTENSION_POINT][id] = contribution;\n return acc;\n };\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_CONTROL_POUR_DEF = \"cui.control.pour\";\nexport const EXTENSION_POINT_CONTROL_POUR_VIEW = \"cui.control.pour.view\";\nexport const EXTENSION_POINT_CONTROL_POUR = \"cui.control.pour.config\";\n\nexport const controlPourReducer = pluginReducer({\n basePluginType: \"control.pour\",\n contributionKey: \"controlPourDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_CONTROL_POUR,\n EXTENSION_POINT_DEF: EXTENSION_POINT_CONTROL_POUR_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_CONTROL_POUR_VIEW,\n },\n});\n","import type {\n CuiContribution,\n PluginExtensionsType,\n ProcessedContributions,\n} from \"../../types/plugins\";\n\nexport const EXTENSION_POINT_CUI_DEF = \"ddk.cui\";\nexport const EXTENSION_POINT_CUI_VIEW = \"ddk.cui.view\";\nexport const EXTENSION_POINT_CUI = \"ddk.cui.settings.config\";\nexport const cuiReducer =\n (\n experiences: ProcessedContributions[\"experiences\"],\n cuiDefinitions: ProcessedContributions[\"cuiDefinitions\"]\n ) =>\n (acc: PluginExtensionsType, key: string) => {\n const id = key;\n const def = cuiDefinitions[key];\n const view = experiences[def.experienceId] || {};\n acc[EXTENSION_POINT_CUI_DEF] = acc[EXTENSION_POINT_CUI_DEF] || {};\n acc[EXTENSION_POINT_CUI_DEF][id] = {\n id,\n type: \"cui.definition\",\n data: def,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n\n const viewId = view.id;\n if (viewId) {\n acc[EXTENSION_POINT_CUI_VIEW] = acc[EXTENSION_POINT_CUI_VIEW] || {};\n acc[EXTENSION_POINT_CUI_VIEW][id] = {\n id,\n type: \"cui.view\",\n data: view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n acc[EXTENSION_POINT_CUI] = acc[EXTENSION_POINT_CUI] || {};\n const cuiContribution: CuiContribution = {\n id,\n type: \"cui\",\n data: def,\n view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n acc[EXTENSION_POINT_CUI][id] = cuiContribution;\n return acc;\n };\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_DASHBOARD_DETAIL_DEF = \"ddk.dashboard.detail\";\nexport const EXTENSION_POINT_DASHBOARD_DETAIL_VIEW =\n \"ddk.dashboard.detail.view\";\nexport const EXTENSION_POINT_DASHBOARD_DETAIL =\n \"ddk.ncui.dashboard.detail.config\";\nexport const dashboardDetailReducer = pluginReducer({\n basePluginType: \"dashboard.detail\",\n contributionKey: \"dashboardDetailDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_DASHBOARD_DETAIL,\n EXTENSION_POINT_DEF: EXTENSION_POINT_DASHBOARD_DETAIL_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_DASHBOARD_DETAIL_VIEW,\n },\n});\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_DEF =\n \"ddk.dashboard.pump.detail\";\nexport const EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_VIEW =\n \"ddk.dashboard.pump.detail.view\";\nexport const EXTENSION_POINT_DASHBOARD_PUMP_DETAIL =\n \"ddk.dashboard.pump.detail.config\";\n\nexport const dashboardPumpDetailReducer = pluginReducer({\n basePluginType: \"dashboard.pump.detail\",\n contributionKey: \"dashboardPumpDetailDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_DASHBOARD_PUMP_DETAIL,\n EXTENSION_POINT_DEF: EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_VIEW,\n },\n});\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_DASHBOARD = \"ddk.ncui.dashboard.config\";\nexport const dashboardReducer = pluginReducer({\n basePluginType: \"dashboard\",\n contributionKey: \"dashboardDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_DASHBOARD,\n },\n});\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_DASHBOARD_SUMMARY_DEF = \"ddk.dashboard.summary\";\nexport const EXTENSION_POINT_DASHBOARD_SUMMARY_VIEW =\n \"ddk.dashboard.summary.view\";\nexport const EXTENSION_POINT_DASHBOARD_SUMMARY =\n \"ddk.ncui.dashboard.summary.config\";\nexport const dashboardSummaryReducer = pluginReducer({\n basePluginType: \"dashboard.summary\",\n contributionKey: \"dashboardSummaryDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_DASHBOARD_SUMMARY,\n EXTENSION_POINT_DEF: EXTENSION_POINT_DASHBOARD_SUMMARY_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_DASHBOARD_SUMMARY_VIEW,\n },\n});\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_NAV_VIEW_DEF = \"ddk.nav.view\";\nexport const EXTENSION_POINT_NAV_VIEW_VIEW = \"ddk.nav.view.view\";\nexport const EXTENSION_POINT_NAV_VIEW = \"ddk.ncui.nav.view.config\";\n\nexport const navViewReducer = pluginReducer({\n basePluginType: \"nav.view\",\n contributionKey: \"navViewDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_NAV_VIEW,\n EXTENSION_POINT_DEF: EXTENSION_POINT_NAV_VIEW_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_NAV_VIEW_VIEW,\n },\n});\n","// plugin-extension-registry.ts\n\nimport type {\n PluginExtensionsType,\n ProcessedContributions,\n} from \"../../types/plugins\";\n\nexport type ExtensionReducer = (\n extensions: PluginExtensionsType,\n contributions: ProcessedContributions,\n experiences: any\n) => PluginExtensionsType;\n\nconst extensionPointRegistry: ExtensionReducer[] = [];\n\nexport function registerExtensionReducer(reducer: ExtensionReducer) {\n extensionPointRegistry.push(reducer);\n}\n\nexport function applyExtensionReducers(\n base: PluginExtensionsType,\n contributions: ProcessedContributions,\n experiences: any\n): PluginExtensionsType {\n return extensionPointRegistry.reduce(\n (acc, reducer) => reducer(acc, contributions, experiences),\n base\n );\n}\n","import type {\n PluginExtensionsType,\n ProcessedContributions,\n SettingsContribution,\n} from \"../../types/plugins\";\n\nexport const EXTENSION_POINT_SETTINGS_DEF = \"ddk.settings\";\nexport const EXTENSION_POINT_SETTINGS_VIEW = \"ddk.settings.view\";\nexport const EXTENSION_POINT_SETTINGS_GROUP_DEF = \"ddk.settings.group\";\nexport const EXTENSION_POINT_SETTINGS = \"ddk.ncui.settings.config\";\n\nexport const settingsReducer =\n (\n experiences: ProcessedContributions[\"experiences\"],\n settingDefinition: ProcessedContributions[\"settingsDefinitions\"],\n settingsGroupDefinition: ProcessedContributions[\"settingsGroupDefinitions\"]\n ) =>\n (acc: PluginExtensionsType, group: string) => {\n const groupDef = settingsGroupDefinition[group];\n acc[EXTENSION_POINT_SETTINGS_GROUP_DEF] =\n acc[EXTENSION_POINT_SETTINGS_GROUP_DEF] || {};\n acc[EXTENSION_POINT_SETTINGS_GROUP_DEF][group] = {\n id: group,\n type: \"settings.group\",\n data: settingsGroupDefinition[group],\n remote: groupDef.remote,\n sectionId: groupDef.sectionId,\n };\n\n const defKeys = Object.entries(settingDefinition)\n .filter(([, def]) => def.settingsGroup === group)\n .map(([defKey]) => defKey);\n\n defKeys.forEach((key) => {\n const id = key;\n\n const def = settingDefinition[key];\n const view = experiences[def.experienceId] || {};\n acc[EXTENSION_POINT_SETTINGS_GROUP_DEF][group].data.settings = [\n ...acc[EXTENSION_POINT_SETTINGS_GROUP_DEF][group].data.settings,\n id,\n ];\n acc[EXTENSION_POINT_SETTINGS_DEF] =\n acc[EXTENSION_POINT_SETTINGS_DEF] || {};\n acc[EXTENSION_POINT_SETTINGS_DEF][id] = {\n id,\n type: \"settings.definition\",\n data: def,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n\n const viewId = view.id;\n if (viewId) {\n acc[EXTENSION_POINT_SETTINGS_VIEW] =\n acc[EXTENSION_POINT_SETTINGS_VIEW] || {};\n acc[EXTENSION_POINT_SETTINGS_VIEW][id] = {\n id,\n type: \"settings.view\",\n data: view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n acc[EXTENSION_POINT_SETTINGS] = acc[EXTENSION_POINT_SETTINGS] || {};\n const settginsContribution: SettingsContribution = {\n id,\n type: \"settings\",\n data: def,\n view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n acc[EXTENSION_POINT_SETTINGS][id] = settginsContribution;\n });\n\n return acc;\n };\n","import type {\n PluginExtensionsType,\n ProcessedContributions,\n SetupContribution,\n} from \"../../types/plugins\";\n\nexport const EXTENSION_POINT_SETUP_DEF = \"ddk.setup\";\nexport const EXTENSION_POINT_SETUP_VIEW = \"ddk.setup.view\";\nexport const EXTENSION_POINT_SETUP = \"ddk.ncui.setup.config\";\n\nexport const setupReducer =\n (\n experiences: ProcessedContributions[\"experiences\"],\n setupDefinitions: ProcessedContributions[\"setupDefinitions\"]\n ) =>\n (acc: PluginExtensionsType, key: string) => {\n const id = key;\n const def = setupDefinitions[key];\n const view = experiences[def.experienceId] || {};\n acc[EXTENSION_POINT_SETUP_DEF] = acc[EXTENSION_POINT_SETUP_DEF] || {};\n acc[EXTENSION_POINT_SETUP_DEF][id] = {\n id,\n type: \"setup.definition\",\n data: def,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n\n const viewId = view.id;\n if (viewId) {\n acc[EXTENSION_POINT_SETUP_VIEW] = acc[EXTENSION_POINT_SETUP_VIEW] || {};\n acc[EXTENSION_POINT_SETUP_VIEW][id] = {\n id,\n type: \"setup.view\",\n data: view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n acc[EXTENSION_POINT_SETUP] = acc[EXTENSION_POINT_SETUP] || {};\n const setupContribution: SetupContribution = {\n id,\n type: \"setup\",\n data: def,\n view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n acc[EXTENSION_POINT_SETUP][id] = setupContribution;\n return acc;\n };\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_TROUBLE_ACTION_DEF = \"ddk.trouble.action\";\nexport const EXTENSION_POINT_TROUBLE_ACTION_VIEW = \"ddk.trouble.action.view\";\nexport const EXTENSION_POINT_TROUBLE_ACTION = \"ddk.ncui.trouble.action.config\";\n\nexport const troubleActionReducer = pluginReducer({\n basePluginType: \"trouble.action\",\n contributionKey: \"troubleActionDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_TROUBLE_ACTION,\n EXTENSION_POINT_DEF: EXTENSION_POINT_TROUBLE_ACTION_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_TROUBLE_ACTION_VIEW,\n },\n});\n","import type {\n PluginExtensionsType,\n ProcessedContributions,\n UtilContribution,\n} from \"../../types/plugins\";\n\nexport const EXTENSION_POINT_UTIL_DEF = \"ddk.utilities\";\nexport const EXTENSION_POINT_UTIL_VIEW = \"ddk.utilities.view\";\nexport const EXTENSION_POINT_UTIL = \"ddk.ncui.utils.config\";\nexport const utilReducer =\n (\n experiences: ProcessedContributions[\"experiences\"],\n utilDefinitions: ProcessedContributions[\"utilDefinitions\"]\n ) =>\n (acc: PluginExtensionsType, key: string) => {\n const id = key;\n const def = utilDefinitions[key];\n const view = experiences[def.experienceId] || {};\n acc[EXTENSION_POINT_UTIL_DEF] = acc[EXTENSION_POINT_UTIL_DEF] || {};\n acc[EXTENSION_POINT_UTIL_DEF][id] = {\n id,\n type: \"utility.definition\",\n data: def,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n\n const viewId = view.id;\n if (viewId) {\n acc[EXTENSION_POINT_UTIL_VIEW] = acc[EXTENSION_POINT_UTIL_VIEW] || {};\n acc[EXTENSION_POINT_UTIL_VIEW][id] = {\n id,\n type: \"utilities.view\",\n data: view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n acc[EXTENSION_POINT_UTIL] = acc[EXTENSION_POINT_UTIL] || {};\n const utilContribution: UtilContribution = {\n id,\n type: \"utility\",\n data: def,\n view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n acc[EXTENSION_POINT_UTIL][id] = utilContribution;\n\n return acc;\n };\n","// plugin-extension-registry-init.ts\nimport { controlPourReducer } from \"./control-pour-reducer\";\nimport { cuiReducer } from \"./cui-reducer\";\nimport { dashboardDetailReducer } from \"./dashboard-detail-reducer\";\nimport { dashboardPumpDetailReducer } from \"./dashboard-pump-detail-reducer\";\nimport { dashboardReducer } from \"./dashboard-reducer\";\nimport { dashboardSummaryReducer } from \"./dashboard-summary-reducer\";\nimport { navViewReducer } from \"./nav-view-reducer\";\nimport { registerExtensionReducer } from \"./plugin-extension-registry\";\nimport { settingsReducer } from \"./settings-reducer\";\nimport { setupReducer } from \"./setup-reducer\";\nimport { troubleActionReducer } from \"./state-action-reducer\";\nimport { utilReducer } from \"./util-reducer\";\n\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.cuiDefinitions).reduce(cuiReducer(e, c.cuiDefinitions), acc)\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.utilDefinitions).reduce(utilReducer(e, c.utilDefinitions), acc)\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.setupDefinitions).reduce(\n setupReducer(e, c.setupDefinitions),\n acc\n )\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.troubleActionDefinitions).reduce(\n troubleActionReducer(e, c),\n acc\n )\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.navViewDefinitions).reduce(navViewReducer(e, c), acc)\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.dashboardSummaryDefinitions).reduce(\n dashboardSummaryReducer(e, c),\n acc\n )\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.dashboardDetailDefinitions).reduce(\n dashboardDetailReducer(e, c),\n acc\n )\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.dashboardPumpDetailDefinitions).reduce(\n dashboardPumpDetailReducer(e, c),\n acc\n )\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.dashboardDefinitions).reduce(dashboardReducer(e, c), acc)\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.settingsGroupDefinitions).reduce(\n settingsReducer(e, c.settingsDefinitions, c.settingsGroupDefinitions),\n acc\n )\n);\n\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.controlPourDefinitions).reduce(controlPourReducer(e, c), acc)\n);\n","import { setRemoteDefinitions } from \"@nx/react/mf\";\nimport type { Contributions, DynamicRemotes } from \"../../types/global\";\nimport type {\n PluginExtension,\n PluginExtensionsType,\n} from \"../../types/plugins\";\nimport \"./plugin-extension-registry-init\";\n\ndeclare interface KosPluginsType {\n __dynamicRemotes: DynamicRemotes;\n __extensions?: PluginExtensionsType;\n extensions?: Record<string, PluginExtension[]>;\n}\ndeclare global {\n interface Window {\n KosPlugins: KosPluginsType;\n }\n}\n\nexport interface Extensions {\n extensionPointId: string;\n id: string;\n component: string;\n}\n\nexport interface Descriptor {\n id: string;\n baseUrl: string;\n descriptor: {\n id: string;\n extensions: Extensions[];\n contributes: Contributions;\n };\n}\n\ninterface KosPluginsProps {\n pluginBaseUrl?: string;\n pluginApiPath?: string;\n pluginContext?: {\n context: string;\n group: string;\n };\n overrides?: Record<string, string>;\n}\n\n/**\n * Parses the query string from the URL or a provided string and returns an object\n * representing the key-value pairs in the query string.\n *\n * @param query - An optional query string to parse. If not provided, the function\n * will use the current window's `location.search` string.\n * The query string should not include the leading \"?\" character.\n *\n * @returns An object where each key is a parameter name from the query string,\n * and each value is the corresponding decoded parameter value.\n *\n * @example\n * // Assuming the URL is: https://example.com/?name=John&age=30\n * getQueryParams();\n * // Returns: { name: \"John\", age: \"30\" }\n *\n * @example\n * getQueryParams(\"foo=bar&baz=qux\");\n * // Returns: { foo: \"bar\", baz: \"qux\" }\n */\nexport const getQueryParams = (query = null) =>\n (query || window.location.search.replace(\"?\", \"\"))\n\n // get array of KeyValue pairs\n .split(\"&\")\n\n // Decode values\n .map((pair) => {\n const [key, val] = pair.split(\"=\");\n\n return [key, decodeURIComponent(val || \"\")];\n })\n\n // array to object\n .reduce((result, [key, val]) => {\n result[key] = val;\n return result;\n }, {});\n\nconst getDefaultHost = () => {\n const defaultHost = window.location.origin;\n const params = getQueryParams();\n const hostUrl = (params as any)?.host;\n const result = hostUrl || defaultHost;\n return result;\n};\n// eslint-disable-next-line no-restricted-globals\n\n/**\n * Initializes KOS plugins by fetching plugin metadata and configuring dynamic remotes.\n *\n * @param props - Optional properties to configure the plugin initialization.\n * @param props.pluginBaseUrl - The base URL for the plugins. Defaults to the result of `getDefaultHost()`.\n * @param props.pluginApiPath - The API path to fetch plugin metadata. Defaults to `\"/api/app/kosdev.ddk/ncui/plugins\"`.\n * @param props.overrides - An object containing overrides for plugin base URLs, keyed by plugin ID.\n * @param props.pluginContext - An optional context object that specifies the plugin context and group.\n * If provided, the function will fetch plugins from the UI plugins endpoint. Otherwise,\n * it will fetch from the DDK pluging endpoint.\n *\n * @returns A promise that resolves to a record of remote definitions, where the keys are remote IDs\n * and the values are the corresponding base paths for the remote entries.\n *\n * @remarks\n * - This function fetches plugin metadata from the specified API endpoint and processes the data\n * to configure dynamic remotes for the KOS plugin system.\n * - If a plugin does not have a descriptor, an error is logged to the console.\n * - The remote definitions are also set using the `setRemoteDefinitions` function.\n *\n * @throws Will throw an error if the fetch request fails or if the response cannot be parsed as JSON.\n */\nexport const initializeKosPlugins = async (props?: KosPluginsProps) => {\n const defaultHost = getDefaultHost();\n const data = props ?? {};\n const {\n pluginBaseUrl = defaultHost,\n pluginApiPath = \"/api/app/kosdev.ddk/ncui/plugins\",\n overrides = {},\n pluginContext,\n } = data;\n\n const useUiPlugins = !!pluginContext;\n\n const url = useUiPlugins\n ? `${pluginBaseUrl}/api/kos/ui/plugins/context/${pluginContext.context}`\n : `${pluginBaseUrl}${pluginApiPath}`;\n\n console.log(\n `initialize-plugins: Using Plugin Framework: ${useUiPlugins}: Fetching plugins from ${url}`\n );\n const plugins = await fetch(url);\n const remotes = await plugins.json();\n\n const pluginData = useUiPlugins\n ? remotes.data?.groups?.[pluginContext.group] ?? []\n : remotes.data ?? [];\n\n const allRemotes = pluginData?.reduce((acc, item) => {\n const baseUrl =\n overrides?.[item.id] ?? useUiPlugins\n ? `${pluginBaseUrl}${item.path}`\n : `${pluginBaseUrl}${item.baseUrl}`;\n if (item.descriptor) {\n acc[item.id] = {\n basePath: `${baseUrl}remoteEntry.js`,\n extensions: item.descriptor.extensions,\n contributes: item.descriptor.contributes,\n remote: item.descriptor.id,\n init: !!item.descriptor.init,\n };\n } else {\n console.error(\n `initialize-plugins: Plugin ${item.id} does not have a descriptor`\n );\n }\n return acc;\n }, {} as DynamicRemotes);\n window.KosPlugins = window.KosPlugins || {};\n window.KosPlugins.__dynamicRemotes = allRemotes;\n const definitions = Object.keys(allRemotes).reduce((acc, item) => {\n const remote = allRemotes[item].remote;\n acc[remote] = allRemotes[item].basePath;\n return acc;\n }, {} as Record<string, string>);\n setRemoteDefinitions(definitions);\n return definitions;\n};\n","import type { DynamicRemotes } from \"../../types/global\";\nimport type { ProcessedContributions } from \"../../types/plugins\";\n\nexport const contributionReducer =\n (remotes: DynamicRemotes) => (acc: ProcessedContributions, key: string) => {\n acc.cuiDefinitions = acc.cuiDefinitions || {};\n\n const remote = remotes[key].remote;\n const sectionId = key;\n const cuiConfigurations = remotes[key].contributes?.cui || [];\n cuiConfigurations.forEach((cuiConfiguration) => {\n acc.cuiDefinitions[cuiConfiguration.id] = {\n ...cuiConfiguration,\n cuiDescriptor: sectionId,\n remote,\n sectionId,\n };\n });\n\n const navViewConfigurations = remotes[key].contributes?.navViews || [];\n navViewConfigurations.forEach((configuration) => {\n acc.navViewDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n const utilConfigurations = remotes[key].contributes?.utilities || [];\n utilConfigurations.forEach((configuration) => {\n acc.utilDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const setupConfigurations = remotes[key].contributes?.setupStep || [];\n setupConfigurations.forEach((configuration) => {\n acc.setupDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const troubleActionConfigurations =\n remotes[key].contributes?.troubleActions || [];\n troubleActionConfigurations.forEach((configuration) => {\n acc.troubleActionDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const controlPourConfigurations =\n remotes[key].contributes?.controlPour || [];\n controlPourConfigurations.forEach((configuration) => {\n acc.controlPourDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const settingsGroupConfigurations =\n remotes[key].contributes?.settingsGroup || [];\n settingsGroupConfigurations.forEach((configuration) => {\n acc.settingsGroupDefinitions[configuration.id] = {\n ...configuration,\n settings: [],\n remote,\n sectionId,\n };\n });\n\n const settingsConfigurations = remotes[key].contributes?.settings || [];\n settingsConfigurations.forEach((configuration) => {\n acc.settingsDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const dashboardSummaryConfigurations =\n remotes[key].contributes?.dashboardSummary || [];\n dashboardSummaryConfigurations.forEach((configuration) => {\n acc.dashboardDefinitions[configuration.dashboardKey] =\n acc.dashboardDefinitions[configuration.dashboardKey] || {};\n acc.dashboardDefinitions[configuration.dashboardKey].summary = {\n ...configuration,\n remote,\n sectionId,\n };\n acc.dashboardSummaryDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const dashboardDetailConfigurations =\n remotes[key].contributes?.dashboardDetail || [];\n dashboardDetailConfigurations.forEach((configuration) => {\n acc.dashboardDefinitions[configuration.dashboardKey] =\n acc.dashboardDefinitions[configuration.dashboardKey] || {};\n acc.dashboardDefinitions[configuration.dashboardKey].detail = {\n ...configuration,\n remote,\n sectionId,\n };\n acc.dashboardDetailDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const dashboardDetailPumpConfigurations =\n remotes[key].contributes?.dashboardPumpDetail || [];\n dashboardDetailPumpConfigurations.forEach((configuration) => {\n acc.dashboardDefinitions[configuration.dashboardKey] =\n acc.dashboardDefinitions[configuration.dashboardKey] || {};\n acc.dashboardDefinitions[configuration.dashboardKey].pumpDetail = {\n ...configuration,\n remote,\n sectionId,\n };\n acc.dashboardPumpDetailDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const experiences = remotes[key].contributes?.experiences;\n Object.keys(experiences).forEach((key) => {\n const experience = experiences[key];\n acc.experiences[key] = {\n ...experience,\n remote,\n sectionId,\n };\n });\n\n return acc;\n };\n","// plugin-extension-manager.ts\n\nimport { loadRemoteModule } from \"@nx/react/mf\";\nimport type { DynamicRemotes } from \"../../types/global\";\nimport type {\n PluginExtension,\n PluginExtensionsType,\n ProcessedContributions,\n} from \"../../types/plugins\";\n\nimport { contributionReducer } from \"./contribution-reducer\";\nimport { applyExtensionReducers } from \"./plugin-extension-registry\";\n\ninterface PluginsType {\n remotes?: DynamicRemotes;\n extensions?: PluginExtensionsType;\n extensionPoints?: Record<string, PluginExtension[]>;\n getExtensions: (extensionPointId: string) => PluginExtension[];\n}\n\nexport async function initPluginManager(\n remotesOverride?: DynamicRemotes\n): Promise<PluginsType> {\n const remotes = remotesOverride ?? window.KosPlugins.__dynamicRemotes;\n\n if (window.KosPlugins.extensions) {\n const extensionPoints = window.KosPlugins.extensions;\n return {\n extensionPoints,\n getExtensions: (extensionPointId: string) =>\n extensionPoints[extensionPointId] || [],\n remotes,\n extensions: window.KosPlugins.__extensions,\n };\n }\n\n const extensions =\n window.KosPlugins.__extensions ?? (await loadExtensions(remotes));\n\n const extensionPoints: Record<string, PluginExtension[]> = {};\n if (extensions) {\n for (const extensionPointId of Object.keys(extensions)) {\n extensionPoints[extensionPointId] = Object.values(\n extensions[extensionPointId] || {}\n );\n }\n }\n\n window.KosPlugins.extensions = extensionPoints;\n\n const getExtensions = (extensionPointId: string) =>\n extensionPoints[extensionPointId] || [];\n\n return { extensionPoints, getExtensions, remotes, extensions };\n}\n\nconst DEFAULT_CONTRIBUTIONS: ProcessedContributions = {\n cuiDefinitions: {},\n controlPourDefinitions: {},\n utilDefinitions: {},\n setupDefinitions: {},\n settingsGroupDefinitions: {},\n settingsDefinitions: {},\n dashboardSummaryDefinitions: {},\n dashboardDetailDefinitions: {},\n dashboardPumpDetailDefinitions: {},\n dashboardDefinitions: {},\n navViewDefinitions: {},\n troubleActionDefinitions: {},\n experiences: {},\n};\n\nexport function getContributions(\n remotes?: DynamicRemotes\n): ProcessedContributions {\n if (!remotes) {\n return DEFAULT_CONTRIBUTIONS;\n }\n return Object.keys(remotes).reduce(contributionReducer(remotes), {\n ...DEFAULT_CONTRIBUTIONS,\n });\n}\n\nexport async function loadExtensions(remotes?: DynamicRemotes) {\n if (!remotes) {\n window.KosPlugins = window.KosPlugins || {};\n return {};\n }\n\n const contributions = getContributions(remotes);\n const experiences = contributions.experiences;\n\n const baseExtensions: PluginExtensionsType = {};\n const reducedExtensions = applyExtensionReducers(\n baseExtensions,\n contributions,\n experiences\n );\n\n for (const remote of Object.values(remotes)) {\n if (remote.init) {\n const InitPlugin = await loadRemoteModule(remote.remote, \"./InitPlugin\");\n if (InitPlugin.default) {\n const initPlugin = new InitPlugin.default();\n initPlugin?.register();\n }\n }\n }\n\n const descriptorBasedExtensions = Object.keys(remotes).reduce((acc, key) => {\n const descriptorViews = remotes[key].contributes?.views ?? {};\n for (const viewKey of Object.keys(descriptorViews)) {\n const viewDefs = descriptorViews[viewKey];\n acc[viewKey] = acc[viewKey] || {};\n for (const viewDef of viewDefs) {\n acc[viewKey][viewDef.id] = {\n id: viewDef.id,\n type: \"view\",\n component: viewDef.component,\n remote: remotes[key].remote,\n sectionId: key,\n data: viewDef,\n };\n }\n }\n\n const extensions = remotes[key].extensions ?? [];\n for (const ext of extensions) {\n acc[ext.extensionPointId] = acc[ext.extensionPointId] || {};\n acc[ext.extensionPointId][ext.id] = {\n id: ext.id,\n type: ext.type,\n component: ext.component,\n remote: remotes[key].remote,\n sectionId: key,\n data: ext,\n };\n }\n\n return acc;\n }, reducedExtensions);\n\n window.KosPlugins = window.KosPlugins || {};\n window.KosPlugins.__extensions = descriptorBasedExtensions;\n return descriptorBasedExtensions;\n}\n\nexport async function getExtensions(extensionPointId: string) {\n const { getExtensions } = await initPluginManager();\n return getExtensions(extensionPointId);\n}\n","import type { PluginExtension } from \"../../types/plugins\";\n\n/**\n * Resolves the best plugin extension for a given extension point.\n *\n * @param extensions A map of plugin extensions keyed by module/plugin ID\n * @param module Optional module ID to resolve\n * @param exact If true, only returns a plugin if the given `module` matches exactly. If false (default), falls back to the best-ranked plugin if no match is found.\n * @returns The resolved PluginExtension or null\n */\nexport function resolveBestExtension<T extends PluginExtension>(\n extensions: Record<string, T> | undefined,\n module?: string,\n exact = false\n): T | null {\n if (!extensions || Object.keys(extensions).length === 0) {\n return null;\n }\n\n // Exact mode: must match the module ID\n if (exact) {\n return module && extensions[module] ? extensions[module] : null;\n }\n\n // Prefer exact match if available\n if (module && extensions[module]) {\n return extensions[module];\n }\n\n // Fallback: pick the best-ranked plugin\n const sorted = Object.values(extensions)\n .filter((ext) => typeof ext.id === \"string\")\n .sort((a, b) => {\n const aRank = typeof a.rank === \"number\" ? a.rank : Infinity;\n const bRank = typeof b.rank === \"number\" ? b.rank : Infinity;\n\n if (aRank === bRank) {\n const aId = a.id ?? \"\";\n const bId = b.id ?? \"\";\n return aId.localeCompare(bId);\n }\n\n return aRank - bRank;\n });\n\n return sorted[0] ?? null;\n}\n"],"names":["dynamicFederation","remoteUrlDefinitions","resolveRemoteUrl","remoteModuleMap","remoteContainerMap","initialSharingScopeCreated","setRemoteUrlResolver","_resolveRemoteUrl","setRemoteDefinitions","definitions","loadRemoteModule","remoteName","moduleName","remoteModuleKey","Module","loadRemoteContainer","fetchRemoteModule","url","resolve","reject","script","request","arg","e","remoteUrl","containerUrl","container","exports","dynamic_federation_1","require$$0","pluginReducer","contributionKey","basePluginType","EXTENSION_POINT","EXTENSION_POINT_DEF","EXTENSION_POINT_VIEW","experiences","contributions","acc","key","id","def","view","contribution","EXTENSION_POINT_CONTROL_POUR_DEF","EXTENSION_POINT_CONTROL_POUR_VIEW","EXTENSION_POINT_CONTROL_POUR","controlPourReducer","EXTENSION_POINT_CUI_DEF","EXTENSION_POINT_CUI_VIEW","EXTENSION_POINT_CUI","cuiReducer","cuiDefinitions","cuiContribution","EXTENSION_POINT_DASHBOARD_DETAIL_DEF","EXTENSION_POINT_DASHBOARD_DETAIL_VIEW","EXTENSION_POINT_DASHBOARD_DETAIL","dashboardDetailReducer","EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_DEF","EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_VIEW","EXTENSION_POINT_DASHBOARD_PUMP_DETAIL","dashboardPumpDetailReducer","EXTENSION_POINT_DASHBOARD","dashboardReducer","EXTENSION_POINT_DASHBOARD_SUMMARY_DEF","EXTENSION_POINT_DASHBOARD_SUMMARY_VIEW","EXTENSION_POINT_DASHBOARD_SUMMARY","dashboardSummaryReducer","EXTENSION_POINT_NAV_VIEW_DEF","EXTENSION_POINT_NAV_VIEW_VIEW","EXTENSION_POINT_NAV_VIEW","navViewReducer","extensionPointRegistry","registerExtensionReducer","reducer","applyExtensionReducers","base","EXTENSION_POINT_SETTINGS_DEF","EXTENSION_POINT_SETTINGS_VIEW","EXTENSION_POINT_SETTINGS_GROUP_DEF","EXTENSION_POINT_SETTINGS","settingsReducer","settingDefinition","settingsGroupDefinition","group","groupDef","defKey","settginsContribution","EXTENSION_POINT_SETUP_DEF","EXTENSION_POINT_SETUP_VIEW","EXTENSION_POINT_SETUP","setupReducer","setupDefinitions","setupContribution","EXTENSION_POINT_TROUBLE_ACTION_DEF","EXTENSION_POINT_TROUBLE_ACTION_VIEW","EXTENSION_POINT_TROUBLE_ACTION","troubleActionReducer","EXTENSION_POINT_UTIL_DEF","EXTENSION_POINT_UTIL_VIEW","EXTENSION_POINT_UTIL","utilReducer","utilDefinitions","utilContribution","c","getQueryParams","query","pair","val","result","getDefaultHost","defaultHost","params","initializeKosPlugins","props","data","pluginBaseUrl","pluginApiPath","overrides","pluginContext","useUiPlugins","remotes","pluginData","_b","_a","allRemotes","item","baseUrl","remote","contributionReducer","sectionId","cuiConfiguration","configuration","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","experience","initPluginManager","remotesOverride","extensionPoints","extensionPointId","extensions","loadExtensions","DEFAULT_CONTRIBUTIONS","getContributions","reducedExtensions","InitPlugin","initPlugin","descriptorBasedExtensions","descriptorViews","viewKey","viewDefs","viewDef","ext","getExtensions","resolveBestExtension","module","exact","a","b","aRank","bRank","aId","bId"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
1
|
+
{"version":3,"file":"resolve-best-extension-CqHaJSdN.js","sources":["../../../../node_modules/@nx/react/mf/dynamic-federation.js","../../../../node_modules/@nx/react/mf/index.js","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/plugin-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/control-pour-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/cui-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/dashboard-detail-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/dashboard-pump-detail-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/dashboard-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/dashboard-summary-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/nav-view-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/plugin-extension-registry.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/settings-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/setup-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/state-action-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/util-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/plugin-extension-registry-init.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/initialize-plugins.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/contribution-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/plugin-extension-manager.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/resolve-best-extension.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadRemoteModule = exports.setRemoteDefinitions = exports.setRemoteUrlResolver = void 0;\nlet remoteUrlDefinitions;\nlet resolveRemoteUrl;\nconst remoteModuleMap = new Map();\nconst remoteContainerMap = new Map();\nlet initialSharingScopeCreated = false;\nfunction setRemoteUrlResolver(_resolveRemoteUrl) {\n resolveRemoteUrl = _resolveRemoteUrl;\n}\nexports.setRemoteUrlResolver = setRemoteUrlResolver;\nfunction setRemoteDefinitions(definitions) {\n remoteUrlDefinitions = definitions;\n}\nexports.setRemoteDefinitions = setRemoteDefinitions;\nasync function loadRemoteModule(remoteName, moduleName) {\n const remoteModuleKey = `${remoteName}:${moduleName}`;\n if (remoteModuleMap.has(remoteModuleKey)) {\n return remoteModuleMap.get(remoteModuleKey);\n }\n const container = remoteContainerMap.has(remoteName)\n ? remoteContainerMap.get(remoteName)\n : await loadRemoteContainer(remoteName);\n const factory = await container.get(moduleName);\n const Module = factory();\n remoteModuleMap.set(remoteModuleKey, Module);\n return Module;\n}\nexports.loadRemoteModule = loadRemoteModule;\nconst fetchRemoteModule = (url, remoteName) => {\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = url;\n script.type = 'text/javascript';\n script.async = true;\n script.onload = () => {\n const proxy = {\n get: (request) => window[remoteName].get(request),\n init: (arg) => {\n try {\n window[remoteName].init(arg);\n }\n catch (e) {\n console.error(`Failed to initialize remote ${remoteName}`, e);\n reject(e);\n }\n },\n };\n resolve(proxy);\n };\n script.onerror = () => reject(new Error(`Remote ${remoteName} not found`));\n document.head.appendChild(script);\n });\n};\nasync function loadRemoteContainer(remoteName) {\n if (!resolveRemoteUrl && !remoteUrlDefinitions) {\n throw new Error('Call setRemoteDefinitions or setRemoteUrlResolver to allow Dynamic Federation to find the remote apps correctly.');\n }\n if (!initialSharingScopeCreated) {\n initialSharingScopeCreated = true;\n await __webpack_init_sharing__('default');\n }\n const remoteUrl = remoteUrlDefinitions\n ? remoteUrlDefinitions[remoteName]\n : await resolveRemoteUrl(remoteName);\n let containerUrl = remoteUrl;\n if (!remoteUrl.endsWith('.mjs') && !remoteUrl.endsWith('.js')) {\n containerUrl = `${remoteUrl}${remoteUrl.endsWith('/') ? '' : '/'}remoteEntry.js`;\n }\n const container = await fetchRemoteModule(containerUrl, remoteName);\n await container.init(__webpack_share_scopes__.default);\n remoteContainerMap.set(remoteName, container);\n return container;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setRemoteUrlResolver = exports.setRemoteDefinitions = exports.loadRemoteModule = void 0;\nvar dynamic_federation_1 = require(\"./dynamic-federation\");\nObject.defineProperty(exports, \"loadRemoteModule\", { enumerable: true, get: function () { return dynamic_federation_1.loadRemoteModule; } });\nObject.defineProperty(exports, \"setRemoteDefinitions\", { enumerable: true, get: function () { return dynamic_federation_1.setRemoteDefinitions; } });\nObject.defineProperty(exports, \"setRemoteUrlResolver\", { enumerable: true, get: function () { return dynamic_federation_1.setRemoteUrlResolver; } });\n","import type {\n BaseViewPluginExtension,\n PluginExtensionsType,\n ProcessedContributions,\n} from \"../../types/plugins\";\n\nexport const EXTENSION_POINT_SETUP_DEF = \"ddk.setup\";\nexport const EXTENSION_POINT_SETUP_VIEW = \"ddk.setup.view\";\nexport const EXTENSION_POINT_SETUP = \"ddk.ncui.setup.config\";\n\ninterface PluginReducer {\n contributionKey: string;\n basePluginType: string;\n keys: {\n EXTENSION_POINT_DEF?: string;\n EXTENSION_POINT_VIEW?: string;\n EXTENSION_POINT: string;\n };\n}\nexport const pluginReducer =\n ({\n contributionKey,\n basePluginType,\n keys: { EXTENSION_POINT, EXTENSION_POINT_DEF, EXTENSION_POINT_VIEW },\n }: PluginReducer) =>\n (\n experiences: ProcessedContributions[\"experiences\"],\n contributions: ProcessedContributions\n ) =>\n (acc: PluginExtensionsType, key: string) => {\n const id = key;\n const definitions = contributions[contributionKey];\n const def = definitions[key];\n const view = experiences[def.experienceId] || {};\n\n if (EXTENSION_POINT_DEF) {\n acc[EXTENSION_POINT_DEF] = acc[EXTENSION_POINT_DEF] || {};\n acc[EXTENSION_POINT_DEF][id] = {\n id,\n type: `${basePluginType}.definition`,\n data: def,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n const viewId = view.id;\n if (viewId && EXTENSION_POINT_VIEW) {\n acc[EXTENSION_POINT_VIEW] = acc[EXTENSION_POINT_VIEW] || {};\n acc[EXTENSION_POINT_VIEW][id] = {\n id,\n type: `${basePluginType}.view`,\n data: view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n acc[EXTENSION_POINT] = acc[EXTENSION_POINT] || {};\n const contribution: BaseViewPluginExtension = {\n id,\n type: `${basePluginType}`,\n data: def,\n view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n acc[EXTENSION_POINT][id] = contribution;\n return acc;\n };\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_CONTROL_POUR_DEF = \"cui.control.pour\";\nexport const EXTENSION_POINT_CONTROL_POUR_VIEW = \"cui.control.pour.view\";\nexport const EXTENSION_POINT_CONTROL_POUR = \"cui.control.pour.config\";\n\nexport const controlPourReducer = pluginReducer({\n basePluginType: \"control.pour\",\n contributionKey: \"controlPourDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_CONTROL_POUR,\n EXTENSION_POINT_DEF: EXTENSION_POINT_CONTROL_POUR_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_CONTROL_POUR_VIEW,\n },\n});\n","import type {\n CuiContribution,\n PluginExtensionsType,\n ProcessedContributions,\n} from \"../../types/plugins\";\n\nexport const EXTENSION_POINT_CUI_DEF = \"ddk.cui\";\nexport const EXTENSION_POINT_CUI_VIEW = \"ddk.cui.view\";\nexport const EXTENSION_POINT_CUI = \"ddk.cui.settings.config\";\nexport const cuiReducer =\n (\n experiences: ProcessedContributions[\"experiences\"],\n cuiDefinitions: ProcessedContributions[\"cuiDefinitions\"]\n ) =>\n (acc: PluginExtensionsType, key: string) => {\n const id = key;\n const def = cuiDefinitions[key];\n const view = experiences[def.experienceId] || {};\n acc[EXTENSION_POINT_CUI_DEF] = acc[EXTENSION_POINT_CUI_DEF] || {};\n acc[EXTENSION_POINT_CUI_DEF][id] = {\n id,\n type: \"cui.definition\",\n data: def,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n\n const viewId = view.id;\n if (viewId) {\n acc[EXTENSION_POINT_CUI_VIEW] = acc[EXTENSION_POINT_CUI_VIEW] || {};\n acc[EXTENSION_POINT_CUI_VIEW][id] = {\n id,\n type: \"cui.view\",\n data: view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n acc[EXTENSION_POINT_CUI] = acc[EXTENSION_POINT_CUI] || {};\n const cuiContribution: CuiContribution = {\n id,\n type: \"cui\",\n data: def,\n view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n acc[EXTENSION_POINT_CUI][id] = cuiContribution;\n return acc;\n };\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_DASHBOARD_DETAIL_DEF = \"ddk.dashboard.detail\";\nexport const EXTENSION_POINT_DASHBOARD_DETAIL_VIEW =\n \"ddk.dashboard.detail.view\";\nexport const EXTENSION_POINT_DASHBOARD_DETAIL =\n \"ddk.ncui.dashboard.detail.config\";\nexport const dashboardDetailReducer = pluginReducer({\n basePluginType: \"dashboard.detail\",\n contributionKey: \"dashboardDetailDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_DASHBOARD_DETAIL,\n EXTENSION_POINT_DEF: EXTENSION_POINT_DASHBOARD_DETAIL_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_DASHBOARD_DETAIL_VIEW,\n },\n});\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_DEF =\n \"ddk.dashboard.pump.detail\";\nexport const EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_VIEW =\n \"ddk.dashboard.pump.detail.view\";\nexport const EXTENSION_POINT_DASHBOARD_PUMP_DETAIL =\n \"ddk.dashboard.pump.detail.config\";\n\nexport const dashboardPumpDetailReducer = pluginReducer({\n basePluginType: \"dashboard.pump.detail\",\n contributionKey: \"dashboardPumpDetailDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_DASHBOARD_PUMP_DETAIL,\n EXTENSION_POINT_DEF: EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_VIEW,\n },\n});\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_DASHBOARD = \"ddk.ncui.dashboard.config\";\nexport const dashboardReducer = pluginReducer({\n basePluginType: \"dashboard\",\n contributionKey: \"dashboardDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_DASHBOARD,\n },\n});\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_DASHBOARD_SUMMARY_DEF = \"ddk.dashboard.summary\";\nexport const EXTENSION_POINT_DASHBOARD_SUMMARY_VIEW =\n \"ddk.dashboard.summary.view\";\nexport const EXTENSION_POINT_DASHBOARD_SUMMARY =\n \"ddk.ncui.dashboard.summary.config\";\nexport const dashboardSummaryReducer = pluginReducer({\n basePluginType: \"dashboard.summary\",\n contributionKey: \"dashboardSummaryDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_DASHBOARD_SUMMARY,\n EXTENSION_POINT_DEF: EXTENSION_POINT_DASHBOARD_SUMMARY_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_DASHBOARD_SUMMARY_VIEW,\n },\n});\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_NAV_VIEW_DEF = \"ddk.nav.view\";\nexport const EXTENSION_POINT_NAV_VIEW_VIEW = \"ddk.nav.view.view\";\nexport const EXTENSION_POINT_NAV_VIEW = \"ddk.ncui.nav.view.config\";\n\nexport const navViewReducer = pluginReducer({\n basePluginType: \"nav.view\",\n contributionKey: \"navViewDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_NAV_VIEW,\n EXTENSION_POINT_DEF: EXTENSION_POINT_NAV_VIEW_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_NAV_VIEW_VIEW,\n },\n});\n","// plugin-extension-registry.ts\n\nimport type {\n PluginExtensionsType,\n ProcessedContributions,\n} from \"../../types/plugins\";\n\nexport type ExtensionReducer = (\n extensions: PluginExtensionsType,\n contributions: ProcessedContributions,\n experiences: any\n) => PluginExtensionsType;\n\nconst extensionPointRegistry: ExtensionReducer[] = [];\n\nexport function registerExtensionReducer(reducer: ExtensionReducer) {\n extensionPointRegistry.push(reducer);\n}\n\nexport function applyExtensionReducers(\n base: PluginExtensionsType,\n contributions: ProcessedContributions,\n experiences: any\n): PluginExtensionsType {\n return extensionPointRegistry.reduce(\n (acc, reducer) => reducer(acc, contributions, experiences),\n base\n );\n}\n","import type {\n PluginExtensionsType,\n ProcessedContributions,\n SettingsContribution,\n} from \"../../types/plugins\";\n\nexport const EXTENSION_POINT_SETTINGS_DEF = \"ddk.settings\";\nexport const EXTENSION_POINT_SETTINGS_VIEW = \"ddk.settings.view\";\nexport const EXTENSION_POINT_SETTINGS_GROUP_DEF = \"ddk.settings.group\";\nexport const EXTENSION_POINT_SETTINGS = \"ddk.ncui.settings.config\";\n\nexport const settingsReducer =\n (\n experiences: ProcessedContributions[\"experiences\"],\n settingDefinition: ProcessedContributions[\"settingsDefinitions\"],\n settingsGroupDefinition: ProcessedContributions[\"settingsGroupDefinitions\"]\n ) =>\n (acc: PluginExtensionsType, group: string) => {\n const groupDef = settingsGroupDefinition[group];\n acc[EXTENSION_POINT_SETTINGS_GROUP_DEF] =\n acc[EXTENSION_POINT_SETTINGS_GROUP_DEF] || {};\n acc[EXTENSION_POINT_SETTINGS_GROUP_DEF][group] = {\n id: group,\n type: \"settings.group\",\n data: settingsGroupDefinition[group],\n remote: groupDef.remote,\n sectionId: groupDef.sectionId,\n };\n\n const defKeys = Object.entries(settingDefinition)\n .filter(([, def]) => def.settingsGroup === group)\n .map(([defKey]) => defKey);\n\n defKeys.forEach((key) => {\n const id = key;\n\n const def = settingDefinition[key];\n const view = experiences[def.experienceId] || {};\n acc[EXTENSION_POINT_SETTINGS_GROUP_DEF][group].data.settings = [\n ...acc[EXTENSION_POINT_SETTINGS_GROUP_DEF][group].data.settings,\n id,\n ];\n acc[EXTENSION_POINT_SETTINGS_DEF] =\n acc[EXTENSION_POINT_SETTINGS_DEF] || {};\n acc[EXTENSION_POINT_SETTINGS_DEF][id] = {\n id,\n type: \"settings.definition\",\n data: def,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n\n const viewId = view.id;\n if (viewId) {\n acc[EXTENSION_POINT_SETTINGS_VIEW] =\n acc[EXTENSION_POINT_SETTINGS_VIEW] || {};\n acc[EXTENSION_POINT_SETTINGS_VIEW][id] = {\n id,\n type: \"settings.view\",\n data: view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n acc[EXTENSION_POINT_SETTINGS] = acc[EXTENSION_POINT_SETTINGS] || {};\n const settginsContribution: SettingsContribution = {\n id,\n type: \"settings\",\n data: def,\n view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n acc[EXTENSION_POINT_SETTINGS][id] = settginsContribution;\n });\n\n return acc;\n };\n","import type {\n PluginExtensionsType,\n ProcessedContributions,\n SetupContribution,\n} from \"../../types/plugins\";\n\nexport const EXTENSION_POINT_SETUP_DEF = \"ddk.setup\";\nexport const EXTENSION_POINT_SETUP_VIEW = \"ddk.setup.view\";\nexport const EXTENSION_POINT_SETUP = \"ddk.ncui.setup.config\";\n\nexport const setupReducer =\n (\n experiences: ProcessedContributions[\"experiences\"],\n setupDefinitions: ProcessedContributions[\"setupDefinitions\"]\n ) =>\n (acc: PluginExtensionsType, key: string) => {\n const id = key;\n const def = setupDefinitions[key];\n const view = experiences[def.experienceId] || {};\n acc[EXTENSION_POINT_SETUP_DEF] = acc[EXTENSION_POINT_SETUP_DEF] || {};\n acc[EXTENSION_POINT_SETUP_DEF][id] = {\n id,\n type: \"setup.definition\",\n data: def,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n\n const viewId = view.id;\n if (viewId) {\n acc[EXTENSION_POINT_SETUP_VIEW] = acc[EXTENSION_POINT_SETUP_VIEW] || {};\n acc[EXTENSION_POINT_SETUP_VIEW][id] = {\n id,\n type: \"setup.view\",\n data: view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n acc[EXTENSION_POINT_SETUP] = acc[EXTENSION_POINT_SETUP] || {};\n const setupContribution: SetupContribution = {\n id,\n type: \"setup\",\n data: def,\n view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n acc[EXTENSION_POINT_SETUP][id] = setupContribution;\n return acc;\n };\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_TROUBLE_ACTION_DEF = \"ddk.trouble.action\";\nexport const EXTENSION_POINT_TROUBLE_ACTION_VIEW = \"ddk.trouble.action.view\";\nexport const EXTENSION_POINT_TROUBLE_ACTION = \"ddk.ncui.trouble.action.config\";\n\nexport const troubleActionReducer = pluginReducer({\n basePluginType: \"trouble.action\",\n contributionKey: \"troubleActionDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_TROUBLE_ACTION,\n EXTENSION_POINT_DEF: EXTENSION_POINT_TROUBLE_ACTION_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_TROUBLE_ACTION_VIEW,\n },\n});\n","import type {\n PluginExtensionsType,\n ProcessedContributions,\n UtilContribution,\n} from \"../../types/plugins\";\n\nexport const EXTENSION_POINT_UTIL_DEF = \"ddk.utilities\";\nexport const EXTENSION_POINT_UTIL_VIEW = \"ddk.utilities.view\";\nexport const EXTENSION_POINT_UTIL = \"ddk.ncui.utils.config\";\nexport const utilReducer =\n (\n experiences: ProcessedContributions[\"experiences\"],\n utilDefinitions: ProcessedContributions[\"utilDefinitions\"]\n ) =>\n (acc: PluginExtensionsType, key: string) => {\n const id = key;\n const def = utilDefinitions[key];\n const view = experiences[def.experienceId] || {};\n acc[EXTENSION_POINT_UTIL_DEF] = acc[EXTENSION_POINT_UTIL_DEF] || {};\n acc[EXTENSION_POINT_UTIL_DEF][id] = {\n id,\n type: \"utility.definition\",\n data: def,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n\n const viewId = view.id;\n if (viewId) {\n acc[EXTENSION_POINT_UTIL_VIEW] = acc[EXTENSION_POINT_UTIL_VIEW] || {};\n acc[EXTENSION_POINT_UTIL_VIEW][id] = {\n id,\n type: \"utilities.view\",\n data: view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n acc[EXTENSION_POINT_UTIL] = acc[EXTENSION_POINT_UTIL] || {};\n const utilContribution: UtilContribution = {\n id,\n type: \"utility\",\n data: def,\n view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n acc[EXTENSION_POINT_UTIL][id] = utilContribution;\n\n return acc;\n };\n","// plugin-extension-registry-init.ts\nimport { controlPourReducer } from \"./control-pour-reducer\";\nimport { cuiReducer } from \"./cui-reducer\";\nimport { dashboardDetailReducer } from \"./dashboard-detail-reducer\";\nimport { dashboardPumpDetailReducer } from \"./dashboard-pump-detail-reducer\";\nimport { dashboardReducer } from \"./dashboard-reducer\";\nimport { dashboardSummaryReducer } from \"./dashboard-summary-reducer\";\nimport { navViewReducer } from \"./nav-view-reducer\";\nimport { registerExtensionReducer } from \"./plugin-extension-registry\";\nimport { settingsReducer } from \"./settings-reducer\";\nimport { setupReducer } from \"./setup-reducer\";\nimport { troubleActionReducer } from \"./state-action-reducer\";\nimport { utilReducer } from \"./util-reducer\";\n\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.cuiDefinitions).reduce(cuiReducer(e, c.cuiDefinitions), acc)\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.utilDefinitions).reduce(utilReducer(e, c.utilDefinitions), acc)\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.setupDefinitions).reduce(\n setupReducer(e, c.setupDefinitions),\n acc\n )\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.troubleActionDefinitions).reduce(\n troubleActionReducer(e, c),\n acc\n )\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.navViewDefinitions).reduce(navViewReducer(e, c), acc)\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.dashboardSummaryDefinitions).reduce(\n dashboardSummaryReducer(e, c),\n acc\n )\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.dashboardDetailDefinitions).reduce(\n dashboardDetailReducer(e, c),\n acc\n )\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.dashboardPumpDetailDefinitions).reduce(\n dashboardPumpDetailReducer(e, c),\n acc\n )\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.dashboardDefinitions).reduce(dashboardReducer(e, c), acc)\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.settingsGroupDefinitions).reduce(\n settingsReducer(e, c.settingsDefinitions, c.settingsGroupDefinitions),\n acc\n )\n);\n\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.controlPourDefinitions).reduce(controlPourReducer(e, c), acc)\n);\n","import { setRemoteDefinitions } from \"@nx/react/mf\";\nimport type { Contributions, DynamicRemotes } from \"../../types/global\";\nimport type {\n PluginExtension,\n PluginExtensionsType,\n} from \"../../types/plugins\";\nimport \"./plugin-extension-registry-init\";\n\ndeclare interface KosPluginsType {\n __dynamicRemotes: DynamicRemotes;\n __extensions?: PluginExtensionsType;\n extensions?: Record<string, PluginExtension[]>;\n}\ndeclare global {\n interface Window {\n KosPlugins: KosPluginsType;\n }\n}\n\nexport interface Extensions {\n extensionPointId: string;\n id: string;\n component: string;\n}\n\nexport interface Descriptor {\n id: string;\n baseUrl: string;\n descriptor: {\n id: string;\n extensions: Extensions[];\n contributes: Contributions;\n };\n}\n\ninterface KosPluginsProps {\n pluginBaseUrl?: string;\n pluginApiPath?: string;\n pluginContext?: {\n context: string;\n group: string;\n };\n overrides?: Record<string, string>;\n}\n\n/**\n * Parses the query string from the URL or a provided string and returns an object\n * representing the key-value pairs in the query string.\n *\n * @param query - An optional query string to parse. If not provided, the function\n * will use the current window's `location.search` string.\n * The query string should not include the leading \"?\" character.\n *\n * @returns An object where each key is a parameter name from the query string,\n * and each value is the corresponding decoded parameter value.\n *\n * @example\n * // Assuming the URL is: https://example.com/?name=John&age=30\n * getQueryParams();\n * // Returns: { name: \"John\", age: \"30\" }\n *\n * @example\n * getQueryParams(\"foo=bar&baz=qux\");\n * // Returns: { foo: \"bar\", baz: \"qux\" }\n */\nexport const getQueryParams = (query = null) =>\n (query || window.location.search.replace(\"?\", \"\"))\n\n // get array of KeyValue pairs\n .split(\"&\")\n\n // Decode values\n .map((pair) => {\n const [key, val] = pair.split(\"=\");\n\n return [key, decodeURIComponent(val || \"\")];\n })\n\n // array to object\n .reduce((result, [key, val]) => {\n result[key] = val;\n return result;\n }, {});\n\nconst getDefaultHost = () => {\n const defaultHost = window.location.origin;\n const params = getQueryParams();\n const hostUrl = (params as any)?.host;\n const result = hostUrl || defaultHost;\n return result;\n};\n// eslint-disable-next-line no-restricted-globals\n\n/**\n * Initializes KOS plugins by fetching plugin metadata and configuring dynamic remotes.\n *\n * @param props - Optional properties to configure the plugin initialization.\n * @param props.pluginBaseUrl - The base URL for the plugins. Defaults to the result of `getDefaultHost()`.\n * @param props.pluginApiPath - The API path to fetch plugin metadata. Defaults to `\"/api/app/kosdev.ddk/ncui/plugins\"`.\n * @param props.overrides - An object containing overrides for plugin base URLs, keyed by plugin ID.\n * @param props.pluginContext - An optional context object that specifies the plugin context and group.\n * If provided, the function will fetch plugins from the UI plugins endpoint. Otherwise,\n * it will fetch from the DDK pluging endpoint.\n *\n * @returns A promise that resolves to a record of remote definitions, where the keys are remote IDs\n * and the values are the corresponding base paths for the remote entries.\n *\n * @remarks\n * - This function fetches plugin metadata from the specified API endpoint and processes the data\n * to configure dynamic remotes for the KOS plugin system.\n * - If a plugin does not have a descriptor, an error is logged to the console.\n * - The remote definitions are also set using the `setRemoteDefinitions` function.\n *\n * @throws Will throw an error if the fetch request fails or if the response cannot be parsed as JSON.\n */\nexport const initializeKosPlugins = async (props?: KosPluginsProps) => {\n const defaultHost = getDefaultHost();\n const data = props ?? {};\n const {\n pluginBaseUrl = defaultHost,\n pluginApiPath = \"/api/app/kosdev.ddk/ncui/plugins\",\n overrides = {},\n pluginContext,\n } = data;\n\n const useUiPlugins = !!pluginContext;\n\n const url = useUiPlugins\n ? `${pluginBaseUrl}/api/kos/ui/plugins/context/${pluginContext.context}`\n : `${pluginBaseUrl}${pluginApiPath}`;\n\n console.log(\n `initialize-plugins: Using Plugin Framework: ${useUiPlugins}: Fetching plugins from ${url}`\n );\n const plugins = await fetch(url);\n const remotes = await plugins.json();\n\n const pluginData = useUiPlugins\n ? remotes.data?.groups?.[pluginContext.group] ?? []\n : remotes.data ?? [];\n\n const allRemotes = pluginData?.reduce((acc, item) => {\n const baseUrl =\n overrides?.[item.id] ?? useUiPlugins\n ? `${pluginBaseUrl}${item.path}`\n : `${pluginBaseUrl}${item.baseUrl}`;\n if (item.descriptor) {\n acc[item.id] = {\n basePath: `${baseUrl}remoteEntry.js`,\n extensions: item.descriptor.extensions,\n contributes: item.descriptor.contributes,\n remote: item.descriptor.id,\n init: !!item.descriptor.init,\n };\n } else {\n console.error(\n `initialize-plugins: Plugin ${item.id} does not have a descriptor`\n );\n }\n return acc;\n }, {} as DynamicRemotes);\n window.KosPlugins = window.KosPlugins || {};\n window.KosPlugins.__dynamicRemotes = allRemotes;\n const definitions = Object.keys(allRemotes).reduce((acc, item) => {\n const remote = allRemotes[item].remote;\n acc[remote] = allRemotes[item].basePath;\n return acc;\n }, {} as Record<string, string>);\n setRemoteDefinitions(definitions);\n return definitions;\n};\n","import type { DynamicRemotes } from \"../../types/global\";\nimport type { ProcessedContributions } from \"../../types/plugins\";\n\nexport const contributionReducer =\n (remotes: DynamicRemotes) => (acc: ProcessedContributions, key: string) => {\n acc.cuiDefinitions = acc.cuiDefinitions || {};\n\n const remote = remotes[key].remote;\n const sectionId = key;\n const cuiConfigurations = remotes[key].contributes?.cui || [];\n cuiConfigurations.forEach((cuiConfiguration) => {\n acc.cuiDefinitions[cuiConfiguration.id] = {\n ...cuiConfiguration,\n cuiDescriptor: sectionId,\n remote,\n sectionId,\n };\n });\n\n const navViewConfigurations = remotes[key].contributes?.navViews || [];\n navViewConfigurations.forEach((configuration) => {\n acc.navViewDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n const utilConfigurations = remotes[key].contributes?.utilities || [];\n utilConfigurations.forEach((configuration) => {\n acc.utilDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const setupConfigurations = remotes[key].contributes?.setupStep || [];\n setupConfigurations.forEach((configuration) => {\n acc.setupDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const troubleActionConfigurations =\n remotes[key].contributes?.troubleActions || [];\n troubleActionConfigurations.forEach((configuration) => {\n acc.troubleActionDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const controlPourConfigurations =\n remotes[key].contributes?.controlPour || [];\n controlPourConfigurations.forEach((configuration) => {\n acc.controlPourDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const settingsGroupConfigurations =\n remotes[key].contributes?.settingsGroup || [];\n settingsGroupConfigurations.forEach((configuration) => {\n acc.settingsGroupDefinitions[configuration.id] = {\n ...configuration,\n settings: [],\n remote,\n sectionId,\n };\n });\n\n const settingsConfigurations = remotes[key].contributes?.settings || [];\n settingsConfigurations.forEach((configuration) => {\n acc.settingsDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const dashboardSummaryConfigurations =\n remotes[key].contributes?.dashboardSummary || [];\n dashboardSummaryConfigurations.forEach((configuration) => {\n acc.dashboardDefinitions[configuration.dashboardKey] =\n acc.dashboardDefinitions[configuration.dashboardKey] || {};\n acc.dashboardDefinitions[configuration.dashboardKey].summary = {\n ...configuration,\n remote,\n sectionId,\n };\n acc.dashboardSummaryDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const dashboardDetailConfigurations =\n remotes[key].contributes?.dashboardDetail || [];\n dashboardDetailConfigurations.forEach((configuration) => {\n acc.dashboardDefinitions[configuration.dashboardKey] =\n acc.dashboardDefinitions[configuration.dashboardKey] || {};\n acc.dashboardDefinitions[configuration.dashboardKey].detail = {\n ...configuration,\n remote,\n sectionId,\n };\n acc.dashboardDetailDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const dashboardDetailPumpConfigurations =\n remotes[key].contributes?.dashboardPumpDetail || [];\n dashboardDetailPumpConfigurations.forEach((configuration) => {\n acc.dashboardDefinitions[configuration.dashboardKey] =\n acc.dashboardDefinitions[configuration.dashboardKey] || {};\n acc.dashboardDefinitions[configuration.dashboardKey].pumpDetail = {\n ...configuration,\n remote,\n sectionId,\n };\n acc.dashboardPumpDetailDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const experiences = remotes[key].contributes?.experiences;\n Object.keys(experiences).forEach((key) => {\n const experience = experiences[key];\n acc.experiences[key] = {\n ...experience,\n remote,\n sectionId,\n };\n });\n\n return acc;\n };\n","// plugin-extension-manager.ts\n\nimport { loadRemoteModule } from \"@nx/react/mf\";\nimport type { DynamicRemotes } from \"../../types/global\";\nimport type {\n PluginExtension,\n PluginExtensionsType,\n ProcessedContributions,\n} from \"../../types/plugins\";\n\nimport { contributionReducer } from \"./contribution-reducer\";\nimport { applyExtensionReducers } from \"./plugin-extension-registry\";\n\ninterface PluginsType {\n remotes?: DynamicRemotes;\n extensions?: PluginExtensionsType;\n extensionPoints?: Record<string, PluginExtension[]>;\n getExtensions: (extensionPointId: string) => PluginExtension[];\n}\n\nexport async function initPluginManager(\n remotesOverride?: DynamicRemotes\n): Promise<PluginsType> {\n const remotes = remotesOverride ?? window.KosPlugins.__dynamicRemotes;\n\n if (window.KosPlugins.extensions) {\n const extensionPoints = window.KosPlugins.extensions;\n return {\n extensionPoints,\n getExtensions: (extensionPointId: string) =>\n extensionPoints[extensionPointId] || [],\n remotes,\n extensions: window.KosPlugins.__extensions,\n };\n }\n\n const extensions =\n window.KosPlugins.__extensions ?? (await loadExtensions(remotes));\n\n const extensionPoints: Record<string, PluginExtension[]> = {};\n if (extensions) {\n for (const extensionPointId of Object.keys(extensions)) {\n extensionPoints[extensionPointId] = Object.values(\n extensions[extensionPointId] || {}\n );\n }\n }\n\n window.KosPlugins.extensions = extensionPoints;\n\n const getExtensions = (extensionPointId: string) =>\n extensionPoints[extensionPointId] || [];\n\n return { extensionPoints, getExtensions, remotes, extensions };\n}\n\nconst DEFAULT_CONTRIBUTIONS: ProcessedContributions = {\n cuiDefinitions: {},\n controlPourDefinitions: {},\n utilDefinitions: {},\n setupDefinitions: {},\n settingsGroupDefinitions: {},\n settingsDefinitions: {},\n dashboardSummaryDefinitions: {},\n dashboardDetailDefinitions: {},\n dashboardPumpDetailDefinitions: {},\n dashboardDefinitions: {},\n navViewDefinitions: {},\n troubleActionDefinitions: {},\n experiences: {},\n};\n\nexport function getContributions(\n remotes?: DynamicRemotes\n): ProcessedContributions {\n if (!remotes) {\n return DEFAULT_CONTRIBUTIONS;\n }\n return Object.keys(remotes).reduce(contributionReducer(remotes), {\n ...DEFAULT_CONTRIBUTIONS,\n });\n}\n\nexport async function loadExtensions(remotes?: DynamicRemotes) {\n if (!remotes) {\n window.KosPlugins = window.KosPlugins || {};\n return {};\n }\n\n const contributions = getContributions(remotes);\n const experiences = contributions.experiences;\n\n const baseExtensions: PluginExtensionsType = {};\n const reducedExtensions = applyExtensionReducers(\n baseExtensions,\n contributions,\n experiences\n );\n\n for (const remote of Object.values(remotes)) {\n if (remote.init) {\n const InitPlugin = await loadRemoteModule(remote.remote, \"./InitPlugin\");\n if (InitPlugin.default) {\n const initPlugin = new InitPlugin.default();\n initPlugin?.register();\n }\n }\n }\n\n const descriptorBasedExtensions = Object.keys(remotes).reduce((acc, key) => {\n const descriptorViews = remotes[key].contributes?.views ?? {};\n for (const viewKey of Object.keys(descriptorViews)) {\n const viewDefs = descriptorViews[viewKey];\n acc[viewKey] = acc[viewKey] || {};\n for (const viewDef of viewDefs) {\n acc[viewKey][viewDef.id] = {\n id: viewDef.id,\n type: \"view\",\n component: viewDef.component,\n remote: remotes[key].remote,\n sectionId: key,\n data: viewDef,\n };\n }\n }\n\n const extensions = remotes[key].extensions ?? [];\n for (const ext of extensions) {\n acc[ext.extensionPointId] = acc[ext.extensionPointId] || {};\n acc[ext.extensionPointId][ext.id] = {\n id: ext.id,\n type: ext.type,\n component: ext.component,\n remote: remotes[key].remote,\n sectionId: key,\n data: ext,\n };\n }\n\n return acc;\n }, reducedExtensions);\n\n window.KosPlugins = window.KosPlugins || {};\n window.KosPlugins.__extensions = descriptorBasedExtensions;\n return descriptorBasedExtensions;\n}\n\nexport async function getExtensions(extensionPointId: string) {\n const { getExtensions } = await initPluginManager();\n return getExtensions(extensionPointId);\n}\n","import type { PluginExtension } from \"../../types/plugins\";\n\n/**\n * Resolves the best plugin extension for a given extension point.\n *\n * @param extensions A map of plugin extensions keyed by module/plugin ID\n * @param module Optional module ID to resolve\n * @param exact If true, only returns a plugin if the given `module` matches exactly. If false (default), falls back to the best-ranked plugin if no match is found.\n * @returns The resolved PluginExtension or null\n */\nexport function resolveBestExtension<T extends PluginExtension>(\n extensions: Record<string, T> | undefined,\n module?: string,\n exact = false\n): T | null {\n if (!extensions || Object.keys(extensions).length === 0) {\n return null;\n }\n\n // Exact mode: must match the module ID\n if (exact) {\n return module && extensions[module] ? extensions[module] : null;\n }\n\n // Prefer exact match if available\n if (module && extensions[module]) {\n return extensions[module];\n }\n\n // Fallback: pick the best-ranked plugin\n const sorted = Object.values(extensions)\n .filter((ext) => typeof ext.id === \"string\")\n .sort((a, b) => {\n const aRank = typeof a.rank === \"number\" ? a.rank : Infinity;\n const bRank = typeof b.rank === \"number\" ? b.rank : Infinity;\n\n if (aRank === bRank) {\n const aId = a.id ?? \"\";\n const bId = b.id ?? \"\";\n return aId.localeCompare(bId);\n }\n\n return aRank - bRank;\n });\n\n return sorted[0] ?? null;\n}\n"],"names":["dynamicFederation","remoteUrlDefinitions","resolveRemoteUrl","remoteModuleMap","remoteContainerMap","initialSharingScopeCreated","setRemoteUrlResolver","_resolveRemoteUrl","setRemoteDefinitions","definitions","loadRemoteModule","remoteName","moduleName","remoteModuleKey","Module","loadRemoteContainer","fetchRemoteModule","url","resolve","reject","script","request","arg","e","remoteUrl","containerUrl","container","exports","dynamic_federation_1","require$$0","pluginReducer","contributionKey","basePluginType","EXTENSION_POINT","EXTENSION_POINT_DEF","EXTENSION_POINT_VIEW","experiences","contributions","acc","key","id","def","view","contribution","EXTENSION_POINT_CONTROL_POUR_DEF","EXTENSION_POINT_CONTROL_POUR_VIEW","EXTENSION_POINT_CONTROL_POUR","controlPourReducer","EXTENSION_POINT_CUI_DEF","EXTENSION_POINT_CUI_VIEW","EXTENSION_POINT_CUI","cuiReducer","cuiDefinitions","cuiContribution","EXTENSION_POINT_DASHBOARD_DETAIL_DEF","EXTENSION_POINT_DASHBOARD_DETAIL_VIEW","EXTENSION_POINT_DASHBOARD_DETAIL","dashboardDetailReducer","EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_DEF","EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_VIEW","EXTENSION_POINT_DASHBOARD_PUMP_DETAIL","dashboardPumpDetailReducer","EXTENSION_POINT_DASHBOARD","dashboardReducer","EXTENSION_POINT_DASHBOARD_SUMMARY_DEF","EXTENSION_POINT_DASHBOARD_SUMMARY_VIEW","EXTENSION_POINT_DASHBOARD_SUMMARY","dashboardSummaryReducer","EXTENSION_POINT_NAV_VIEW_DEF","EXTENSION_POINT_NAV_VIEW_VIEW","EXTENSION_POINT_NAV_VIEW","navViewReducer","extensionPointRegistry","registerExtensionReducer","reducer","applyExtensionReducers","base","EXTENSION_POINT_SETTINGS_DEF","EXTENSION_POINT_SETTINGS_VIEW","EXTENSION_POINT_SETTINGS_GROUP_DEF","EXTENSION_POINT_SETTINGS","settingsReducer","settingDefinition","settingsGroupDefinition","group","groupDef","defKey","settginsContribution","EXTENSION_POINT_SETUP_DEF","EXTENSION_POINT_SETUP_VIEW","EXTENSION_POINT_SETUP","setupReducer","setupDefinitions","setupContribution","EXTENSION_POINT_TROUBLE_ACTION_DEF","EXTENSION_POINT_TROUBLE_ACTION_VIEW","EXTENSION_POINT_TROUBLE_ACTION","troubleActionReducer","EXTENSION_POINT_UTIL_DEF","EXTENSION_POINT_UTIL_VIEW","EXTENSION_POINT_UTIL","utilReducer","utilDefinitions","utilContribution","c","getQueryParams","query","pair","val","result","getDefaultHost","defaultHost","params","initializeKosPlugins","props","data","pluginBaseUrl","pluginApiPath","overrides","pluginContext","useUiPlugins","remotes","pluginData","_b","_a","allRemotes","item","baseUrl","remote","contributionReducer","sectionId","cuiConfiguration","configuration","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","experience","initPluginManager","remotesOverride","extensionPoints","extensionPointId","extensions","loadExtensions","DEFAULT_CONTRIBUTIONS","getContributions","reducedExtensions","InitPlugin","initPlugin","descriptorBasedExtensions","descriptorViews","viewKey","viewDefs","viewDef","ext","getExtensions","resolveBestExtension","module","exact","a","b","aRank","bRank","aId","bId"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve-best-extension-DSdPcuL3.cjs","sources":["../../../../node_modules/@nx/react/mf/dynamic-federation.js","../../../../node_modules/@nx/react/mf/index.js","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/plugin-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/control-pour-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/cui-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/dashboard-detail-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/dashboard-pump-detail-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/dashboard-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/dashboard-summary-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/nav-view-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/plugin-extension-registry.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/settings-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/setup-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/state-action-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/util-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/plugin-extension-registry-init.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/initialize-plugins.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/contribution-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/plugin-extension-manager.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/resolve-best-extension.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadRemoteModule = exports.setRemoteDefinitions = exports.setRemoteUrlResolver = void 0;\nlet remoteUrlDefinitions;\nlet resolveRemoteUrl;\nconst remoteModuleMap = new Map();\nconst remoteContainerMap = new Map();\nlet initialSharingScopeCreated = false;\nfunction setRemoteUrlResolver(_resolveRemoteUrl) {\n resolveRemoteUrl = _resolveRemoteUrl;\n}\nexports.setRemoteUrlResolver = setRemoteUrlResolver;\nfunction setRemoteDefinitions(definitions) {\n remoteUrlDefinitions = definitions;\n}\nexports.setRemoteDefinitions = setRemoteDefinitions;\nasync function loadRemoteModule(remoteName, moduleName) {\n const remoteModuleKey = `${remoteName}:${moduleName}`;\n if (remoteModuleMap.has(remoteModuleKey)) {\n return remoteModuleMap.get(remoteModuleKey);\n }\n const container = remoteContainerMap.has(remoteName)\n ? remoteContainerMap.get(remoteName)\n : await loadRemoteContainer(remoteName);\n const factory = await container.get(moduleName);\n const Module = factory();\n remoteModuleMap.set(remoteModuleKey, Module);\n return Module;\n}\nexports.loadRemoteModule = loadRemoteModule;\nconst fetchRemoteModule = (url, remoteName) => {\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = url;\n script.type = 'text/javascript';\n script.async = true;\n script.onload = () => {\n const proxy = {\n get: (request) => window[remoteName].get(request),\n init: (arg) => {\n try {\n window[remoteName].init(arg);\n }\n catch (e) {\n console.error(`Failed to initialize remote ${remoteName}`, e);\n reject(e);\n }\n },\n };\n resolve(proxy);\n };\n script.onerror = () => reject(new Error(`Remote ${remoteName} not found`));\n document.head.appendChild(script);\n });\n};\nasync function loadRemoteContainer(remoteName) {\n if (!resolveRemoteUrl && !remoteUrlDefinitions) {\n throw new Error('Call setRemoteDefinitions or setRemoteUrlResolver to allow Dynamic Federation to find the remote apps correctly.');\n }\n if (!initialSharingScopeCreated) {\n initialSharingScopeCreated = true;\n await __webpack_init_sharing__('default');\n }\n const remoteUrl = remoteUrlDefinitions\n ? remoteUrlDefinitions[remoteName]\n : await resolveRemoteUrl(remoteName);\n let containerUrl = remoteUrl;\n if (!remoteUrl.endsWith('.mjs') && !remoteUrl.endsWith('.js')) {\n containerUrl = `${remoteUrl}${remoteUrl.endsWith('/') ? '' : '/'}remoteEntry.js`;\n }\n const container = await fetchRemoteModule(containerUrl, remoteName);\n await container.init(__webpack_share_scopes__.default);\n remoteContainerMap.set(remoteName, container);\n return container;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setRemoteUrlResolver = exports.setRemoteDefinitions = exports.loadRemoteModule = void 0;\nvar dynamic_federation_1 = require(\"./dynamic-federation\");\nObject.defineProperty(exports, \"loadRemoteModule\", { enumerable: true, get: function () { return dynamic_federation_1.loadRemoteModule; } });\nObject.defineProperty(exports, \"setRemoteDefinitions\", { enumerable: true, get: function () { return dynamic_federation_1.setRemoteDefinitions; } });\nObject.defineProperty(exports, \"setRemoteUrlResolver\", { enumerable: true, get: function () { return dynamic_federation_1.setRemoteUrlResolver; } });\n","import type {\n BaseViewPluginExtension,\n PluginExtensionsType,\n ProcessedContributions,\n} from \"../../types/plugins\";\n\nexport const EXTENSION_POINT_SETUP_DEF = \"ddk.setup\";\nexport const EXTENSION_POINT_SETUP_VIEW = \"ddk.setup.view\";\nexport const EXTENSION_POINT_SETUP = \"ddk.ncui.setup.config\";\n\ninterface PluginReducer {\n contributionKey: string;\n basePluginType: string;\n keys: {\n EXTENSION_POINT_DEF?: string;\n EXTENSION_POINT_VIEW?: string;\n EXTENSION_POINT: string;\n };\n}\nexport const pluginReducer =\n ({\n contributionKey,\n basePluginType,\n keys: { EXTENSION_POINT, EXTENSION_POINT_DEF, EXTENSION_POINT_VIEW },\n }: PluginReducer) =>\n (\n experiences: ProcessedContributions[\"experiences\"],\n contributions: ProcessedContributions\n ) =>\n (acc: PluginExtensionsType, key: string) => {\n const id = key;\n const definitions = contributions[contributionKey];\n const def = definitions[key];\n const view = experiences[def.experienceId] || {};\n\n if (EXTENSION_POINT_DEF) {\n acc[EXTENSION_POINT_DEF] = acc[EXTENSION_POINT_DEF] || {};\n acc[EXTENSION_POINT_DEF][id] = {\n id,\n type: `${basePluginType}.definition`,\n data: def,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n const viewId = view.id;\n if (viewId && EXTENSION_POINT_VIEW) {\n acc[EXTENSION_POINT_VIEW] = acc[EXTENSION_POINT_VIEW] || {};\n acc[EXTENSION_POINT_VIEW][id] = {\n id,\n type: `${basePluginType}.view`,\n data: view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n acc[EXTENSION_POINT] = acc[EXTENSION_POINT] || {};\n const contribution: BaseViewPluginExtension = {\n id,\n type: `${basePluginType}`,\n data: def,\n view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n acc[EXTENSION_POINT][id] = contribution;\n return acc;\n };\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_CONTROL_POUR_DEF = \"cui.control.pour\";\nexport const EXTENSION_POINT_CONTROL_POUR_VIEW = \"cui.control.pour.view\";\nexport const EXTENSION_POINT_CONTROL_POUR = \"cui.control.pour.config\";\n\nexport const controlPourReducer = pluginReducer({\n basePluginType: \"control.pour\",\n contributionKey: \"controlPourDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_CONTROL_POUR,\n EXTENSION_POINT_DEF: EXTENSION_POINT_CONTROL_POUR_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_CONTROL_POUR_VIEW,\n },\n});\n","import type {\n CuiContribution,\n PluginExtensionsType,\n ProcessedContributions,\n} from \"../../types/plugins\";\n\nexport const EXTENSION_POINT_CUI_DEF = \"ddk.cui\";\nexport const EXTENSION_POINT_CUI_VIEW = \"ddk.cui.view\";\nexport const EXTENSION_POINT_CUI = \"ddk.cui.settings.config\";\nexport const cuiReducer =\n (\n experiences: ProcessedContributions[\"experiences\"],\n cuiDefinitions: ProcessedContributions[\"cuiDefinitions\"]\n ) =>\n (acc: PluginExtensionsType, key: string) => {\n const id = key;\n const def = cuiDefinitions[key];\n const view = experiences[def.experienceId] || {};\n acc[EXTENSION_POINT_CUI_DEF] = acc[EXTENSION_POINT_CUI_DEF] || {};\n acc[EXTENSION_POINT_CUI_DEF][id] = {\n id,\n type: \"cui.definition\",\n data: def,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n\n const viewId = view.id;\n if (viewId) {\n acc[EXTENSION_POINT_CUI_VIEW] = acc[EXTENSION_POINT_CUI_VIEW] || {};\n acc[EXTENSION_POINT_CUI_VIEW][id] = {\n id,\n type: \"cui.view\",\n data: view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n acc[EXTENSION_POINT_CUI] = acc[EXTENSION_POINT_CUI] || {};\n const cuiContribution: CuiContribution = {\n id,\n type: \"cui\",\n data: def,\n view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n acc[EXTENSION_POINT_CUI][id] = cuiContribution;\n return acc;\n };\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_DASHBOARD_DETAIL_DEF = \"ddk.dashboard.detail\";\nexport const EXTENSION_POINT_DASHBOARD_DETAIL_VIEW =\n \"ddk.dashboard.detail.view\";\nexport const EXTENSION_POINT_DASHBOARD_DETAIL =\n \"ddk.ncui.dashboard.detail.config\";\nexport const dashboardDetailReducer = pluginReducer({\n basePluginType: \"dashboard.detail\",\n contributionKey: \"dashboardDetailDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_DASHBOARD_DETAIL,\n EXTENSION_POINT_DEF: EXTENSION_POINT_DASHBOARD_DETAIL_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_DASHBOARD_DETAIL_VIEW,\n },\n});\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_DEF =\n \"ddk.dashboard.pump.detail\";\nexport const EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_VIEW =\n \"ddk.dashboard.pump.detail.view\";\nexport const EXTENSION_POINT_DASHBOARD_PUMP_DETAIL =\n \"ddk.dashboard.pump.detail.config\";\n\nexport const dashboardPumpDetailReducer = pluginReducer({\n basePluginType: \"dashboard.pump.detail\",\n contributionKey: \"dashboardPumpDetailDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_DASHBOARD_PUMP_DETAIL,\n EXTENSION_POINT_DEF: EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_VIEW,\n },\n});\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_DASHBOARD = \"ddk.ncui.dashboard.config\";\nexport const dashboardReducer = pluginReducer({\n basePluginType: \"dashboard\",\n contributionKey: \"dashboardDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_DASHBOARD,\n },\n});\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_DASHBOARD_SUMMARY_DEF = \"ddk.dashboard.summary\";\nexport const EXTENSION_POINT_DASHBOARD_SUMMARY_VIEW =\n \"ddk.dashboard.summary.view\";\nexport const EXTENSION_POINT_DASHBOARD_SUMMARY =\n \"ddk.ncui.dashboard.summary.config\";\nexport const dashboardSummaryReducer = pluginReducer({\n basePluginType: \"dashboard.summary\",\n contributionKey: \"dashboardSummaryDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_DASHBOARD_SUMMARY,\n EXTENSION_POINT_DEF: EXTENSION_POINT_DASHBOARD_SUMMARY_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_DASHBOARD_SUMMARY_VIEW,\n },\n});\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_NAV_VIEW_DEF = \"ddk.nav.view\";\nexport const EXTENSION_POINT_NAV_VIEW_VIEW = \"ddk.nav.view.view\";\nexport const EXTENSION_POINT_NAV_VIEW = \"ddk.ncui.nav.view.config\";\n\nexport const navViewReducer = pluginReducer({\n basePluginType: \"nav.view\",\n contributionKey: \"navViewDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_NAV_VIEW,\n EXTENSION_POINT_DEF: EXTENSION_POINT_NAV_VIEW_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_NAV_VIEW_VIEW,\n },\n});\n","// plugin-extension-registry.ts\n\nimport type {\n PluginExtensionsType,\n ProcessedContributions,\n} from \"../../types/plugins\";\n\nexport type ExtensionReducer = (\n extensions: PluginExtensionsType,\n contributions: ProcessedContributions,\n experiences: any\n) => PluginExtensionsType;\n\nconst extensionPointRegistry: ExtensionReducer[] = [];\n\nexport function registerExtensionReducer(reducer: ExtensionReducer) {\n extensionPointRegistry.push(reducer);\n}\n\nexport function applyExtensionReducers(\n base: PluginExtensionsType,\n contributions: ProcessedContributions,\n experiences: any\n): PluginExtensionsType {\n return extensionPointRegistry.reduce(\n (acc, reducer) => reducer(acc, contributions, experiences),\n base\n );\n}\n","import type {\n PluginExtensionsType,\n ProcessedContributions,\n SettingsContribution,\n} from \"../../types/plugins\";\n\nexport const EXTENSION_POINT_SETTINGS_DEF = \"ddk.settings\";\nexport const EXTENSION_POINT_SETTINGS_VIEW = \"ddk.settings.view\";\nexport const EXTENSION_POINT_SETTINGS_GROUP_DEF = \"ddk.settings.group\";\nexport const EXTENSION_POINT_SETTINGS = \"ddk.ncui.settings.config\";\n\nexport const settingsReducer =\n (\n experiences: ProcessedContributions[\"experiences\"],\n settingDefinition: ProcessedContributions[\"settingsDefinitions\"],\n settingsGroupDefinition: ProcessedContributions[\"settingsGroupDefinitions\"]\n ) =>\n (acc: PluginExtensionsType, group: string) => {\n const groupDef = settingsGroupDefinition[group];\n acc[EXTENSION_POINT_SETTINGS_GROUP_DEF] =\n acc[EXTENSION_POINT_SETTINGS_GROUP_DEF] || {};\n acc[EXTENSION_POINT_SETTINGS_GROUP_DEF][group] = {\n id: group,\n type: \"settings.group\",\n data: settingsGroupDefinition[group],\n remote: groupDef.remote,\n sectionId: groupDef.sectionId,\n };\n\n const defKeys = Object.entries(settingDefinition)\n .filter(([, def]) => def.settingsGroup === group)\n .map(([defKey]) => defKey);\n\n defKeys.forEach((key) => {\n const id = key;\n\n const def = settingDefinition[key];\n const view = experiences[def.experienceId] || {};\n acc[EXTENSION_POINT_SETTINGS_GROUP_DEF][group].data.settings = [\n ...acc[EXTENSION_POINT_SETTINGS_GROUP_DEF][group].data.settings,\n id,\n ];\n acc[EXTENSION_POINT_SETTINGS_DEF] =\n acc[EXTENSION_POINT_SETTINGS_DEF] || {};\n acc[EXTENSION_POINT_SETTINGS_DEF][id] = {\n id,\n type: \"settings.definition\",\n data: def,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n\n const viewId = view.id;\n if (viewId) {\n acc[EXTENSION_POINT_SETTINGS_VIEW] =\n acc[EXTENSION_POINT_SETTINGS_VIEW] || {};\n acc[EXTENSION_POINT_SETTINGS_VIEW][id] = {\n id,\n type: \"settings.view\",\n data: view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n acc[EXTENSION_POINT_SETTINGS] = acc[EXTENSION_POINT_SETTINGS] || {};\n const settginsContribution: SettingsContribution = {\n id,\n type: \"settings\",\n data: def,\n view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n acc[EXTENSION_POINT_SETTINGS][id] = settginsContribution;\n });\n\n return acc;\n };\n","import type {\n PluginExtensionsType,\n ProcessedContributions,\n SetupContribution,\n} from \"../../types/plugins\";\n\nexport const EXTENSION_POINT_SETUP_DEF = \"ddk.setup\";\nexport const EXTENSION_POINT_SETUP_VIEW = \"ddk.setup.view\";\nexport const EXTENSION_POINT_SETUP = \"ddk.ncui.setup.config\";\n\nexport const setupReducer =\n (\n experiences: ProcessedContributions[\"experiences\"],\n setupDefinitions: ProcessedContributions[\"setupDefinitions\"]\n ) =>\n (acc: PluginExtensionsType, key: string) => {\n const id = key;\n const def = setupDefinitions[key];\n const view = experiences[def.experienceId] || {};\n acc[EXTENSION_POINT_SETUP_DEF] = acc[EXTENSION_POINT_SETUP_DEF] || {};\n acc[EXTENSION_POINT_SETUP_DEF][id] = {\n id,\n type: \"setup.definition\",\n data: def,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n\n const viewId = view.id;\n if (viewId) {\n acc[EXTENSION_POINT_SETUP_VIEW] = acc[EXTENSION_POINT_SETUP_VIEW] || {};\n acc[EXTENSION_POINT_SETUP_VIEW][id] = {\n id,\n type: \"setup.view\",\n data: view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n acc[EXTENSION_POINT_SETUP] = acc[EXTENSION_POINT_SETUP] || {};\n const setupContribution: SetupContribution = {\n id,\n type: \"setup\",\n data: def,\n view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n acc[EXTENSION_POINT_SETUP][id] = setupContribution;\n return acc;\n };\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_TROUBLE_ACTION_DEF = \"ddk.trouble.action\";\nexport const EXTENSION_POINT_TROUBLE_ACTION_VIEW = \"ddk.trouble.action.view\";\nexport const EXTENSION_POINT_TROUBLE_ACTION = \"ddk.ncui.trouble.action.config\";\n\nexport const troubleActionReducer = pluginReducer({\n basePluginType: \"trouble.action\",\n contributionKey: \"troubleActionDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_TROUBLE_ACTION,\n EXTENSION_POINT_DEF: EXTENSION_POINT_TROUBLE_ACTION_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_TROUBLE_ACTION_VIEW,\n },\n});\n","import type {\n PluginExtensionsType,\n ProcessedContributions,\n UtilContribution,\n} from \"../../types/plugins\";\n\nexport const EXTENSION_POINT_UTIL_DEF = \"ddk.utilities\";\nexport const EXTENSION_POINT_UTIL_VIEW = \"ddk.utilities.view\";\nexport const EXTENSION_POINT_UTIL = \"ddk.ncui.utils.config\";\nexport const utilReducer =\n (\n experiences: ProcessedContributions[\"experiences\"],\n utilDefinitions: ProcessedContributions[\"utilDefinitions\"]\n ) =>\n (acc: PluginExtensionsType, key: string) => {\n const id = key;\n const def = utilDefinitions[key];\n const view = experiences[def.experienceId] || {};\n acc[EXTENSION_POINT_UTIL_DEF] = acc[EXTENSION_POINT_UTIL_DEF] || {};\n acc[EXTENSION_POINT_UTIL_DEF][id] = {\n id,\n type: \"utility.definition\",\n data: def,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n\n const viewId = view.id;\n if (viewId) {\n acc[EXTENSION_POINT_UTIL_VIEW] = acc[EXTENSION_POINT_UTIL_VIEW] || {};\n acc[EXTENSION_POINT_UTIL_VIEW][id] = {\n id,\n type: \"utilities.view\",\n data: view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n acc[EXTENSION_POINT_UTIL] = acc[EXTENSION_POINT_UTIL] || {};\n const utilContribution: UtilContribution = {\n id,\n type: \"utility\",\n data: def,\n view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n acc[EXTENSION_POINT_UTIL][id] = utilContribution;\n\n return acc;\n };\n","// plugin-extension-registry-init.ts\nimport { controlPourReducer } from \"./control-pour-reducer\";\nimport { cuiReducer } from \"./cui-reducer\";\nimport { dashboardDetailReducer } from \"./dashboard-detail-reducer\";\nimport { dashboardPumpDetailReducer } from \"./dashboard-pump-detail-reducer\";\nimport { dashboardReducer } from \"./dashboard-reducer\";\nimport { dashboardSummaryReducer } from \"./dashboard-summary-reducer\";\nimport { navViewReducer } from \"./nav-view-reducer\";\nimport { registerExtensionReducer } from \"./plugin-extension-registry\";\nimport { settingsReducer } from \"./settings-reducer\";\nimport { setupReducer } from \"./setup-reducer\";\nimport { troubleActionReducer } from \"./state-action-reducer\";\nimport { utilReducer } from \"./util-reducer\";\n\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.cuiDefinitions).reduce(cuiReducer(e, c.cuiDefinitions), acc)\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.utilDefinitions).reduce(utilReducer(e, c.utilDefinitions), acc)\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.setupDefinitions).reduce(\n setupReducer(e, c.setupDefinitions),\n acc\n )\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.troubleActionDefinitions).reduce(\n troubleActionReducer(e, c),\n acc\n )\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.navViewDefinitions).reduce(navViewReducer(e, c), acc)\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.dashboardSummaryDefinitions).reduce(\n dashboardSummaryReducer(e, c),\n acc\n )\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.dashboardDetailDefinitions).reduce(\n dashboardDetailReducer(e, c),\n acc\n )\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.dashboardPumpDetailDefinitions).reduce(\n dashboardPumpDetailReducer(e, c),\n acc\n )\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.dashboardDefinitions).reduce(dashboardReducer(e, c), acc)\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.settingsGroupDefinitions).reduce(\n settingsReducer(e, c.settingsDefinitions, c.settingsGroupDefinitions),\n acc\n )\n);\n\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.controlPourDefinitions).reduce(controlPourReducer(e, c), acc)\n);\n","import { setRemoteDefinitions } from \"@nx/react/mf\";\nimport type { Contributions, DynamicRemotes } from \"../../types/global\";\nimport type {\n PluginExtension,\n PluginExtensionsType,\n} from \"../../types/plugins\";\nimport \"./plugin-extension-registry-init\";\n\ndeclare interface KosPluginsType {\n __dynamicRemotes: DynamicRemotes;\n __extensions?: PluginExtensionsType;\n extensions?: Record<string, PluginExtension[]>;\n}\ndeclare global {\n interface Window {\n KosPlugins: KosPluginsType;\n }\n}\n\nexport interface Extensions {\n extensionPointId: string;\n id: string;\n component: string;\n}\n\nexport interface Descriptor {\n id: string;\n baseUrl: string;\n descriptor: {\n id: string;\n extensions: Extensions[];\n contributes: Contributions;\n };\n}\n\ninterface KosPluginsProps {\n pluginBaseUrl?: string;\n pluginApiPath?: string;\n pluginContext?: {\n context: string;\n group: string;\n };\n overrides?: Record<string, string>;\n}\n\n/**\n * Parses the query string from the URL or a provided string and returns an object\n * representing the key-value pairs in the query string.\n *\n * @param query - An optional query string to parse. If not provided, the function\n * will use the current window's `location.search` string.\n * The query string should not include the leading \"?\" character.\n *\n * @returns An object where each key is a parameter name from the query string,\n * and each value is the corresponding decoded parameter value.\n *\n * @example\n * // Assuming the URL is: https://example.com/?name=John&age=30\n * getQueryParams();\n * // Returns: { name: \"John\", age: \"30\" }\n *\n * @example\n * getQueryParams(\"foo=bar&baz=qux\");\n * // Returns: { foo: \"bar\", baz: \"qux\" }\n */\nexport const getQueryParams = (query = null) =>\n (query || window.location.search.replace(\"?\", \"\"))\n\n // get array of KeyValue pairs\n .split(\"&\")\n\n // Decode values\n .map((pair) => {\n const [key, val] = pair.split(\"=\");\n\n return [key, decodeURIComponent(val || \"\")];\n })\n\n // array to object\n .reduce((result, [key, val]) => {\n result[key] = val;\n return result;\n }, {});\n\nconst getDefaultHost = () => {\n const defaultHost = window.location.origin;\n const params = getQueryParams();\n const hostUrl = (params as any)?.host;\n const result = hostUrl || defaultHost;\n return result;\n};\n// eslint-disable-next-line no-restricted-globals\n\n/**\n * Initializes KOS plugins by fetching plugin metadata and configuring dynamic remotes.\n *\n * @param props - Optional properties to configure the plugin initialization.\n * @param props.pluginBaseUrl - The base URL for the plugins. Defaults to the result of `getDefaultHost()`.\n * @param props.pluginApiPath - The API path to fetch plugin metadata. Defaults to `\"/api/app/kosdev.ddk/ncui/plugins\"`.\n * @param props.overrides - An object containing overrides for plugin base URLs, keyed by plugin ID.\n * @param props.pluginContext - An optional context object that specifies the plugin context and group.\n * If provided, the function will fetch plugins from the UI plugins endpoint. Otherwise,\n * it will fetch from the DDK pluging endpoint.\n *\n * @returns A promise that resolves to a record of remote definitions, where the keys are remote IDs\n * and the values are the corresponding base paths for the remote entries.\n *\n * @remarks\n * - This function fetches plugin metadata from the specified API endpoint and processes the data\n * to configure dynamic remotes for the KOS plugin system.\n * - If a plugin does not have a descriptor, an error is logged to the console.\n * - The remote definitions are also set using the `setRemoteDefinitions` function.\n *\n * @throws Will throw an error if the fetch request fails or if the response cannot be parsed as JSON.\n */\nexport const initializeKosPlugins = async (props?: KosPluginsProps) => {\n const defaultHost = getDefaultHost();\n const data = props ?? {};\n const {\n pluginBaseUrl = defaultHost,\n pluginApiPath = \"/api/app/kosdev.ddk/ncui/plugins\",\n overrides = {},\n pluginContext,\n } = data;\n\n const useUiPlugins = !!pluginContext;\n\n const url = useUiPlugins\n ? `${pluginBaseUrl}/api/kos/ui/plugins/context/${pluginContext.context}`\n : `${pluginBaseUrl}${pluginApiPath}`;\n\n console.log(\n `initialize-plugins: Using Plugin Framework: ${useUiPlugins}: Fetching plugins from ${url}`\n );\n const plugins = await fetch(url);\n const remotes = await plugins.json();\n\n const pluginData = useUiPlugins\n ? remotes.data?.groups?.[pluginContext.group] ?? []\n : remotes.data ?? [];\n\n const allRemotes = pluginData?.reduce((acc, item) => {\n const baseUrl =\n overrides?.[item.id] ?? useUiPlugins\n ? `${pluginBaseUrl}${item.path}`\n : `${pluginBaseUrl}${item.baseUrl}`;\n if (item.descriptor) {\n acc[item.id] = {\n basePath: `${baseUrl}remoteEntry.js`,\n extensions: item.descriptor.extensions,\n contributes: item.descriptor.contributes,\n remote: item.descriptor.id,\n init: !!item.descriptor.init,\n };\n } else {\n console.error(\n `initialize-plugins: Plugin ${item.id} does not have a descriptor`\n );\n }\n return acc;\n }, {} as DynamicRemotes);\n window.KosPlugins = window.KosPlugins || {};\n window.KosPlugins.__dynamicRemotes = allRemotes;\n const definitions = Object.keys(allRemotes).reduce((acc, item) => {\n const remote = allRemotes[item].remote;\n acc[remote] = allRemotes[item].basePath;\n return acc;\n }, {} as Record<string, string>);\n setRemoteDefinitions(definitions);\n return definitions;\n};\n","import type { DynamicRemotes } from \"../../types/global\";\nimport type { ProcessedContributions } from \"../../types/plugins\";\n\nexport const contributionReducer =\n (remotes: DynamicRemotes) => (acc: ProcessedContributions, key: string) => {\n acc.cuiDefinitions = acc.cuiDefinitions || {};\n\n const remote = remotes[key].remote;\n const sectionId = key;\n const cuiConfigurations = remotes[key].contributes?.cui || [];\n cuiConfigurations.forEach((cuiConfiguration) => {\n acc.cuiDefinitions[cuiConfiguration.id] = {\n ...cuiConfiguration,\n cuiDescriptor: sectionId,\n remote,\n sectionId,\n };\n });\n\n const navViewConfigurations = remotes[key].contributes?.navViews || [];\n navViewConfigurations.forEach((configuration) => {\n acc.navViewDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n const utilConfigurations = remotes[key].contributes?.utilities || [];\n utilConfigurations.forEach((configuration) => {\n acc.utilDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const setupConfigurations = remotes[key].contributes?.setupStep || [];\n setupConfigurations.forEach((configuration) => {\n acc.setupDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const troubleActionConfigurations =\n remotes[key].contributes?.troubleActions || [];\n troubleActionConfigurations.forEach((configuration) => {\n acc.troubleActionDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const controlPourConfigurations =\n remotes[key].contributes?.controlPour || [];\n controlPourConfigurations.forEach((configuration) => {\n acc.controlPourDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const settingsGroupConfigurations =\n remotes[key].contributes?.settingsGroup || [];\n settingsGroupConfigurations.forEach((configuration) => {\n acc.settingsGroupDefinitions[configuration.id] = {\n ...configuration,\n settings: [],\n remote,\n sectionId,\n };\n });\n\n const settingsConfigurations = remotes[key].contributes?.settings || [];\n settingsConfigurations.forEach((configuration) => {\n acc.settingsDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const dashboardSummaryConfigurations =\n remotes[key].contributes?.dashboardSummary || [];\n dashboardSummaryConfigurations.forEach((configuration) => {\n acc.dashboardDefinitions[configuration.dashboardKey] =\n acc.dashboardDefinitions[configuration.dashboardKey] || {};\n acc.dashboardDefinitions[configuration.dashboardKey].summary = {\n ...configuration,\n remote,\n sectionId,\n };\n acc.dashboardSummaryDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const dashboardDetailConfigurations =\n remotes[key].contributes?.dashboardDetail || [];\n dashboardDetailConfigurations.forEach((configuration) => {\n acc.dashboardDefinitions[configuration.dashboardKey] =\n acc.dashboardDefinitions[configuration.dashboardKey] || {};\n acc.dashboardDefinitions[configuration.dashboardKey].detail = {\n ...configuration,\n remote,\n sectionId,\n };\n acc.dashboardDetailDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const dashboardDetailPumpConfigurations =\n remotes[key].contributes?.dashboardPumpDetail || [];\n dashboardDetailPumpConfigurations.forEach((configuration) => {\n acc.dashboardDefinitions[configuration.dashboardKey] =\n acc.dashboardDefinitions[configuration.dashboardKey] || {};\n acc.dashboardDefinitions[configuration.dashboardKey].pumpDetail = {\n ...configuration,\n remote,\n sectionId,\n };\n acc.dashboardPumpDetailDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const experiences = remotes[key].contributes?.experiences;\n Object.keys(experiences).forEach((key) => {\n const experience = experiences[key];\n acc.experiences[key] = {\n ...experience,\n remote,\n sectionId,\n };\n });\n\n return acc;\n };\n","// plugin-extension-manager.ts\n\nimport { loadRemoteModule } from \"@nx/react/mf\";\nimport type { DynamicRemotes } from \"../../types/global\";\nimport type {\n PluginExtension,\n PluginExtensionsType,\n ProcessedContributions,\n} from \"../../types/plugins\";\n\nimport { contributionReducer } from \"./contribution-reducer\";\nimport { applyExtensionReducers } from \"./plugin-extension-registry\";\n\ninterface PluginsType {\n remotes?: DynamicRemotes;\n extensions?: PluginExtensionsType;\n extensionPoints?: Record<string, PluginExtension[]>;\n getExtensions: (extensionPointId: string) => PluginExtension[];\n}\n\nexport async function initPluginManager(\n remotesOverride?: DynamicRemotes\n): Promise<PluginsType> {\n const remotes = remotesOverride ?? window.KosPlugins.__dynamicRemotes;\n\n if (window.KosPlugins.extensions) {\n const extensionPoints = window.KosPlugins.extensions;\n return {\n extensionPoints,\n getExtensions: (extensionPointId: string) =>\n extensionPoints[extensionPointId] || [],\n remotes,\n extensions: window.KosPlugins.__extensions,\n };\n }\n\n const extensions =\n window.KosPlugins.__extensions ?? (await loadExtensions(remotes));\n\n const extensionPoints: Record<string, PluginExtension[]> = {};\n if (extensions) {\n for (const extensionPointId of Object.keys(extensions)) {\n extensionPoints[extensionPointId] = Object.values(\n extensions[extensionPointId] || {}\n );\n }\n }\n\n window.KosPlugins.extensions = extensionPoints;\n\n const getExtensions = (extensionPointId: string) =>\n extensionPoints[extensionPointId] || [];\n\n return { extensionPoints, getExtensions, remotes, extensions };\n}\n\nconst DEFAULT_CONTRIBUTIONS: ProcessedContributions = {\n cuiDefinitions: {},\n controlPourDefinitions: {},\n utilDefinitions: {},\n setupDefinitions: {},\n settingsGroupDefinitions: {},\n settingsDefinitions: {},\n dashboardSummaryDefinitions: {},\n dashboardDetailDefinitions: {},\n dashboardPumpDetailDefinitions: {},\n dashboardDefinitions: {},\n navViewDefinitions: {},\n troubleActionDefinitions: {},\n experiences: {},\n};\n\nexport function getContributions(\n remotes?: DynamicRemotes\n): ProcessedContributions {\n if (!remotes) {\n return DEFAULT_CONTRIBUTIONS;\n }\n return Object.keys(remotes).reduce(contributionReducer(remotes), {\n ...DEFAULT_CONTRIBUTIONS,\n });\n}\n\nexport async function loadExtensions(remotes?: DynamicRemotes) {\n if (!remotes) {\n window.KosPlugins = window.KosPlugins || {};\n return {};\n }\n\n const contributions = getContributions(remotes);\n const experiences = contributions.experiences;\n\n const baseExtensions: PluginExtensionsType = {};\n const reducedExtensions = applyExtensionReducers(\n baseExtensions,\n contributions,\n experiences\n );\n\n for (const remote of Object.values(remotes)) {\n if (remote.init) {\n const InitPlugin = await loadRemoteModule(remote.remote, \"./InitPlugin\");\n if (InitPlugin.default) {\n const initPlugin = new InitPlugin.default();\n initPlugin?.register();\n }\n }\n }\n\n const descriptorBasedExtensions = Object.keys(remotes).reduce((acc, key) => {\n const descriptorViews = remotes[key].contributes?.views ?? {};\n for (const viewKey of Object.keys(descriptorViews)) {\n const viewDefs = descriptorViews[viewKey];\n acc[viewKey] = acc[viewKey] || {};\n for (const viewDef of viewDefs) {\n acc[viewKey][viewDef.id] = {\n id: viewDef.id,\n type: \"view\",\n component: viewDef.component,\n remote: remotes[key].remote,\n sectionId: key,\n data: viewDef,\n };\n }\n }\n\n const extensions = remotes[key].extensions ?? [];\n for (const ext of extensions) {\n acc[ext.extensionPointId] = acc[ext.extensionPointId] || {};\n acc[ext.extensionPointId][ext.id] = {\n id: ext.id,\n type: ext.type,\n component: ext.component,\n remote: remotes[key].remote,\n sectionId: key,\n data: ext,\n };\n }\n\n return acc;\n }, reducedExtensions);\n\n window.KosPlugins = window.KosPlugins || {};\n window.KosPlugins.__extensions = descriptorBasedExtensions;\n return descriptorBasedExtensions;\n}\n\nexport async function getExtensions(extensionPointId: string) {\n const { getExtensions } = await initPluginManager();\n return getExtensions(extensionPointId);\n}\n","import type { PluginExtension } from \"../../types/plugins\";\n\n/**\n * Resolves the best plugin extension for a given extension point.\n *\n * @param extensions A map of plugin extensions keyed by module/plugin ID\n * @param module Optional module ID to resolve\n * @param exact If true, only returns a plugin if the given `module` matches exactly. If false (default), falls back to the best-ranked plugin if no match is found.\n * @returns The resolved PluginExtension or null\n */\nexport function resolveBestExtension<T extends PluginExtension>(\n extensions: Record<string, T> | undefined,\n module?: string,\n exact = false\n): T | null {\n if (!extensions || Object.keys(extensions).length === 0) {\n return null;\n }\n\n // Exact mode: must match the module ID\n if (exact) {\n return module && extensions[module] ? extensions[module] : null;\n }\n\n // Prefer exact match if available\n if (module && extensions[module]) {\n return extensions[module];\n }\n\n // Fallback: pick the best-ranked plugin\n const sorted = Object.values(extensions)\n .filter((ext) => typeof ext.id === \"string\")\n .sort((a, b) => {\n const aRank = typeof a.rank === \"number\" ? a.rank : Infinity;\n const bRank = typeof b.rank === \"number\" ? b.rank : Infinity;\n\n if (aRank === bRank) {\n const aId = a.id ?? \"\";\n const bId = b.id ?? \"\";\n return aId.localeCompare(bId);\n }\n\n return aRank - bRank;\n });\n\n return sorted[0] ?? null;\n}\n"],"names":["dynamicFederation","remoteUrlDefinitions","resolveRemoteUrl","remoteModuleMap","remoteContainerMap","initialSharingScopeCreated","setRemoteUrlResolver","_resolveRemoteUrl","setRemoteDefinitions","definitions","loadRemoteModule","remoteName","moduleName","remoteModuleKey","Module","loadRemoteContainer","fetchRemoteModule","url","resolve","reject","script","request","arg","e","remoteUrl","containerUrl","container","exports","dynamic_federation_1","require$$0","pluginReducer","contributionKey","basePluginType","EXTENSION_POINT","EXTENSION_POINT_DEF","EXTENSION_POINT_VIEW","experiences","contributions","acc","key","id","def","view","contribution","EXTENSION_POINT_CONTROL_POUR_DEF","EXTENSION_POINT_CONTROL_POUR_VIEW","EXTENSION_POINT_CONTROL_POUR","controlPourReducer","EXTENSION_POINT_CUI_DEF","EXTENSION_POINT_CUI_VIEW","EXTENSION_POINT_CUI","cuiReducer","cuiDefinitions","cuiContribution","EXTENSION_POINT_DASHBOARD_DETAIL_DEF","EXTENSION_POINT_DASHBOARD_DETAIL_VIEW","EXTENSION_POINT_DASHBOARD_DETAIL","dashboardDetailReducer","EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_DEF","EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_VIEW","EXTENSION_POINT_DASHBOARD_PUMP_DETAIL","dashboardPumpDetailReducer","EXTENSION_POINT_DASHBOARD","dashboardReducer","EXTENSION_POINT_DASHBOARD_SUMMARY_DEF","EXTENSION_POINT_DASHBOARD_SUMMARY_VIEW","EXTENSION_POINT_DASHBOARD_SUMMARY","dashboardSummaryReducer","EXTENSION_POINT_NAV_VIEW_DEF","EXTENSION_POINT_NAV_VIEW_VIEW","EXTENSION_POINT_NAV_VIEW","navViewReducer","extensionPointRegistry","registerExtensionReducer","reducer","applyExtensionReducers","base","EXTENSION_POINT_SETTINGS_DEF","EXTENSION_POINT_SETTINGS_VIEW","EXTENSION_POINT_SETTINGS_GROUP_DEF","EXTENSION_POINT_SETTINGS","settingsReducer","settingDefinition","settingsGroupDefinition","group","groupDef","defKey","settginsContribution","EXTENSION_POINT_SETUP_DEF","EXTENSION_POINT_SETUP_VIEW","EXTENSION_POINT_SETUP","setupReducer","setupDefinitions","setupContribution","EXTENSION_POINT_TROUBLE_ACTION_DEF","EXTENSION_POINT_TROUBLE_ACTION_VIEW","EXTENSION_POINT_TROUBLE_ACTION","troubleActionReducer","EXTENSION_POINT_UTIL_DEF","EXTENSION_POINT_UTIL_VIEW","EXTENSION_POINT_UTIL","utilReducer","utilDefinitions","utilContribution","c","getQueryParams","query","pair","val","result","getDefaultHost","defaultHost","params","initializeKosPlugins","props","data","pluginBaseUrl","pluginApiPath","overrides","pluginContext","useUiPlugins","remotes","pluginData","_b","_a","allRemotes","item","baseUrl","remote","contributionReducer","sectionId","cuiConfiguration","configuration","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","experience","initPluginManager","remotesOverride","extensionPoints","extensionPointId","extensions","loadExtensions","DEFAULT_CONTRIBUTIONS","getContributions","reducedExtensions","InitPlugin","initPlugin","descriptorBasedExtensions","descriptorViews","viewKey","viewDefs","viewDef","ext","getExtensions","resolveBestExtension","module","exact","a","b","aRank","bRank","aId","bId"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
1
|
+
{"version":3,"file":"resolve-best-extension-DSdPcuL3.cjs","sources":["../../../../node_modules/@nx/react/mf/dynamic-federation.js","../../../../node_modules/@nx/react/mf/index.js","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/plugin-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/control-pour-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/cui-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/dashboard-detail-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/dashboard-pump-detail-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/dashboard-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/dashboard-summary-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/nav-view-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/plugin-extension-registry.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/settings-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/setup-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/state-action-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/util-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/plugin-extension-registry-init.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/initialize-plugins.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/contribution-reducer.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/plugin-extension-manager.ts","../../../../packages/sdk/kos-ui-plugin/src/lib/utils/resolve-best-extension.ts"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.loadRemoteModule = exports.setRemoteDefinitions = exports.setRemoteUrlResolver = void 0;\nlet remoteUrlDefinitions;\nlet resolveRemoteUrl;\nconst remoteModuleMap = new Map();\nconst remoteContainerMap = new Map();\nlet initialSharingScopeCreated = false;\nfunction setRemoteUrlResolver(_resolveRemoteUrl) {\n resolveRemoteUrl = _resolveRemoteUrl;\n}\nexports.setRemoteUrlResolver = setRemoteUrlResolver;\nfunction setRemoteDefinitions(definitions) {\n remoteUrlDefinitions = definitions;\n}\nexports.setRemoteDefinitions = setRemoteDefinitions;\nasync function loadRemoteModule(remoteName, moduleName) {\n const remoteModuleKey = `${remoteName}:${moduleName}`;\n if (remoteModuleMap.has(remoteModuleKey)) {\n return remoteModuleMap.get(remoteModuleKey);\n }\n const container = remoteContainerMap.has(remoteName)\n ? remoteContainerMap.get(remoteName)\n : await loadRemoteContainer(remoteName);\n const factory = await container.get(moduleName);\n const Module = factory();\n remoteModuleMap.set(remoteModuleKey, Module);\n return Module;\n}\nexports.loadRemoteModule = loadRemoteModule;\nconst fetchRemoteModule = (url, remoteName) => {\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n script.src = url;\n script.type = 'text/javascript';\n script.async = true;\n script.onload = () => {\n const proxy = {\n get: (request) => window[remoteName].get(request),\n init: (arg) => {\n try {\n window[remoteName].init(arg);\n }\n catch (e) {\n console.error(`Failed to initialize remote ${remoteName}`, e);\n reject(e);\n }\n },\n };\n resolve(proxy);\n };\n script.onerror = () => reject(new Error(`Remote ${remoteName} not found`));\n document.head.appendChild(script);\n });\n};\nasync function loadRemoteContainer(remoteName) {\n if (!resolveRemoteUrl && !remoteUrlDefinitions) {\n throw new Error('Call setRemoteDefinitions or setRemoteUrlResolver to allow Dynamic Federation to find the remote apps correctly.');\n }\n if (!initialSharingScopeCreated) {\n initialSharingScopeCreated = true;\n await __webpack_init_sharing__('default');\n }\n const remoteUrl = remoteUrlDefinitions\n ? remoteUrlDefinitions[remoteName]\n : await resolveRemoteUrl(remoteName);\n let containerUrl = remoteUrl;\n if (!remoteUrl.endsWith('.mjs') && !remoteUrl.endsWith('.js')) {\n containerUrl = `${remoteUrl}${remoteUrl.endsWith('/') ? '' : '/'}remoteEntry.js`;\n }\n const container = await fetchRemoteModule(containerUrl, remoteName);\n await container.init(__webpack_share_scopes__.default);\n remoteContainerMap.set(remoteName, container);\n return container;\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.setRemoteUrlResolver = exports.setRemoteDefinitions = exports.loadRemoteModule = void 0;\nvar dynamic_federation_1 = require(\"./dynamic-federation\");\nObject.defineProperty(exports, \"loadRemoteModule\", { enumerable: true, get: function () { return dynamic_federation_1.loadRemoteModule; } });\nObject.defineProperty(exports, \"setRemoteDefinitions\", { enumerable: true, get: function () { return dynamic_federation_1.setRemoteDefinitions; } });\nObject.defineProperty(exports, \"setRemoteUrlResolver\", { enumerable: true, get: function () { return dynamic_federation_1.setRemoteUrlResolver; } });\n","import type {\n BaseViewPluginExtension,\n PluginExtensionsType,\n ProcessedContributions,\n} from \"../../types/plugins\";\n\nexport const EXTENSION_POINT_SETUP_DEF = \"ddk.setup\";\nexport const EXTENSION_POINT_SETUP_VIEW = \"ddk.setup.view\";\nexport const EXTENSION_POINT_SETUP = \"ddk.ncui.setup.config\";\n\ninterface PluginReducer {\n contributionKey: string;\n basePluginType: string;\n keys: {\n EXTENSION_POINT_DEF?: string;\n EXTENSION_POINT_VIEW?: string;\n EXTENSION_POINT: string;\n };\n}\nexport const pluginReducer =\n ({\n contributionKey,\n basePluginType,\n keys: { EXTENSION_POINT, EXTENSION_POINT_DEF, EXTENSION_POINT_VIEW },\n }: PluginReducer) =>\n (\n experiences: ProcessedContributions[\"experiences\"],\n contributions: ProcessedContributions\n ) =>\n (acc: PluginExtensionsType, key: string) => {\n const id = key;\n const definitions = contributions[contributionKey];\n const def = definitions[key];\n const view = experiences[def.experienceId] || {};\n\n if (EXTENSION_POINT_DEF) {\n acc[EXTENSION_POINT_DEF] = acc[EXTENSION_POINT_DEF] || {};\n acc[EXTENSION_POINT_DEF][id] = {\n id,\n type: `${basePluginType}.definition`,\n data: def,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n const viewId = view.id;\n if (viewId && EXTENSION_POINT_VIEW) {\n acc[EXTENSION_POINT_VIEW] = acc[EXTENSION_POINT_VIEW] || {};\n acc[EXTENSION_POINT_VIEW][id] = {\n id,\n type: `${basePluginType}.view`,\n data: view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n acc[EXTENSION_POINT] = acc[EXTENSION_POINT] || {};\n const contribution: BaseViewPluginExtension = {\n id,\n type: `${basePluginType}`,\n data: def,\n view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n acc[EXTENSION_POINT][id] = contribution;\n return acc;\n };\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_CONTROL_POUR_DEF = \"cui.control.pour\";\nexport const EXTENSION_POINT_CONTROL_POUR_VIEW = \"cui.control.pour.view\";\nexport const EXTENSION_POINT_CONTROL_POUR = \"cui.control.pour.config\";\n\nexport const controlPourReducer = pluginReducer({\n basePluginType: \"control.pour\",\n contributionKey: \"controlPourDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_CONTROL_POUR,\n EXTENSION_POINT_DEF: EXTENSION_POINT_CONTROL_POUR_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_CONTROL_POUR_VIEW,\n },\n});\n","import type {\n CuiContribution,\n PluginExtensionsType,\n ProcessedContributions,\n} from \"../../types/plugins\";\n\nexport const EXTENSION_POINT_CUI_DEF = \"ddk.cui\";\nexport const EXTENSION_POINT_CUI_VIEW = \"ddk.cui.view\";\nexport const EXTENSION_POINT_CUI = \"ddk.cui.settings.config\";\nexport const cuiReducer =\n (\n experiences: ProcessedContributions[\"experiences\"],\n cuiDefinitions: ProcessedContributions[\"cuiDefinitions\"]\n ) =>\n (acc: PluginExtensionsType, key: string) => {\n const id = key;\n const def = cuiDefinitions[key];\n const view = experiences[def.experienceId] || {};\n acc[EXTENSION_POINT_CUI_DEF] = acc[EXTENSION_POINT_CUI_DEF] || {};\n acc[EXTENSION_POINT_CUI_DEF][id] = {\n id,\n type: \"cui.definition\",\n data: def,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n\n const viewId = view.id;\n if (viewId) {\n acc[EXTENSION_POINT_CUI_VIEW] = acc[EXTENSION_POINT_CUI_VIEW] || {};\n acc[EXTENSION_POINT_CUI_VIEW][id] = {\n id,\n type: \"cui.view\",\n data: view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n acc[EXTENSION_POINT_CUI] = acc[EXTENSION_POINT_CUI] || {};\n const cuiContribution: CuiContribution = {\n id,\n type: \"cui\",\n data: def,\n view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n acc[EXTENSION_POINT_CUI][id] = cuiContribution;\n return acc;\n };\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_DASHBOARD_DETAIL_DEF = \"ddk.dashboard.detail\";\nexport const EXTENSION_POINT_DASHBOARD_DETAIL_VIEW =\n \"ddk.dashboard.detail.view\";\nexport const EXTENSION_POINT_DASHBOARD_DETAIL =\n \"ddk.ncui.dashboard.detail.config\";\nexport const dashboardDetailReducer = pluginReducer({\n basePluginType: \"dashboard.detail\",\n contributionKey: \"dashboardDetailDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_DASHBOARD_DETAIL,\n EXTENSION_POINT_DEF: EXTENSION_POINT_DASHBOARD_DETAIL_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_DASHBOARD_DETAIL_VIEW,\n },\n});\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_DEF =\n \"ddk.dashboard.pump.detail\";\nexport const EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_VIEW =\n \"ddk.dashboard.pump.detail.view\";\nexport const EXTENSION_POINT_DASHBOARD_PUMP_DETAIL =\n \"ddk.dashboard.pump.detail.config\";\n\nexport const dashboardPumpDetailReducer = pluginReducer({\n basePluginType: \"dashboard.pump.detail\",\n contributionKey: \"dashboardPumpDetailDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_DASHBOARD_PUMP_DETAIL,\n EXTENSION_POINT_DEF: EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_VIEW,\n },\n});\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_DASHBOARD = \"ddk.ncui.dashboard.config\";\nexport const dashboardReducer = pluginReducer({\n basePluginType: \"dashboard\",\n contributionKey: \"dashboardDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_DASHBOARD,\n },\n});\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_DASHBOARD_SUMMARY_DEF = \"ddk.dashboard.summary\";\nexport const EXTENSION_POINT_DASHBOARD_SUMMARY_VIEW =\n \"ddk.dashboard.summary.view\";\nexport const EXTENSION_POINT_DASHBOARD_SUMMARY =\n \"ddk.ncui.dashboard.summary.config\";\nexport const dashboardSummaryReducer = pluginReducer({\n basePluginType: \"dashboard.summary\",\n contributionKey: \"dashboardSummaryDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_DASHBOARD_SUMMARY,\n EXTENSION_POINT_DEF: EXTENSION_POINT_DASHBOARD_SUMMARY_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_DASHBOARD_SUMMARY_VIEW,\n },\n});\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_NAV_VIEW_DEF = \"ddk.nav.view\";\nexport const EXTENSION_POINT_NAV_VIEW_VIEW = \"ddk.nav.view.view\";\nexport const EXTENSION_POINT_NAV_VIEW = \"ddk.ncui.nav.view.config\";\n\nexport const navViewReducer = pluginReducer({\n basePluginType: \"nav.view\",\n contributionKey: \"navViewDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_NAV_VIEW,\n EXTENSION_POINT_DEF: EXTENSION_POINT_NAV_VIEW_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_NAV_VIEW_VIEW,\n },\n});\n","// plugin-extension-registry.ts\n\nimport type {\n PluginExtensionsType,\n ProcessedContributions,\n} from \"../../types/plugins\";\n\nexport type ExtensionReducer = (\n extensions: PluginExtensionsType,\n contributions: ProcessedContributions,\n experiences: any\n) => PluginExtensionsType;\n\nconst extensionPointRegistry: ExtensionReducer[] = [];\n\nexport function registerExtensionReducer(reducer: ExtensionReducer) {\n extensionPointRegistry.push(reducer);\n}\n\nexport function applyExtensionReducers(\n base: PluginExtensionsType,\n contributions: ProcessedContributions,\n experiences: any\n): PluginExtensionsType {\n return extensionPointRegistry.reduce(\n (acc, reducer) => reducer(acc, contributions, experiences),\n base\n );\n}\n","import type {\n PluginExtensionsType,\n ProcessedContributions,\n SettingsContribution,\n} from \"../../types/plugins\";\n\nexport const EXTENSION_POINT_SETTINGS_DEF = \"ddk.settings\";\nexport const EXTENSION_POINT_SETTINGS_VIEW = \"ddk.settings.view\";\nexport const EXTENSION_POINT_SETTINGS_GROUP_DEF = \"ddk.settings.group\";\nexport const EXTENSION_POINT_SETTINGS = \"ddk.ncui.settings.config\";\n\nexport const settingsReducer =\n (\n experiences: ProcessedContributions[\"experiences\"],\n settingDefinition: ProcessedContributions[\"settingsDefinitions\"],\n settingsGroupDefinition: ProcessedContributions[\"settingsGroupDefinitions\"]\n ) =>\n (acc: PluginExtensionsType, group: string) => {\n const groupDef = settingsGroupDefinition[group];\n acc[EXTENSION_POINT_SETTINGS_GROUP_DEF] =\n acc[EXTENSION_POINT_SETTINGS_GROUP_DEF] || {};\n acc[EXTENSION_POINT_SETTINGS_GROUP_DEF][group] = {\n id: group,\n type: \"settings.group\",\n data: settingsGroupDefinition[group],\n remote: groupDef.remote,\n sectionId: groupDef.sectionId,\n };\n\n const defKeys = Object.entries(settingDefinition)\n .filter(([, def]) => def.settingsGroup === group)\n .map(([defKey]) => defKey);\n\n defKeys.forEach((key) => {\n const id = key;\n\n const def = settingDefinition[key];\n const view = experiences[def.experienceId] || {};\n acc[EXTENSION_POINT_SETTINGS_GROUP_DEF][group].data.settings = [\n ...acc[EXTENSION_POINT_SETTINGS_GROUP_DEF][group].data.settings,\n id,\n ];\n acc[EXTENSION_POINT_SETTINGS_DEF] =\n acc[EXTENSION_POINT_SETTINGS_DEF] || {};\n acc[EXTENSION_POINT_SETTINGS_DEF][id] = {\n id,\n type: \"settings.definition\",\n data: def,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n\n const viewId = view.id;\n if (viewId) {\n acc[EXTENSION_POINT_SETTINGS_VIEW] =\n acc[EXTENSION_POINT_SETTINGS_VIEW] || {};\n acc[EXTENSION_POINT_SETTINGS_VIEW][id] = {\n id,\n type: \"settings.view\",\n data: view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n acc[EXTENSION_POINT_SETTINGS] = acc[EXTENSION_POINT_SETTINGS] || {};\n const settginsContribution: SettingsContribution = {\n id,\n type: \"settings\",\n data: def,\n view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n acc[EXTENSION_POINT_SETTINGS][id] = settginsContribution;\n });\n\n return acc;\n };\n","import type {\n PluginExtensionsType,\n ProcessedContributions,\n SetupContribution,\n} from \"../../types/plugins\";\n\nexport const EXTENSION_POINT_SETUP_DEF = \"ddk.setup\";\nexport const EXTENSION_POINT_SETUP_VIEW = \"ddk.setup.view\";\nexport const EXTENSION_POINT_SETUP = \"ddk.ncui.setup.config\";\n\nexport const setupReducer =\n (\n experiences: ProcessedContributions[\"experiences\"],\n setupDefinitions: ProcessedContributions[\"setupDefinitions\"]\n ) =>\n (acc: PluginExtensionsType, key: string) => {\n const id = key;\n const def = setupDefinitions[key];\n const view = experiences[def.experienceId] || {};\n acc[EXTENSION_POINT_SETUP_DEF] = acc[EXTENSION_POINT_SETUP_DEF] || {};\n acc[EXTENSION_POINT_SETUP_DEF][id] = {\n id,\n type: \"setup.definition\",\n data: def,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n\n const viewId = view.id;\n if (viewId) {\n acc[EXTENSION_POINT_SETUP_VIEW] = acc[EXTENSION_POINT_SETUP_VIEW] || {};\n acc[EXTENSION_POINT_SETUP_VIEW][id] = {\n id,\n type: \"setup.view\",\n data: view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n acc[EXTENSION_POINT_SETUP] = acc[EXTENSION_POINT_SETUP] || {};\n const setupContribution: SetupContribution = {\n id,\n type: \"setup\",\n data: def,\n view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n acc[EXTENSION_POINT_SETUP][id] = setupContribution;\n return acc;\n };\n","import { pluginReducer } from \"./plugin-reducer\";\n\nexport const EXTENSION_POINT_TROUBLE_ACTION_DEF = \"ddk.trouble.action\";\nexport const EXTENSION_POINT_TROUBLE_ACTION_VIEW = \"ddk.trouble.action.view\";\nexport const EXTENSION_POINT_TROUBLE_ACTION = \"ddk.ncui.trouble.action.config\";\n\nexport const troubleActionReducer = pluginReducer({\n basePluginType: \"trouble.action\",\n contributionKey: \"troubleActionDefinitions\",\n keys: {\n EXTENSION_POINT: EXTENSION_POINT_TROUBLE_ACTION,\n EXTENSION_POINT_DEF: EXTENSION_POINT_TROUBLE_ACTION_DEF,\n EXTENSION_POINT_VIEW: EXTENSION_POINT_TROUBLE_ACTION_VIEW,\n },\n});\n","import type {\n PluginExtensionsType,\n ProcessedContributions,\n UtilContribution,\n} from \"../../types/plugins\";\n\nexport const EXTENSION_POINT_UTIL_DEF = \"ddk.utilities\";\nexport const EXTENSION_POINT_UTIL_VIEW = \"ddk.utilities.view\";\nexport const EXTENSION_POINT_UTIL = \"ddk.ncui.utils.config\";\nexport const utilReducer =\n (\n experiences: ProcessedContributions[\"experiences\"],\n utilDefinitions: ProcessedContributions[\"utilDefinitions\"]\n ) =>\n (acc: PluginExtensionsType, key: string) => {\n const id = key;\n const def = utilDefinitions[key];\n const view = experiences[def.experienceId] || {};\n acc[EXTENSION_POINT_UTIL_DEF] = acc[EXTENSION_POINT_UTIL_DEF] || {};\n acc[EXTENSION_POINT_UTIL_DEF][id] = {\n id,\n type: \"utility.definition\",\n data: def,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n\n const viewId = view.id;\n if (viewId) {\n acc[EXTENSION_POINT_UTIL_VIEW] = acc[EXTENSION_POINT_UTIL_VIEW] || {};\n acc[EXTENSION_POINT_UTIL_VIEW][id] = {\n id,\n type: \"utilities.view\",\n data: view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n }\n acc[EXTENSION_POINT_UTIL] = acc[EXTENSION_POINT_UTIL] || {};\n const utilContribution: UtilContribution = {\n id,\n type: \"utility\",\n data: def,\n view,\n remote: def.remote,\n sectionId: def.sectionId,\n };\n acc[EXTENSION_POINT_UTIL][id] = utilContribution;\n\n return acc;\n };\n","// plugin-extension-registry-init.ts\nimport { controlPourReducer } from \"./control-pour-reducer\";\nimport { cuiReducer } from \"./cui-reducer\";\nimport { dashboardDetailReducer } from \"./dashboard-detail-reducer\";\nimport { dashboardPumpDetailReducer } from \"./dashboard-pump-detail-reducer\";\nimport { dashboardReducer } from \"./dashboard-reducer\";\nimport { dashboardSummaryReducer } from \"./dashboard-summary-reducer\";\nimport { navViewReducer } from \"./nav-view-reducer\";\nimport { registerExtensionReducer } from \"./plugin-extension-registry\";\nimport { settingsReducer } from \"./settings-reducer\";\nimport { setupReducer } from \"./setup-reducer\";\nimport { troubleActionReducer } from \"./state-action-reducer\";\nimport { utilReducer } from \"./util-reducer\";\n\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.cuiDefinitions).reduce(cuiReducer(e, c.cuiDefinitions), acc)\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.utilDefinitions).reduce(utilReducer(e, c.utilDefinitions), acc)\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.setupDefinitions).reduce(\n setupReducer(e, c.setupDefinitions),\n acc\n )\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.troubleActionDefinitions).reduce(\n troubleActionReducer(e, c),\n acc\n )\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.navViewDefinitions).reduce(navViewReducer(e, c), acc)\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.dashboardSummaryDefinitions).reduce(\n dashboardSummaryReducer(e, c),\n acc\n )\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.dashboardDetailDefinitions).reduce(\n dashboardDetailReducer(e, c),\n acc\n )\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.dashboardPumpDetailDefinitions).reduce(\n dashboardPumpDetailReducer(e, c),\n acc\n )\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.dashboardDefinitions).reduce(dashboardReducer(e, c), acc)\n);\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.settingsGroupDefinitions).reduce(\n settingsReducer(e, c.settingsDefinitions, c.settingsGroupDefinitions),\n acc\n )\n);\n\nregisterExtensionReducer((acc, c, e) =>\n Object.keys(c.controlPourDefinitions).reduce(controlPourReducer(e, c), acc)\n);\n","import { setRemoteDefinitions } from \"@nx/react/mf\";\nimport type { Contributions, DynamicRemotes } from \"../../types/global\";\nimport type {\n PluginExtension,\n PluginExtensionsType,\n} from \"../../types/plugins\";\nimport \"./plugin-extension-registry-init\";\n\ndeclare interface KosPluginsType {\n __dynamicRemotes: DynamicRemotes;\n __extensions?: PluginExtensionsType;\n extensions?: Record<string, PluginExtension[]>;\n}\ndeclare global {\n interface Window {\n KosPlugins: KosPluginsType;\n }\n}\n\nexport interface Extensions {\n extensionPointId: string;\n id: string;\n component: string;\n}\n\nexport interface Descriptor {\n id: string;\n baseUrl: string;\n descriptor: {\n id: string;\n extensions: Extensions[];\n contributes: Contributions;\n };\n}\n\ninterface KosPluginsProps {\n pluginBaseUrl?: string;\n pluginApiPath?: string;\n pluginContext?: {\n context: string;\n group: string;\n };\n overrides?: Record<string, string>;\n}\n\n/**\n * Parses the query string from the URL or a provided string and returns an object\n * representing the key-value pairs in the query string.\n *\n * @param query - An optional query string to parse. If not provided, the function\n * will use the current window's `location.search` string.\n * The query string should not include the leading \"?\" character.\n *\n * @returns An object where each key is a parameter name from the query string,\n * and each value is the corresponding decoded parameter value.\n *\n * @example\n * // Assuming the URL is: https://example.com/?name=John&age=30\n * getQueryParams();\n * // Returns: { name: \"John\", age: \"30\" }\n *\n * @example\n * getQueryParams(\"foo=bar&baz=qux\");\n * // Returns: { foo: \"bar\", baz: \"qux\" }\n */\nexport const getQueryParams = (query = null) =>\n (query || window.location.search.replace(\"?\", \"\"))\n\n // get array of KeyValue pairs\n .split(\"&\")\n\n // Decode values\n .map((pair) => {\n const [key, val] = pair.split(\"=\");\n\n return [key, decodeURIComponent(val || \"\")];\n })\n\n // array to object\n .reduce((result, [key, val]) => {\n result[key] = val;\n return result;\n }, {});\n\nconst getDefaultHost = () => {\n const defaultHost = window.location.origin;\n const params = getQueryParams();\n const hostUrl = (params as any)?.host;\n const result = hostUrl || defaultHost;\n return result;\n};\n// eslint-disable-next-line no-restricted-globals\n\n/**\n * Initializes KOS plugins by fetching plugin metadata and configuring dynamic remotes.\n *\n * @param props - Optional properties to configure the plugin initialization.\n * @param props.pluginBaseUrl - The base URL for the plugins. Defaults to the result of `getDefaultHost()`.\n * @param props.pluginApiPath - The API path to fetch plugin metadata. Defaults to `\"/api/app/kosdev.ddk/ncui/plugins\"`.\n * @param props.overrides - An object containing overrides for plugin base URLs, keyed by plugin ID.\n * @param props.pluginContext - An optional context object that specifies the plugin context and group.\n * If provided, the function will fetch plugins from the UI plugins endpoint. Otherwise,\n * it will fetch from the DDK pluging endpoint.\n *\n * @returns A promise that resolves to a record of remote definitions, where the keys are remote IDs\n * and the values are the corresponding base paths for the remote entries.\n *\n * @remarks\n * - This function fetches plugin metadata from the specified API endpoint and processes the data\n * to configure dynamic remotes for the KOS plugin system.\n * - If a plugin does not have a descriptor, an error is logged to the console.\n * - The remote definitions are also set using the `setRemoteDefinitions` function.\n *\n * @throws Will throw an error if the fetch request fails or if the response cannot be parsed as JSON.\n */\nexport const initializeKosPlugins = async (props?: KosPluginsProps) => {\n const defaultHost = getDefaultHost();\n const data = props ?? {};\n const {\n pluginBaseUrl = defaultHost,\n pluginApiPath = \"/api/app/kosdev.ddk/ncui/plugins\",\n overrides = {},\n pluginContext,\n } = data;\n\n const useUiPlugins = !!pluginContext;\n\n const url = useUiPlugins\n ? `${pluginBaseUrl}/api/kos/ui/plugins/context/${pluginContext.context}`\n : `${pluginBaseUrl}${pluginApiPath}`;\n\n console.log(\n `initialize-plugins: Using Plugin Framework: ${useUiPlugins}: Fetching plugins from ${url}`\n );\n const plugins = await fetch(url);\n const remotes = await plugins.json();\n\n const pluginData = useUiPlugins\n ? remotes.data?.groups?.[pluginContext.group] ?? []\n : remotes.data ?? [];\n\n const allRemotes = pluginData?.reduce((acc, item) => {\n const baseUrl =\n overrides?.[item.id] ?? useUiPlugins\n ? `${pluginBaseUrl}${item.path}`\n : `${pluginBaseUrl}${item.baseUrl}`;\n if (item.descriptor) {\n acc[item.id] = {\n basePath: `${baseUrl}remoteEntry.js`,\n extensions: item.descriptor.extensions,\n contributes: item.descriptor.contributes,\n remote: item.descriptor.id,\n init: !!item.descriptor.init,\n };\n } else {\n console.error(\n `initialize-plugins: Plugin ${item.id} does not have a descriptor`\n );\n }\n return acc;\n }, {} as DynamicRemotes);\n window.KosPlugins = window.KosPlugins || {};\n window.KosPlugins.__dynamicRemotes = allRemotes;\n const definitions = Object.keys(allRemotes).reduce((acc, item) => {\n const remote = allRemotes[item].remote;\n acc[remote] = allRemotes[item].basePath;\n return acc;\n }, {} as Record<string, string>);\n setRemoteDefinitions(definitions);\n return definitions;\n};\n","import type { DynamicRemotes } from \"../../types/global\";\nimport type { ProcessedContributions } from \"../../types/plugins\";\n\nexport const contributionReducer =\n (remotes: DynamicRemotes) => (acc: ProcessedContributions, key: string) => {\n acc.cuiDefinitions = acc.cuiDefinitions || {};\n\n const remote = remotes[key].remote;\n const sectionId = key;\n const cuiConfigurations = remotes[key].contributes?.cui || [];\n cuiConfigurations.forEach((cuiConfiguration) => {\n acc.cuiDefinitions[cuiConfiguration.id] = {\n ...cuiConfiguration,\n cuiDescriptor: sectionId,\n remote,\n sectionId,\n };\n });\n\n const navViewConfigurations = remotes[key].contributes?.navViews || [];\n navViewConfigurations.forEach((configuration) => {\n acc.navViewDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n const utilConfigurations = remotes[key].contributes?.utilities || [];\n utilConfigurations.forEach((configuration) => {\n acc.utilDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const setupConfigurations = remotes[key].contributes?.setupStep || [];\n setupConfigurations.forEach((configuration) => {\n acc.setupDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const troubleActionConfigurations =\n remotes[key].contributes?.troubleActions || [];\n troubleActionConfigurations.forEach((configuration) => {\n acc.troubleActionDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const controlPourConfigurations =\n remotes[key].contributes?.controlPour || [];\n controlPourConfigurations.forEach((configuration) => {\n acc.controlPourDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const settingsGroupConfigurations =\n remotes[key].contributes?.settingsGroup || [];\n settingsGroupConfigurations.forEach((configuration) => {\n acc.settingsGroupDefinitions[configuration.id] = {\n ...configuration,\n settings: [],\n remote,\n sectionId,\n };\n });\n\n const settingsConfigurations = remotes[key].contributes?.settings || [];\n settingsConfigurations.forEach((configuration) => {\n acc.settingsDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const dashboardSummaryConfigurations =\n remotes[key].contributes?.dashboardSummary || [];\n dashboardSummaryConfigurations.forEach((configuration) => {\n acc.dashboardDefinitions[configuration.dashboardKey] =\n acc.dashboardDefinitions[configuration.dashboardKey] || {};\n acc.dashboardDefinitions[configuration.dashboardKey].summary = {\n ...configuration,\n remote,\n sectionId,\n };\n acc.dashboardSummaryDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const dashboardDetailConfigurations =\n remotes[key].contributes?.dashboardDetail || [];\n dashboardDetailConfigurations.forEach((configuration) => {\n acc.dashboardDefinitions[configuration.dashboardKey] =\n acc.dashboardDefinitions[configuration.dashboardKey] || {};\n acc.dashboardDefinitions[configuration.dashboardKey].detail = {\n ...configuration,\n remote,\n sectionId,\n };\n acc.dashboardDetailDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const dashboardDetailPumpConfigurations =\n remotes[key].contributes?.dashboardPumpDetail || [];\n dashboardDetailPumpConfigurations.forEach((configuration) => {\n acc.dashboardDefinitions[configuration.dashboardKey] =\n acc.dashboardDefinitions[configuration.dashboardKey] || {};\n acc.dashboardDefinitions[configuration.dashboardKey].pumpDetail = {\n ...configuration,\n remote,\n sectionId,\n };\n acc.dashboardPumpDetailDefinitions[configuration.id] = {\n ...configuration,\n remote,\n sectionId,\n };\n });\n\n const experiences = remotes[key].contributes?.experiences;\n Object.keys(experiences).forEach((key) => {\n const experience = experiences[key];\n acc.experiences[key] = {\n ...experience,\n remote,\n sectionId,\n };\n });\n\n return acc;\n };\n","// plugin-extension-manager.ts\n\nimport { loadRemoteModule } from \"@nx/react/mf\";\nimport type { DynamicRemotes } from \"../../types/global\";\nimport type {\n PluginExtension,\n PluginExtensionsType,\n ProcessedContributions,\n} from \"../../types/plugins\";\n\nimport { contributionReducer } from \"./contribution-reducer\";\nimport { applyExtensionReducers } from \"./plugin-extension-registry\";\n\ninterface PluginsType {\n remotes?: DynamicRemotes;\n extensions?: PluginExtensionsType;\n extensionPoints?: Record<string, PluginExtension[]>;\n getExtensions: (extensionPointId: string) => PluginExtension[];\n}\n\nexport async function initPluginManager(\n remotesOverride?: DynamicRemotes\n): Promise<PluginsType> {\n const remotes = remotesOverride ?? window.KosPlugins.__dynamicRemotes;\n\n if (window.KosPlugins.extensions) {\n const extensionPoints = window.KosPlugins.extensions;\n return {\n extensionPoints,\n getExtensions: (extensionPointId: string) =>\n extensionPoints[extensionPointId] || [],\n remotes,\n extensions: window.KosPlugins.__extensions,\n };\n }\n\n const extensions =\n window.KosPlugins.__extensions ?? (await loadExtensions(remotes));\n\n const extensionPoints: Record<string, PluginExtension[]> = {};\n if (extensions) {\n for (const extensionPointId of Object.keys(extensions)) {\n extensionPoints[extensionPointId] = Object.values(\n extensions[extensionPointId] || {}\n );\n }\n }\n\n window.KosPlugins.extensions = extensionPoints;\n\n const getExtensions = (extensionPointId: string) =>\n extensionPoints[extensionPointId] || [];\n\n return { extensionPoints, getExtensions, remotes, extensions };\n}\n\nconst DEFAULT_CONTRIBUTIONS: ProcessedContributions = {\n cuiDefinitions: {},\n controlPourDefinitions: {},\n utilDefinitions: {},\n setupDefinitions: {},\n settingsGroupDefinitions: {},\n settingsDefinitions: {},\n dashboardSummaryDefinitions: {},\n dashboardDetailDefinitions: {},\n dashboardPumpDetailDefinitions: {},\n dashboardDefinitions: {},\n navViewDefinitions: {},\n troubleActionDefinitions: {},\n experiences: {},\n};\n\nexport function getContributions(\n remotes?: DynamicRemotes\n): ProcessedContributions {\n if (!remotes) {\n return DEFAULT_CONTRIBUTIONS;\n }\n return Object.keys(remotes).reduce(contributionReducer(remotes), {\n ...DEFAULT_CONTRIBUTIONS,\n });\n}\n\nexport async function loadExtensions(remotes?: DynamicRemotes) {\n if (!remotes) {\n window.KosPlugins = window.KosPlugins || {};\n return {};\n }\n\n const contributions = getContributions(remotes);\n const experiences = contributions.experiences;\n\n const baseExtensions: PluginExtensionsType = {};\n const reducedExtensions = applyExtensionReducers(\n baseExtensions,\n contributions,\n experiences\n );\n\n for (const remote of Object.values(remotes)) {\n if (remote.init) {\n const InitPlugin = await loadRemoteModule(remote.remote, \"./InitPlugin\");\n if (InitPlugin.default) {\n const initPlugin = new InitPlugin.default();\n initPlugin?.register();\n }\n }\n }\n\n const descriptorBasedExtensions = Object.keys(remotes).reduce((acc, key) => {\n const descriptorViews = remotes[key].contributes?.views ?? {};\n for (const viewKey of Object.keys(descriptorViews)) {\n const viewDefs = descriptorViews[viewKey];\n acc[viewKey] = acc[viewKey] || {};\n for (const viewDef of viewDefs) {\n acc[viewKey][viewDef.id] = {\n id: viewDef.id,\n type: \"view\",\n component: viewDef.component,\n remote: remotes[key].remote,\n sectionId: key,\n data: viewDef,\n };\n }\n }\n\n const extensions = remotes[key].extensions ?? [];\n for (const ext of extensions) {\n acc[ext.extensionPointId] = acc[ext.extensionPointId] || {};\n acc[ext.extensionPointId][ext.id] = {\n id: ext.id,\n type: ext.type,\n component: ext.component,\n remote: remotes[key].remote,\n sectionId: key,\n data: ext,\n };\n }\n\n return acc;\n }, reducedExtensions);\n\n window.KosPlugins = window.KosPlugins || {};\n window.KosPlugins.__extensions = descriptorBasedExtensions;\n return descriptorBasedExtensions;\n}\n\nexport async function getExtensions(extensionPointId: string) {\n const { getExtensions } = await initPluginManager();\n return getExtensions(extensionPointId);\n}\n","import type { PluginExtension } from \"../../types/plugins\";\n\n/**\n * Resolves the best plugin extension for a given extension point.\n *\n * @param extensions A map of plugin extensions keyed by module/plugin ID\n * @param module Optional module ID to resolve\n * @param exact If true, only returns a plugin if the given `module` matches exactly. If false (default), falls back to the best-ranked plugin if no match is found.\n * @returns The resolved PluginExtension or null\n */\nexport function resolveBestExtension<T extends PluginExtension>(\n extensions: Record<string, T> | undefined,\n module?: string,\n exact = false\n): T | null {\n if (!extensions || Object.keys(extensions).length === 0) {\n return null;\n }\n\n // Exact mode: must match the module ID\n if (exact) {\n return module && extensions[module] ? extensions[module] : null;\n }\n\n // Prefer exact match if available\n if (module && extensions[module]) {\n return extensions[module];\n }\n\n // Fallback: pick the best-ranked plugin\n const sorted = Object.values(extensions)\n .filter((ext) => typeof ext.id === \"string\")\n .sort((a, b) => {\n const aRank = typeof a.rank === \"number\" ? a.rank : Infinity;\n const bRank = typeof b.rank === \"number\" ? b.rank : Infinity;\n\n if (aRank === bRank) {\n const aId = a.id ?? \"\";\n const bId = b.id ?? \"\";\n return aId.localeCompare(bId);\n }\n\n return aRank - bRank;\n });\n\n return sorted[0] ?? null;\n}\n"],"names":["dynamicFederation","remoteUrlDefinitions","resolveRemoteUrl","remoteModuleMap","remoteContainerMap","initialSharingScopeCreated","setRemoteUrlResolver","_resolveRemoteUrl","setRemoteDefinitions","definitions","loadRemoteModule","remoteName","moduleName","remoteModuleKey","Module","loadRemoteContainer","fetchRemoteModule","url","resolve","reject","script","request","arg","e","remoteUrl","containerUrl","container","exports","dynamic_federation_1","require$$0","pluginReducer","contributionKey","basePluginType","EXTENSION_POINT","EXTENSION_POINT_DEF","EXTENSION_POINT_VIEW","experiences","contributions","acc","key","id","def","view","contribution","EXTENSION_POINT_CONTROL_POUR_DEF","EXTENSION_POINT_CONTROL_POUR_VIEW","EXTENSION_POINT_CONTROL_POUR","controlPourReducer","EXTENSION_POINT_CUI_DEF","EXTENSION_POINT_CUI_VIEW","EXTENSION_POINT_CUI","cuiReducer","cuiDefinitions","cuiContribution","EXTENSION_POINT_DASHBOARD_DETAIL_DEF","EXTENSION_POINT_DASHBOARD_DETAIL_VIEW","EXTENSION_POINT_DASHBOARD_DETAIL","dashboardDetailReducer","EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_DEF","EXTENSION_POINT_DASHBOARD_PUMP_DETAIL_VIEW","EXTENSION_POINT_DASHBOARD_PUMP_DETAIL","dashboardPumpDetailReducer","EXTENSION_POINT_DASHBOARD","dashboardReducer","EXTENSION_POINT_DASHBOARD_SUMMARY_DEF","EXTENSION_POINT_DASHBOARD_SUMMARY_VIEW","EXTENSION_POINT_DASHBOARD_SUMMARY","dashboardSummaryReducer","EXTENSION_POINT_NAV_VIEW_DEF","EXTENSION_POINT_NAV_VIEW_VIEW","EXTENSION_POINT_NAV_VIEW","navViewReducer","extensionPointRegistry","registerExtensionReducer","reducer","applyExtensionReducers","base","EXTENSION_POINT_SETTINGS_DEF","EXTENSION_POINT_SETTINGS_VIEW","EXTENSION_POINT_SETTINGS_GROUP_DEF","EXTENSION_POINT_SETTINGS","settingsReducer","settingDefinition","settingsGroupDefinition","group","groupDef","defKey","settginsContribution","EXTENSION_POINT_SETUP_DEF","EXTENSION_POINT_SETUP_VIEW","EXTENSION_POINT_SETUP","setupReducer","setupDefinitions","setupContribution","EXTENSION_POINT_TROUBLE_ACTION_DEF","EXTENSION_POINT_TROUBLE_ACTION_VIEW","EXTENSION_POINT_TROUBLE_ACTION","troubleActionReducer","EXTENSION_POINT_UTIL_DEF","EXTENSION_POINT_UTIL_VIEW","EXTENSION_POINT_UTIL","utilReducer","utilDefinitions","utilContribution","c","getQueryParams","query","pair","val","result","getDefaultHost","defaultHost","params","initializeKosPlugins","props","data","pluginBaseUrl","pluginApiPath","overrides","pluginContext","useUiPlugins","remotes","pluginData","_b","_a","allRemotes","item","baseUrl","remote","contributionReducer","sectionId","cuiConfiguration","configuration","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","experience","initPluginManager","remotesOverride","extensionPoints","extensionPointId","extensions","loadExtensions","DEFAULT_CONTRIBUTIONS","getContributions","reducedExtensions","InitPlugin","initPlugin","descriptorBasedExtensions","descriptorViews","viewKey","viewDefs","viewDef","ext","getExtensions","resolveBestExtension","module","exact","a","b","aRank","bRank","aId","bId"],"mappings":"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","x_google_ignoreList":[0,1]}
|