@e-llm-studio/instant-learning 1.3.3 → 1.3.5

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.
Files changed (62) hide show
  1. package/dist/ILMarketplaceWrapper.js +3 -0
  2. package/dist/ILMarketplaceWrapper.js.map +1 -1
  3. package/dist/cjs/ILMarketplaceWrapper.js +3 -0
  4. package/dist/cjs/ILMarketplaceWrapper.js.map +1 -1
  5. package/dist/cjs/features/IL-OTJ/ValueTypeWrappers/TeachMePlugin.js +5 -2
  6. package/dist/cjs/features/IL-OTJ/ValueTypeWrappers/TeachMePlugin.js.map +1 -1
  7. package/dist/cjs/features/IL-OTJ/_components/ChatComponents/ChatComponent.js +12 -4
  8. package/dist/cjs/features/IL-OTJ/_components/ChatComponents/ChatComponent.js.map +1 -1
  9. package/dist/cjs/features/IL-OTJ/_components/ChatComponents/NormalChat.js +13 -4
  10. package/dist/cjs/features/IL-OTJ/_components/ChatComponents/NormalChat.js.map +1 -1
  11. package/dist/cjs/features/IL-marketplace/PromoteFlow/EnvironmentConfigurationModal.js +41 -4
  12. package/dist/cjs/features/IL-marketplace/PromoteFlow/EnvironmentConfigurationModal.js.map +1 -1
  13. package/dist/cjs/features/IL-marketplace/PromoteFlow/PromoteFlow.js +444 -169
  14. package/dist/cjs/features/IL-marketplace/PromoteFlow/PromoteFlow.js.map +1 -1
  15. package/dist/cjs/features/IL-marketplace/PromoteFlow/PromoteFlow.module.css.js +2 -2
  16. package/dist/cjs/features/IL-marketplace/PromoteFlow/promote-flow.api.js +19 -2
  17. package/dist/cjs/features/IL-marketplace/PromoteFlow/promote-flow.api.js.map +1 -1
  18. package/dist/cjs/features/IL-marketplace/PromoteFlow/promote-flow.store.js +7 -0
  19. package/dist/cjs/features/IL-marketplace/PromoteFlow/promote-flow.store.js.map +1 -1
  20. package/dist/cjs/features/InstantLearning/InstantLearning.js +1 -0
  21. package/dist/cjs/features/InstantLearning/InstantLearning.js.map +1 -1
  22. package/dist/cjs/features/InstantLearning/_components/ChatComponent.js +3 -1
  23. package/dist/cjs/features/InstantLearning/_components/ChatComponent.js.map +1 -1
  24. package/dist/cjs/features/InstantLearning/_components/ContextualChatComponent.js +3 -1
  25. package/dist/cjs/features/InstantLearning/_components/ContextualChatComponent.js.map +1 -1
  26. package/dist/features/IL-OTJ/ValueTypeWrappers/TeachMePlugin.js +5 -2
  27. package/dist/features/IL-OTJ/ValueTypeWrappers/TeachMePlugin.js.map +1 -1
  28. package/dist/features/IL-OTJ/_components/ChatComponents/ChatComponent.js +12 -4
  29. package/dist/features/IL-OTJ/_components/ChatComponents/ChatComponent.js.map +1 -1
  30. package/dist/features/IL-OTJ/_components/ChatComponents/NormalChat.js +13 -4
  31. package/dist/features/IL-OTJ/_components/ChatComponents/NormalChat.js.map +1 -1
  32. package/dist/features/IL-marketplace/PromoteFlow/EnvironmentConfigurationModal.js +41 -4
  33. package/dist/features/IL-marketplace/PromoteFlow/EnvironmentConfigurationModal.js.map +1 -1
  34. package/dist/features/IL-marketplace/PromoteFlow/PromoteFlow.js +446 -171
  35. package/dist/features/IL-marketplace/PromoteFlow/PromoteFlow.js.map +1 -1
  36. package/dist/features/IL-marketplace/PromoteFlow/PromoteFlow.module.css.js +2 -2
  37. package/dist/features/IL-marketplace/PromoteFlow/promote-flow.api.js +17 -3
  38. package/dist/features/IL-marketplace/PromoteFlow/promote-flow.api.js.map +1 -1
  39. package/dist/features/IL-marketplace/PromoteFlow/promote-flow.store.js +7 -0
  40. package/dist/features/IL-marketplace/PromoteFlow/promote-flow.store.js.map +1 -1
  41. package/dist/features/InstantLearning/InstantLearning.js +1 -0
  42. package/dist/features/InstantLearning/InstantLearning.js.map +1 -1
  43. package/dist/features/InstantLearning/_components/ChatComponent.js +3 -1
  44. package/dist/features/InstantLearning/_components/ChatComponent.js.map +1 -1
  45. package/dist/features/InstantLearning/_components/ContextualChatComponent.js +3 -1
  46. package/dist/features/InstantLearning/_components/ContextualChatComponent.js.map +1 -1
  47. package/dist/types/src/ILMarketplaceWrapper.d.ts.map +1 -1
  48. package/dist/types/src/features/IL-OTJ/ValueTypeWrappers/TeachMePlugin.d.ts.map +1 -1
  49. package/dist/types/src/features/IL-OTJ/_components/ChatComponents/ChatComponent.d.ts.map +1 -1
  50. package/dist/types/src/features/IL-OTJ/_components/ChatComponents/NormalChat.d.ts.map +1 -1
  51. package/dist/types/src/features/IL-marketplace/PromoteFlow/EnvironmentConfigurationModal.d.ts.map +1 -1
  52. package/dist/types/src/features/IL-marketplace/PromoteFlow/PromoteFlow.d.ts.map +1 -1
  53. package/dist/types/src/features/IL-marketplace/PromoteFlow/promote-flow.api.d.ts +5 -2
  54. package/dist/types/src/features/IL-marketplace/PromoteFlow/promote-flow.api.d.ts.map +1 -1
  55. package/dist/types/src/features/IL-marketplace/PromoteFlow/promote-flow.interfaces.d.ts +26 -1
  56. package/dist/types/src/features/IL-marketplace/PromoteFlow/promote-flow.interfaces.d.ts.map +1 -1
  57. package/dist/types/src/features/IL-marketplace/PromoteFlow/promote-flow.store.d.ts +3 -1
  58. package/dist/types/src/features/IL-marketplace/PromoteFlow/promote-flow.store.d.ts.map +1 -1
  59. package/dist/types/src/features/InstantLearning/InstantLearning.d.ts.map +1 -1
  60. package/dist/types/src/features/InstantLearning/_components/ChatComponent.d.ts.map +1 -1
  61. package/dist/types/src/features/InstantLearning/_components/ContextualChatComponent.d.ts.map +1 -1
  62. package/package.json +4 -5
@@ -67,9 +67,12 @@ const TeachMePluginInner = ({
67
67
  useAuthStore.getState().setUser({ ...useAuthStore.getState().user, accessToken: token });
68
68
  useEnvStore.getState().setLlmStudioUrl(config == null ? void 0 : config.BASE_URL);
69
69
  useLearningTemplateStore.getState().setAppIntegrationId(app_integration_id != null ? app_integration_id : "");
70
+ if (token) {
71
+ useLearningTemplateStore.getState().setToken(token);
72
+ }
70
73
  useLearningTemplateStore.getState().setSelectedRuleSetId((_b = (_a2 = pluginPayload == null ? void 0 : pluginPayload.ruleSet) == null ? void 0 : _a2.ruleSetId) != null ? _b : null);
71
74
  if (!token || !(config == null ? void 0 : config.BASE_URL)) return;
72
- if (tiers.length === 0 && !(pluginPayload == null ? void 0 : pluginPayload.tiers)) fetchTiers();
75
+ if ((tiers.length === 0 || isOpen) && !(pluginPayload == null ? void 0 : pluginPayload.tiers)) void fetchTiers();
73
76
  if (app_integration_id && !useEnvStore.getState().rbacConfig) {
74
77
  fetchRBACConfig(app_integration_id, token).then((data) => {
75
78
  var _a3, _b2, _c, _d, _e, _f, _g, _h, _i, _j;
@@ -88,7 +91,7 @@ const TeachMePluginInner = ({
88
91
  console.error("Error fetching RBAC config for TeachMePlugin:", error);
89
92
  });
90
93
  }
91
- }, [app_integration_id, token, config == null ? void 0 : config.BASE_URL]);
94
+ }, [app_integration_id, token, config == null ? void 0 : config.BASE_URL, isOpen, pluginPayload == null ? void 0 : pluginPayload.tiers]);
92
95
  !!(pluginPayload == null ? void 0 : pluginPayload.teachMe);
93
96
  useLMSConfigQuery(app_integration_id, false, true, content_mode_mapping_id);
94
97
  useEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"TeachMePlugin.js","sources":["../../../../src/features/IL-OTJ/ValueTypeWrappers/TeachMePlugin.tsx"],"sourcesContent":["/**\n * TeachMePlugin — Public Contribution Entry Point\n *\n * This is the file teammates contribute to.\n * To register your template:\n * 1. Build your renderer component implementing `TeachMePluginProps`\n * 2. Import it here\n * 3. Add it to `TemplateRegistry` with the exact value_type_name string as the key\n *\n * That's it. The wrapper handles routing, loading, and error states automatically.\n */\n\nimport React, { useEffect, useMemo } from \"react\";\nimport TeachMeWrapper, { TeachMeWrapperProps } from \"./TeachMeWrapper\";\n\nimport DefaultTeachMeRenderer from \"../../../plugins/ValueTypes/Default/DefaultTeachMeRenderer\";\nimport RadioTrafficLearningRenderer from \"../../../plugins/ValueTypes/RadioTrafficLearning/RadioTrafficLearningRenderer\";\nimport GuidelinesTeachMeRenderer from \"../../../plugins/ValueTypes/Guidelines/GuidelinesTeachMeRenderer\";\nimport { dt, useLMSConfigStore, useTeachMeConfigStore } from \"../../LearningManagement/store/useLMSConfigStore\";\nimport { useLearningTemplateStore } from \"../../LearningManagement/store/useLearningTemplateStore\";\nimport { useLMSConfigQuery } from \"../../LearningManagement/queries/useLMSConfigQuery\";\nimport useAuthStore from \"../../LearningManagement/store/useAuthStore\";\nimport useEnvStore from \"../../LearningManagement/store/useEnvStore\";\nimport { QueryClient, QueryClientProvider, useQuery } from \"@tanstack/react-query\";\nimport { fetchMarketplaceDomains } from \"../../IL-marketplace/services/IL-marketplace.api\";\nimport { buildDynamicOptionsFromMarketplaceDomains } from \"../../IL-marketplace/utils\";\nimport { fetchRBACConfig, fetchTiers } from \"../../LearningManagement/apis/scopeApis\";\nimport { useConfigStore } from \"../../LearningManagement/store/useConfigStore\";\nimport { useExternalWorkflowStore, ExternalWorkflowMetaData } from \"../../LearningManagement/store/useExternalWorkflowStore\";\nimport ContinueWithTemplateModal from \"../../../ContinueWithTemplateModal\";\nimport { EXTERNAL_WORKFLOW_METADATA_DT_PATH } from \"../../LearningManagement/constants\";\nimport { ILMarketplaceThemeProvider, getILMarketplaceThemeStyles, useILMarketplaceThemeStyles, type ILMarketplaceTheme } from \"../../IL-marketplace/marketplaceTheme\";\n\nexport type TeachMeMode = \"ADD\" | \"EDIT\";\n\nexport interface TeachMePluginProps {\n // baseURL: string; // Optional base URL for API calls, can also be set via environment variable\n /** App integration ID used by non-marketplace integrations to resolve the correct template. */\n app_integration_id?: string;\n /**\n * Marketplace content-mode mapping ID. When provided, TeachMe resolves its\n * value-type JSON from `/marketplace/getValueType/{content_mode_mapping_id}`.\n * It takes precedence over the app integration ID for that request.\n */\n content_mode_mapping_id?: string;\n /** Controls dialog visibility */\n isOpen: boolean;\n /** Called when the dialog requests to close */\n onClose: () => void;\n /** Arbitrary team-specific data passed straight through to your renderer */\n pluginPayload?: Record<string, any>;\n /** Bearer token for API calls */\n token: string;\n /** Whether the plugin is opened for creating a new entry or editing an existing one */\n mode: TeachMeMode;\n config:any;\n /**\n * Opt into the schema-driven dynamic form pipeline (InstantLearningModalDynamic).\n * Defaults to false → the original InstantLearningModal flow is used unchanged.\n */\n useDynamicForm?: boolean;\n /**\n * Verbose chat logs. Omit it and the JSON's `teachMe.enableChatLogs` decides\n * (see resolveEnableChatLogs).\n */\n enableChatLogs?: boolean;\n /**\n * External workflow metadata: handlers, MF event bus, and `stepBadges` — the\n * step chips shown on the ContinueWithTemplateModal cards, e.g.\n * `stepBadges: { configureNow: [\"Output Breakdown\", \"Input Definition\"] }`.\n * Cards with no badges for their key simply render none.\n */\n externalWorkflowMetaData?: ExternalWorkflowMetaData;\n /**\n * Setter function to programmatically send messages to the chat.\n * Used to trigger automatic messages from the parent component.\n */\n setSendMessageInChat?: React.Dispatch<React.SetStateAction<string>>;\n /**\n * When true, auto-sends \"Validate this template.\" to the chat once the\n * plugin opens. Used by the marketplace publish \"Validate & proceed\" flow.\n */\n triggerValidateMessage?: boolean;\n /**\n * Marks this as a marketplace template, so the plugin resolves Category/Sub-Category\n * options from the marketplace domain tree when `pluginPayload.dynamicOptions` is omitted.\n */\n isMarketPlace?: boolean;\n /**\n * Whether this plugin instance renders its own bundled `<ContinueWithTemplateModal />`.\n * Defaults to true. Set to false when the host conditionally mounts/unmounts\n * `<TeachMePlugin />` itself (e.g. `{isOpen && <TeachMePlugin ... />}`) — the continue\n * modal is opened via a store flag right as the plugin's `onClose` fires, so a bundled\n * copy gets unmounted before it can show and `isContinueModalOpen` is left stuck `true`\n * for the next mount to immediately (and wrongly) re-show. In that setup, the host should\n * render a single `<ContinueWithTemplateModal />` itself at a level that stays mounted\n * across the plugin's open/close cycle, and pass `renderContinueModal={false}` here.\n */\n renderContinueModal?: boolean;\n /** Optional shared theme for standalone TeachMe integrations. */\n theme?: ILMarketplaceTheme;\n /**\n * Controls whether to show a loader/spinner in the TeachMe component.\n * Forwarded to TeachMeWrapper for controlling the loading state UI.\n */\n showLoader?: boolean;\n}\n\n// ─── Template Registry ────────────────────────────────────────────────────────\n/**\n * Map a value_type_name (returned by the /getValueType API) to its renderer.\n *\n * Contributing a new template:\n * \"Your Value Type Name\": YourCustomRenderer,\n *\n * Keys must exactly match the `value_type_name` field in the database.\n */\nexport const TemplateRegistry: Record<string, React.FC<TeachMeWrapperProps>> = {\n \"Default\": DefaultTeachMeRenderer,\n \"Radio Traffic Learning\": RadioTrafficLearningRenderer,\n \"Guidelines\": GuidelinesTeachMeRenderer,\n // ↓ Add your template here ↓\n // \"Your Template Name\": YourCustomRenderer,\n};\n\n// ─── Plugin Entry Point ───────────────────────────────────────────────────────\n\n/**\n * `TeachMePlugin` is the public surface for this module.\n *\n * Teammates consume this component — not `TeachMeWrapper` directly.\n * It bridges the slimmed-down public API to the internal wrapper,\n * supplying the shared `TemplateRegistry` and a safe default for `initialScope`.\n *\n * @example\n * <TeachMePlugin\n * app_integration_id=\"abc-123\"\n * isOpen={open}\n * onClose={() => setOpen(false)}\n * token={authToken}\n * mode=\"ADD\"\n * pluginPayload={{ someTeamSpecificKey: \"value\" }}\n * />\n */\nconst queryClient = new QueryClient();\n\nconst TeachMePlugin: React.FC<TeachMePluginProps> = (props) => {\n const inheritedThemeStyles = useILMarketplaceThemeStyles();\n const themeStyles = useMemo(\n () => props.theme ? getILMarketplaceThemeStyles(props.theme) : inheritedThemeStyles,\n [props.theme, inheritedThemeStyles],\n );\n\n return (\n <ILMarketplaceThemeProvider theme={props.theme}>\n <QueryClientProvider client={queryClient}>\n <div style={themeStyles}>\n <TeachMePluginInner {...props} />\n </div>\n </QueryClientProvider>\n </ILMarketplaceThemeProvider>\n );\n};\n\nconst TeachMePluginInner: React.FC<TeachMePluginProps> = ({\n app_integration_id,\n content_mode_mapping_id,\n isOpen,\n onClose,\n pluginPayload,\n token,\n mode,\n config,\n useDynamicForm,\n enableChatLogs,\n externalWorkflowMetaData,\n setSendMessageInChat,\n triggerValidateMessage,\n isMarketPlace,\n renderContinueModal = true,\n showLoader,\n}) => {\n const setTeachMeConfig = useTeachMeConfigStore((state) => state.setTeachMeConfig);\n const clearTeachMeConfig = useTeachMeConfigStore((state) => state.clearTeachMeConfig);\n const setLMSConfig = useLMSConfigStore((state) => state.setLMSConfig);\n const lmsConfig = useLMSConfigStore((state) => state.lmsConfig);\n const { setConfig } = useConfigStore();\n const setExternalWorkflowMetaData = useExternalWorkflowStore((state) => state.setExternalWorkflowMetaData);\n const openContinueModal = useExternalWorkflowStore((state) => state.openContinueModal);\n const tiers = useLearningTemplateStore((state) => state.tiers);\n useEffect(() => {\n setConfig(config);\n useAuthStore.getState().setUser({ ...useAuthStore.getState().user, accessToken: token } as any);\n useEnvStore.getState().setLlmStudioUrl(config?.BASE_URL);\n useLearningTemplateStore.getState().setAppIntegrationId(app_integration_id ?? '');\n useLearningTemplateStore.getState().setSelectedRuleSetId(pluginPayload?.ruleSet?.ruleSetId ?? null);\n if (!token || !config?.BASE_URL) return;\n if (tiers.length === 0 && !pluginPayload?.tiers) fetchTiers();\n if (app_integration_id && !useEnvStore.getState().rbacConfig) {\n fetchRBACConfig(app_integration_id, token)\n .then((data) => {\n if (!data) return;\n const envState = useEnvStore.getState();\n envState.setRbacConfig({\n applicationName: data.application_name ?? '',\n applicationId: data.application_id ?? '',\n moduleId: data.module_data?.Scopes ?? '',\n applicationModuleId: data.module_data?.General ?? '',\n applicationResourceId: data.resource_data?.['Learning Management'] ?? '',\n appsecRbacUrl: envState.appsecRbacUrl ?? '',\n appsecBaseUrl: envState.appsecBaseUrl ?? '',\n });\n })\n .catch((error) => {\n console.error('Error fetching RBAC config for TeachMePlugin:', error);\n });\n }\n }, [app_integration_id, token, config?.BASE_URL]);\n const hasTeachMeInPayload = !!pluginPayload?.teachMe;\n const { isLoading: isLMSConfigLoading, isError: isLMSConfigError, refetch: refetchLMSConfig, isSuccess } =\n useLMSConfigQuery(app_integration_id, false, true, content_mode_mapping_id);\n\nuseEffect(() => {\n if (pluginPayload?.teachMe) {\n const config = pluginPayload.teachMe;\n\n if (config.teachMe) {\n setTeachMeConfig(config.teachMe);\n }\n\n if (config.template) {\n useLearningTemplateStore\n .getState()\n .setTemplateData(app_integration_id ?? \"\", config.template);\n }\n\n if (config.learningManagement) {\n setLMSConfig({\n ...config.learningManagement,\n agents: config.agents ?? {},\n externalWorkflowMetaData:\n config.teachMe?.externalWorkflowMetaData ?? {\n enableExternalWorkflow: false,\n current_mode: \"\",\n sub_mode: \"\",\n next_mode: \"\",\n externalWorkflowModal: {\n heading: \"\",\n options: {\n saveDraft: {\n title: \"\",\n desc: \"\",\n footerDesc: \"\",\n },\n configureNow: {\n title: \"\",\n desc: \"\",\n footerDesc: \"\",\n },\n },\n },\n },\n });\n }\n }\n\n if (pluginPayload?.tiers) {\n useLearningTemplateStore.getState().setTiers(pluginPayload.tiers);\n }\n}, [pluginPayload]);\n\n useEffect(() => {\n if (externalWorkflowMetaData) {\n setExternalWorkflowMetaData(externalWorkflowMetaData);\n }\n }, [externalWorkflowMetaData, setExternalWorkflowMetaData]);\n\n // Marketplace templates pick their Category/Sub-Category from the marketplace domain tree, which\n // is keyed by the same app_integration_id already passed in — so the plugin fetches it rather than\n // every caller repeating the request and the reshaping.\n const { data: marketplaceDomainsResponse } = useQuery({\n queryKey: ['teachme-marketplace-domains', app_integration_id, content_mode_mapping_id],\n queryFn: () => fetchMarketplaceDomains(app_integration_id!, token, config?.BASE_URL, {\n content_mode_mapping_id,\n }),\n enabled: Boolean(\n isMarketPlace &&\n pluginPayload?.dynamicOptions === undefined &&\n app_integration_id &&\n content_mode_mapping_id\n ),\n staleTime: Infinity,\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n });\n\n const resolvedDynamicOptions = useMemo(() => {\n if (!isMarketPlace || pluginPayload?.dynamicOptions !== undefined) return pluginPayload?.dynamicOptions;\n\n const options = buildDynamicOptionsFromMarketplaceDomains(\n marketplaceDomainsResponse?.responseData?.data?.data\n );\n // Falls back while the request is in flight, and if the tree comes back empty.\n return options.categoryOptions.length ? options : pluginPayload?.dynamicOptions;\n }, [isMarketPlace, marketplaceDomainsResponse, pluginPayload?.dynamicOptions]);\n\n // const handleClose = () => {\n // const isExternalWorkflowExists = dt(`${EXTERNAL_WORKFLOW_METADATA_DT_PATH}.enableExternalWorkflow`, 'false') === 'true';\n // console.log('teach me ', dt(`${EXTERNAL_WORKFLOW_METADATA_DT_PATH}`));\n // console.log('TeachMePlugin: handleClose called. isExternalWorkflowExists:', isExternalWorkflowExists);\n // onClose();\n // if (true) {\n // openContinueModal();\n // }\n\n // };\n\n return (\n <>\n <TeachMeWrapper\n app_integration_id={app_integration_id}\n content_mode_mapping_id={content_mode_mapping_id}\n isOpen={isOpen}\n onClose={onClose}\n token={token}\n templateRegistry={TemplateRegistry}\n baseURL={config?.BASE_URL}\n initialScope={pluginPayload?.initialScope ?? \"\"}\n ruleSet={pluginPayload?.ruleSet}\n useDynamicForm={useDynamicForm}\n enableChatLogs={enableChatLogs}\n pluginPayload={{\n ...pluginPayload,\n dynamicOptions: resolvedDynamicOptions,\n mode,\n triggerValidateMessage,\n }}\n setSendMessageInChat={setSendMessageInChat}\n showLoader={showLoader}\n />\n {renderContinueModal && <ContinueWithTemplateModal />}\n </>\n );\n};\n\nexport default TeachMePlugin;"],"names":["_a","_b","config"],"mappings":";;;;;;;;;;;;;;;;;;;;AAqHO,MAAM,gBAAkE,GAAA;AAAA,EAC7E,SAAW,EAAA,sBAAA;AAAA,EACX,wBAA0B,EAAA,4BAAA;AAAA,EAC1B,YAAc,EAAA,yBAAA;AAAA;AAAA;AAGhB,EAAA;AAqBA,MAAM,WAAA,GAAc,IAAI,WAAY,EAAA,CAAA;AAEpC,MAAM,aAAA,GAA8C,CAAC,KAAU,KAAA;AAC7D,EAAA,MAAM,uBAAuB,2BAA4B,EAAA,CAAA;AACzD,EAAA,MAAM,WAAc,GAAA,OAAA;AAAA,IAClB,MAAM,KAAM,CAAA,KAAA,GAAQ,2BAA4B,CAAA,KAAA,CAAM,KAAK,CAAI,GAAA,oBAAA;AAAA,IAC/D,CAAC,KAAM,CAAA,KAAA,EAAO,oBAAoB,CAAA;AAAA,GACpC,CAAA;AAEA,EAAA,2BACG,0BAA2B,EAAA,EAAA,KAAA,EAAO,MAAM,KACvC,EAAA,QAAA,kBAAA,GAAA,CAAC,uBAAoB,MAAQ,EAAA,WAAA,EAC3B,8BAAC,KAAI,EAAA,EAAA,KAAA,EAAO,aACV,QAAC,kBAAA,GAAA,CAAA,kBAAA,EAAA,EAAoB,GAAG,KAAO,EAAA,CAAA,EACjC,GACF,CACF,EAAA,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEA,MAAM,qBAAmD,CAAC;AAAA,EACxD,kBAAA;AAAA,EACA,uBAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,aAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,wBAAA;AAAA,EACA,oBAAA;AAAA,EACA,sBAAA;AAAA,EACA,aAAA;AAAA,EACA,mBAAsB,GAAA,IAAA;AAAA,EACtB,UAAA;AACF,CAAM,KAAA;AArLN,EAAA,IAAA,EAAA,CAAA;AAsLE,EAAA,MAAM,gBAAmB,GAAA,qBAAA,CAAsB,CAAC,KAAA,KAAU,MAAM,gBAAgB,CAAA,CAAA;AAChF,EAA2B,qBAAA,CAAsB,CAAC,KAAA,KAAU,MAAM,kBAAkB,EAAA;AACpF,EAAA,MAAM,YAAe,GAAA,iBAAA,CAAkB,CAAC,KAAA,KAAU,MAAM,YAAY,CAAA,CAAA;AACpE,EAAkB,iBAAA,CAAkB,CAAC,KAAA,KAAU,MAAM,SAAS,EAAA;AAC9D,EAAM,MAAA,EAAE,SAAU,EAAA,GAAI,cAAe,EAAA,CAAA;AACrC,EAAA,MAAM,2BAA8B,GAAA,wBAAA,CAAyB,CAAC,KAAA,KAAU,MAAM,2BAA2B,CAAA,CAAA;AACzG,EAA0B,wBAAA,CAAyB,CAAC,KAAA,KAAU,MAAM,iBAAiB,EAAA;AACrF,EAAA,MAAM,KAAQ,GAAA,wBAAA,CAAyB,CAAC,KAAA,KAAU,MAAM,KAAK,CAAA,CAAA;AAC7D,EAAA,SAAA,CAAU,MAAM;AA9LlB,IAAA,IAAAA,GAAA,EAAA,EAAA,CAAA;AA+LI,IAAA,SAAA,CAAU,MAAM,CAAA,CAAA;AAChB,IAAa,YAAA,CAAA,QAAA,EAAW,CAAA,OAAA,CAAQ,EAAE,GAAG,YAAa,CAAA,QAAA,EAAW,CAAA,IAAA,EAAM,WAAa,EAAA,KAAA,EAAc,CAAA,CAAA;AAC9F,IAAA,WAAA,CAAY,QAAS,EAAA,CAAE,eAAgB,CAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,QAAQ,CAAA,CAAA;AACvD,IAAA,wBAAA,CAAyB,QAAS,EAAA,CAAE,mBAAoB,CAAA,kBAAA,IAAA,IAAA,GAAA,kBAAA,GAAsB,EAAE,CAAA,CAAA;AAChF,IAAyB,wBAAA,CAAA,QAAA,EAAW,CAAA,oBAAA,CAAA,CAAqB,EAAAA,GAAAA,CAAAA,GAAAA,GAAA,aAAe,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,OAAA,KAAf,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAAA,CAAwB,SAAxB,KAAA,IAAA,GAAA,EAAA,GAAqC,IAAI,CAAA,CAAA;AAClG,IAAA,IAAI,CAAC,KAAA,IAAS,EAAC,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,QAAU,CAAA,EAAA,OAAA;AACjC,IAAA,IAAI,MAAM,MAAW,KAAA,CAAA,IAAK,EAAC,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAe,QAAkB,UAAA,EAAA,CAAA;AAC5D,IAAA,IAAI,kBAAsB,IAAA,CAAC,WAAY,CAAA,QAAA,GAAW,UAAY,EAAA;AAC5D,MAAA,eAAA,CAAgB,kBAAoB,EAAA,KAAK,CACtC,CAAA,IAAA,CAAK,CAAC,IAAS,KAAA;AAxMxB,QAAA,IAAAA,KAAAC,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AAyMU,QAAA,IAAI,CAAC,IAAM,EAAA,OAAA;AACX,QAAM,MAAA,QAAA,GAAW,YAAY,QAAS,EAAA,CAAA;AACtC,QAAA,QAAA,CAAS,aAAc,CAAA;AAAA,UACrB,eAAiBD,EAAAA,CAAAA,GAAAA,GAAA,IAAK,CAAA,gBAAA,KAAL,OAAAA,GAAyB,GAAA,EAAA;AAAA,UAC1C,aAAeC,EAAAA,CAAAA,GAAAA,GAAA,IAAK,CAAA,cAAA,KAAL,OAAAA,GAAuB,GAAA,EAAA;AAAA,UACtC,QAAU,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAA,CAAK,WAAL,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAkB,WAAlB,IAA4B,GAAA,EAAA,GAAA,EAAA;AAAA,UACtC,mBAAqB,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAA,CAAK,WAAL,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAkB,YAAlB,IAA6B,GAAA,EAAA,GAAA,EAAA;AAAA,UAClD,qBAAuB,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAA,CAAK,aAAL,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAqB,2BAArB,IAA+C,GAAA,EAAA,GAAA,EAAA;AAAA,UACtE,aAAA,EAAA,CAAe,EAAS,GAAA,QAAA,CAAA,aAAA,KAAT,IAA0B,GAAA,EAAA,GAAA,EAAA;AAAA,UACzC,aAAA,EAAA,CAAe,EAAS,GAAA,QAAA,CAAA,aAAA,KAAT,IAA0B,GAAA,EAAA,GAAA,EAAA;AAAA,SAC1C,CAAA,CAAA;AAAA,OACF,CAAA,CACA,KAAM,CAAA,CAAC,KAAU,KAAA;AAChB,QAAQ,OAAA,CAAA,KAAA,CAAM,iDAAiD,KAAK,CAAA,CAAA;AAAA,OACrE,CAAA,CAAA;AAAA,KACL;AAAA,KACC,CAAC,kBAAA,EAAoB,KAAO,EAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,QAAQ,CAAC,CAAA,CAAA;AAChD,EAA4B,CAAC,EAAC,aAAe,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,OAAA,EAAA;AAC7C,EACE,iBAAA,CAAkB,kBAAoB,EAAA,KAAA,EAAO,MAAM,uBAAuB,EAAA;AAE9E,EAAA,SAAA,CAAU,MAAM;AA9NhB,IAAA,IAAAD,GAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AA+NE,IAAA,IAAI,+CAAe,OAAS,EAAA;AAC1B,MAAA,MAAME,UAAS,aAAc,CAAA,OAAA,CAAA;AAE7B,MAAA,IAAIA,QAAO,OAAS,EAAA;AAClB,QAAA,gBAAA,CAAiBA,QAAO,OAAO,CAAA,CAAA;AAAA,OACjC;AAEA,MAAA,IAAIA,QAAO,QAAU,EAAA;AACnB,QAAA,wBAAA,CACG,UACA,CAAA,eAAA,CAAgB,kBAAsB,IAAA,IAAA,GAAA,kBAAA,GAAA,EAAA,EAAIA,QAAO,QAAQ,CAAA,CAAA;AAAA,OAC9D;AAEA,MAAA,IAAIA,QAAO,kBAAoB,EAAA;AAC7B,QAAa,YAAA,CAAA;AAAA,UACX,GAAGA,OAAO,CAAA,kBAAA;AAAA,UACV,SAAQF,GAAAE,GAAAA,OAAAA,CAAO,MAAP,KAAA,IAAA,GAAAF,MAAiB,EAAC;AAAA,UAC1B,2BACE,EAAAE,GAAAA,CAAAA,EAAAA,GAAAA,OAAAA,CAAO,OAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAgB,6BAAhB,IAA4C,GAAA,EAAA,GAAA;AAAA,YAC1C,sBAAwB,EAAA,KAAA;AAAA,YACxB,YAAc,EAAA,EAAA;AAAA,YACd,QAAU,EAAA,EAAA;AAAA,YACV,SAAW,EAAA,EAAA;AAAA,YACX,qBAAuB,EAAA;AAAA,cACrB,OAAS,EAAA,EAAA;AAAA,cACT,OAAS,EAAA;AAAA,gBACP,SAAW,EAAA;AAAA,kBACT,KAAO,EAAA,EAAA;AAAA,kBACP,IAAM,EAAA,EAAA;AAAA,kBACN,UAAY,EAAA,EAAA;AAAA,iBACd;AAAA,gBACA,YAAc,EAAA;AAAA,kBACZ,KAAO,EAAA,EAAA;AAAA,kBACP,IAAM,EAAA,EAAA;AAAA,kBACN,UAAY,EAAA,EAAA;AAAA,iBACd;AAAA,eACF;AAAA,aACF;AAAA,WACF;AAAA,SACH,CAAA,CAAA;AAAA,OACH;AAAA,KACF;AAEA,IAAA,IAAI,+CAAe,KAAO,EAAA;AACxB,MAAA,wBAAA,CAAyB,QAAS,EAAA,CAAE,QAAS,CAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AAAA,KAClE;AAAA,GACF,EAAG,CAAC,aAAa,CAAC,CAAA,CAAA;AAEhB,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,wBAA0B,EAAA;AAC5B,MAAA,2BAAA,CAA4B,wBAAwB,CAAA,CAAA;AAAA,KACtD;AAAA,GACC,EAAA,CAAC,wBAA0B,EAAA,2BAA2B,CAAC,CAAA,CAAA;AAK1D,EAAA,MAAM,EAAE,IAAA,EAAM,0BAA2B,EAAA,GAAI,QAAS,CAAA;AAAA,IACpD,QAAU,EAAA,CAAC,6BAA+B,EAAA,kBAAA,EAAoB,uBAAuB,CAAA;AAAA,IACrF,SAAS,MAAM,uBAAA,CAAwB,kBAAqB,EAAA,KAAA,EAAO,iCAAQ,QAAU,EAAA;AAAA,MACnF,uBAAA;AAAA,KACD,CAAA;AAAA,IACD,OAAS,EAAA,OAAA;AAAA,MACP,aACA,IAAA,CAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAe,cAAmB,MAAA,KAAA,CAAA,IAClC,kBACA,IAAA,uBAAA;AAAA,KACF;AAAA,IACA,SAAW,EAAA,QAAA;AAAA,IACX,cAAgB,EAAA,KAAA;AAAA,IAChB,oBAAsB,EAAA,KAAA;AAAA,GACvB,CAAA,CAAA;AAED,EAAM,MAAA,sBAAA,GAAyB,QAAQ,MAAM;AAxS/C,IAAA,IAAAF,GAAA,EAAA,EAAA,CAAA;AAySI,IAAA,IAAI,CAAC,aAAiB,IAAA,CAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAe,cAAmB,MAAA,KAAA,CAAA,SAAkB,aAAe,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,cAAA,CAAA;AAEzF,IAAA,MAAM,OAAU,GAAA,yCAAA;AAAA,MAAA,CACd,MAAAA,GAAA,GAAA,0BAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,0BAAA,CAA4B,iBAA5B,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAAA,CAA0C,SAA1C,IAAgD,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA;AAAA,KAClD,CAAA;AAEA,IAAA,OAAO,OAAQ,CAAA,eAAA,CAAgB,MAAS,GAAA,OAAA,GAAU,aAAe,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,cAAA,CAAA;AAAA,KAChE,CAAC,aAAA,EAAe,0BAA4B,EAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAe,cAAc,CAAC,CAAA,CAAA;AAa7E,EAAA,uBAEI,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,kBAAA;AAAA,QACA,uBAAA;AAAA,QACA,MAAA;AAAA,QACA,OAAA;AAAA,QACA,KAAA;AAAA,QACA,gBAAkB,EAAA,gBAAA;AAAA,QAClB,SAAS,MAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,QAAA;AAAA,QACjB,YAAA,EAAA,CAAc,EAAe,GAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,YAAA,KAAf,IAA+B,GAAA,EAAA,GAAA,EAAA;AAAA,QAC7C,SAAS,aAAe,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,OAAA;AAAA,QACxB,cAAA;AAAA,QACA,cAAA;AAAA,QACA,aAAe,EAAA;AAAA,UACb,GAAG,aAAA;AAAA,UACH,cAAgB,EAAA,sBAAA;AAAA,UAChB,IAAA;AAAA,UACA,sBAAA;AAAA,SACF;AAAA,QACA,oBAAA;AAAA,QACA,UAAA;AAAA,OAAA;AAAA,KACF;AAAA,IACC,mBAAA,wBAAwB,yBAA0B,EAAA,EAAA,CAAA;AAAA,GACrD,EAAA,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEA,sBAAe,aAAA;;;;"}
1
+ {"version":3,"file":"TeachMePlugin.js","sources":["../../../../src/features/IL-OTJ/ValueTypeWrappers/TeachMePlugin.tsx"],"sourcesContent":["/**\n * TeachMePlugin — Public Contribution Entry Point\n *\n * This is the file teammates contribute to.\n * To register your template:\n * 1. Build your renderer component implementing `TeachMePluginProps`\n * 2. Import it here\n * 3. Add it to `TemplateRegistry` with the exact value_type_name string as the key\n *\n * That's it. The wrapper handles routing, loading, and error states automatically.\n */\n\nimport React, { useEffect, useMemo } from \"react\";\nimport TeachMeWrapper, { TeachMeWrapperProps } from \"./TeachMeWrapper\";\n\nimport DefaultTeachMeRenderer from \"../../../plugins/ValueTypes/Default/DefaultTeachMeRenderer\";\nimport RadioTrafficLearningRenderer from \"../../../plugins/ValueTypes/RadioTrafficLearning/RadioTrafficLearningRenderer\";\nimport GuidelinesTeachMeRenderer from \"../../../plugins/ValueTypes/Guidelines/GuidelinesTeachMeRenderer\";\nimport { dt, useLMSConfigStore, useTeachMeConfigStore } from \"../../LearningManagement/store/useLMSConfigStore\";\nimport { useLearningTemplateStore } from \"../../LearningManagement/store/useLearningTemplateStore\";\nimport { useLMSConfigQuery } from \"../../LearningManagement/queries/useLMSConfigQuery\";\nimport useAuthStore from \"../../LearningManagement/store/useAuthStore\";\nimport useEnvStore from \"../../LearningManagement/store/useEnvStore\";\nimport { QueryClient, QueryClientProvider, useQuery } from \"@tanstack/react-query\";\nimport { fetchMarketplaceDomains } from \"../../IL-marketplace/services/IL-marketplace.api\";\nimport { buildDynamicOptionsFromMarketplaceDomains } from \"../../IL-marketplace/utils\";\nimport { fetchRBACConfig, fetchTiers } from \"../../LearningManagement/apis/scopeApis\";\nimport { useConfigStore } from \"../../LearningManagement/store/useConfigStore\";\nimport { useExternalWorkflowStore, ExternalWorkflowMetaData } from \"../../LearningManagement/store/useExternalWorkflowStore\";\nimport ContinueWithTemplateModal from \"../../../ContinueWithTemplateModal\";\nimport { EXTERNAL_WORKFLOW_METADATA_DT_PATH } from \"../../LearningManagement/constants\";\nimport { ILMarketplaceThemeProvider, getILMarketplaceThemeStyles, useILMarketplaceThemeStyles, type ILMarketplaceTheme } from \"../../IL-marketplace/marketplaceTheme\";\n\nexport type TeachMeMode = \"ADD\" | \"EDIT\";\n\nexport interface TeachMePluginProps {\n // baseURL: string; // Optional base URL for API calls, can also be set via environment variable\n /** App integration ID used by non-marketplace integrations to resolve the correct template. */\n app_integration_id?: string;\n /**\n * Marketplace content-mode mapping ID. When provided, TeachMe resolves its\n * value-type JSON from `/marketplace/getValueType/{content_mode_mapping_id}`.\n * It takes precedence over the app integration ID for that request.\n */\n content_mode_mapping_id?: string;\n /** Controls dialog visibility */\n isOpen: boolean;\n /** Called when the dialog requests to close */\n onClose: () => void;\n /** Arbitrary team-specific data passed straight through to your renderer */\n pluginPayload?: Record<string, any>;\n /** Bearer token for API calls */\n token: string;\n /** Whether the plugin is opened for creating a new entry or editing an existing one */\n mode: TeachMeMode;\n config:any;\n /**\n * Opt into the schema-driven dynamic form pipeline (InstantLearningModalDynamic).\n * Defaults to false → the original InstantLearningModal flow is used unchanged.\n */\n useDynamicForm?: boolean;\n /**\n * Verbose chat logs. Omit it and the JSON's `teachMe.enableChatLogs` decides\n * (see resolveEnableChatLogs).\n */\n enableChatLogs?: boolean;\n /**\n * External workflow metadata: handlers, MF event bus, and `stepBadges` — the\n * step chips shown on the ContinueWithTemplateModal cards, e.g.\n * `stepBadges: { configureNow: [\"Output Breakdown\", \"Input Definition\"] }`.\n * Cards with no badges for their key simply render none.\n */\n externalWorkflowMetaData?: ExternalWorkflowMetaData;\n /**\n * Setter function to programmatically send messages to the chat.\n * Used to trigger automatic messages from the parent component.\n */\n setSendMessageInChat?: React.Dispatch<React.SetStateAction<string>>;\n /**\n * When true, auto-sends \"Validate this template.\" to the chat once the\n * plugin opens. Used by the marketplace publish \"Validate & proceed\" flow.\n */\n triggerValidateMessage?: boolean;\n /**\n * Marks this as a marketplace template, so the plugin resolves Category/Sub-Category\n * options from the marketplace domain tree when `pluginPayload.dynamicOptions` is omitted.\n */\n isMarketPlace?: boolean;\n /**\n * Whether this plugin instance renders its own bundled `<ContinueWithTemplateModal />`.\n * Defaults to true. Set to false when the host conditionally mounts/unmounts\n * `<TeachMePlugin />` itself (e.g. `{isOpen && <TeachMePlugin ... />}`) — the continue\n * modal is opened via a store flag right as the plugin's `onClose` fires, so a bundled\n * copy gets unmounted before it can show and `isContinueModalOpen` is left stuck `true`\n * for the next mount to immediately (and wrongly) re-show. In that setup, the host should\n * render a single `<ContinueWithTemplateModal />` itself at a level that stays mounted\n * across the plugin's open/close cycle, and pass `renderContinueModal={false}` here.\n */\n renderContinueModal?: boolean;\n /** Optional shared theme for standalone TeachMe integrations. */\n theme?: ILMarketplaceTheme;\n /**\n * Controls whether to show a loader/spinner in the TeachMe component.\n * Forwarded to TeachMeWrapper for controlling the loading state UI.\n */\n showLoader?: boolean;\n}\n\n// ─── Template Registry ────────────────────────────────────────────────────────\n/**\n * Map a value_type_name (returned by the /getValueType API) to its renderer.\n *\n * Contributing a new template:\n * \"Your Value Type Name\": YourCustomRenderer,\n *\n * Keys must exactly match the `value_type_name` field in the database.\n */\nexport const TemplateRegistry: Record<string, React.FC<TeachMeWrapperProps>> = {\n \"Default\": DefaultTeachMeRenderer,\n \"Radio Traffic Learning\": RadioTrafficLearningRenderer,\n \"Guidelines\": GuidelinesTeachMeRenderer,\n // ↓ Add your template here ↓\n // \"Your Template Name\": YourCustomRenderer,\n};\n\n// ─── Plugin Entry Point ───────────────────────────────────────────────────────\n\n/**\n * `TeachMePlugin` is the public surface for this module.\n *\n * Teammates consume this component — not `TeachMeWrapper` directly.\n * It bridges the slimmed-down public API to the internal wrapper,\n * supplying the shared `TemplateRegistry` and a safe default for `initialScope`.\n *\n * @example\n * <TeachMePlugin\n * app_integration_id=\"abc-123\"\n * isOpen={open}\n * onClose={() => setOpen(false)}\n * token={authToken}\n * mode=\"ADD\"\n * pluginPayload={{ someTeamSpecificKey: \"value\" }}\n * />\n */\nconst queryClient = new QueryClient();\n\nconst TeachMePlugin: React.FC<TeachMePluginProps> = (props) => {\n const inheritedThemeStyles = useILMarketplaceThemeStyles();\n const themeStyles = useMemo(\n () => props.theme ? getILMarketplaceThemeStyles(props.theme) : inheritedThemeStyles,\n [props.theme, inheritedThemeStyles],\n );\n\n return (\n <ILMarketplaceThemeProvider theme={props.theme}>\n <QueryClientProvider client={queryClient}>\n <div style={themeStyles}>\n <TeachMePluginInner {...props} />\n </div>\n </QueryClientProvider>\n </ILMarketplaceThemeProvider>\n );\n};\n\nconst TeachMePluginInner: React.FC<TeachMePluginProps> = ({\n app_integration_id,\n content_mode_mapping_id,\n isOpen,\n onClose,\n pluginPayload,\n token,\n mode,\n config,\n useDynamicForm,\n enableChatLogs,\n externalWorkflowMetaData,\n setSendMessageInChat,\n triggerValidateMessage,\n isMarketPlace,\n renderContinueModal = true,\n showLoader,\n}) => {\n const setTeachMeConfig = useTeachMeConfigStore((state) => state.setTeachMeConfig);\n const clearTeachMeConfig = useTeachMeConfigStore((state) => state.clearTeachMeConfig);\n const setLMSConfig = useLMSConfigStore((state) => state.setLMSConfig);\n const lmsConfig = useLMSConfigStore((state) => state.lmsConfig);\n const { setConfig } = useConfigStore();\n const setExternalWorkflowMetaData = useExternalWorkflowStore((state) => state.setExternalWorkflowMetaData);\n const openContinueModal = useExternalWorkflowStore((state) => state.openContinueModal);\n const tiers = useLearningTemplateStore((state) => state.tiers);\n useEffect(() => {\n setConfig(config);\n useAuthStore.getState().setUser({ ...useAuthStore.getState().user, accessToken: token } as any);\n useEnvStore.getState().setLlmStudioUrl(config?.BASE_URL);\n useLearningTemplateStore.getState().setAppIntegrationId(app_integration_id ?? '');\n if (token) {\n useLearningTemplateStore.getState().setToken(token);\n }\n useLearningTemplateStore.getState().setSelectedRuleSetId(pluginPayload?.ruleSet?.ruleSetId ?? null);\n if (!token || !config?.BASE_URL) return;\n // Preserve LMS preloading while also refreshing for each opened Teach Me\n // popup. Host-provided tiers are already mapping-specific and need no fetch.\n // const shouldPreloadTiers = useLearningTemplateStore.getState().tiers.length === 0;\n if ((tiers.length === 0 || isOpen) && !pluginPayload?.tiers) void fetchTiers();\n if (app_integration_id && !useEnvStore.getState().rbacConfig) {\n fetchRBACConfig(app_integration_id, token)\n .then((data) => {\n if (!data) return;\n const envState = useEnvStore.getState();\n envState.setRbacConfig({\n applicationName: data.application_name ?? '',\n applicationId: data.application_id ?? '',\n moduleId: data.module_data?.Scopes ?? '',\n applicationModuleId: data.module_data?.General ?? '',\n applicationResourceId: data.resource_data?.['Learning Management'] ?? '',\n appsecRbacUrl: envState.appsecRbacUrl ?? '',\n appsecBaseUrl: envState.appsecBaseUrl ?? '',\n });\n })\n .catch((error) => {\n console.error('Error fetching RBAC config for TeachMePlugin:', error);\n });\n }\n }, [app_integration_id, token, config?.BASE_URL, isOpen, pluginPayload?.tiers]);\n const hasTeachMeInPayload = !!pluginPayload?.teachMe;\n const { isLoading: isLMSConfigLoading, isError: isLMSConfigError, refetch: refetchLMSConfig, isSuccess } =\n useLMSConfigQuery(app_integration_id, false, true, content_mode_mapping_id);\n\nuseEffect(() => {\n if (pluginPayload?.teachMe) {\n const config = pluginPayload.teachMe;\n\n if (config.teachMe) {\n setTeachMeConfig(config.teachMe);\n }\n\n if (config.template) {\n useLearningTemplateStore\n .getState()\n .setTemplateData(app_integration_id ?? \"\", config.template);\n }\n\n if (config.learningManagement) {\n setLMSConfig({\n ...config.learningManagement,\n agents: config.agents ?? {},\n externalWorkflowMetaData:\n config.teachMe?.externalWorkflowMetaData ?? {\n enableExternalWorkflow: false,\n current_mode: \"\",\n sub_mode: \"\",\n next_mode: \"\",\n externalWorkflowModal: {\n heading: \"\",\n options: {\n saveDraft: {\n title: \"\",\n desc: \"\",\n footerDesc: \"\",\n },\n configureNow: {\n title: \"\",\n desc: \"\",\n footerDesc: \"\",\n },\n },\n },\n },\n });\n }\n }\n\n if (pluginPayload?.tiers) {\n useLearningTemplateStore.getState().setTiers(pluginPayload.tiers);\n }\n}, [pluginPayload]);\n\n useEffect(() => {\n if (externalWorkflowMetaData) {\n setExternalWorkflowMetaData(externalWorkflowMetaData);\n }\n }, [externalWorkflowMetaData, setExternalWorkflowMetaData]);\n\n // Marketplace templates pick their Category/Sub-Category from the marketplace domain tree, which\n // is keyed by the same app_integration_id already passed in — so the plugin fetches it rather than\n // every caller repeating the request and the reshaping.\n const { data: marketplaceDomainsResponse } = useQuery({\n queryKey: ['teachme-marketplace-domains', app_integration_id, content_mode_mapping_id],\n queryFn: () => fetchMarketplaceDomains(app_integration_id!, token, config?.BASE_URL, {\n content_mode_mapping_id,\n }),\n enabled: Boolean(\n isMarketPlace &&\n pluginPayload?.dynamicOptions === undefined &&\n app_integration_id &&\n content_mode_mapping_id\n ),\n staleTime: Infinity,\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n });\n\n const resolvedDynamicOptions = useMemo(() => {\n if (!isMarketPlace || pluginPayload?.dynamicOptions !== undefined) return pluginPayload?.dynamicOptions;\n\n const options = buildDynamicOptionsFromMarketplaceDomains(\n marketplaceDomainsResponse?.responseData?.data?.data\n );\n // Falls back while the request is in flight, and if the tree comes back empty.\n return options.categoryOptions.length ? options : pluginPayload?.dynamicOptions;\n }, [isMarketPlace, marketplaceDomainsResponse, pluginPayload?.dynamicOptions]);\n\n // const handleClose = () => {\n // const isExternalWorkflowExists = dt(`${EXTERNAL_WORKFLOW_METADATA_DT_PATH}.enableExternalWorkflow`, 'false') === 'true';\n // console.log('teach me ', dt(`${EXTERNAL_WORKFLOW_METADATA_DT_PATH}`));\n // console.log('TeachMePlugin: handleClose called. isExternalWorkflowExists:', isExternalWorkflowExists);\n // onClose();\n // if (true) {\n // openContinueModal();\n // }\n\n // };\n\n return (\n <>\n <TeachMeWrapper\n app_integration_id={app_integration_id}\n content_mode_mapping_id={content_mode_mapping_id}\n isOpen={isOpen}\n onClose={onClose}\n token={token}\n templateRegistry={TemplateRegistry}\n baseURL={config?.BASE_URL}\n initialScope={pluginPayload?.initialScope ?? \"\"}\n ruleSet={pluginPayload?.ruleSet}\n useDynamicForm={useDynamicForm}\n enableChatLogs={enableChatLogs}\n pluginPayload={{\n ...pluginPayload,\n dynamicOptions: resolvedDynamicOptions,\n mode,\n triggerValidateMessage,\n }}\n setSendMessageInChat={setSendMessageInChat}\n showLoader={showLoader}\n />\n {renderContinueModal && <ContinueWithTemplateModal />}\n </>\n );\n};\n\nexport default TeachMePlugin;\n"],"names":["_a","_b","config"],"mappings":";;;;;;;;;;;;;;;;;;;;AAqHO,MAAM,gBAAkE,GAAA;AAAA,EAC7E,SAAW,EAAA,sBAAA;AAAA,EACX,wBAA0B,EAAA,4BAAA;AAAA,EAC1B,YAAc,EAAA,yBAAA;AAAA;AAAA;AAGhB,EAAA;AAqBA,MAAM,WAAA,GAAc,IAAI,WAAY,EAAA,CAAA;AAEpC,MAAM,aAAA,GAA8C,CAAC,KAAU,KAAA;AAC7D,EAAA,MAAM,uBAAuB,2BAA4B,EAAA,CAAA;AACzD,EAAA,MAAM,WAAc,GAAA,OAAA;AAAA,IAClB,MAAM,KAAM,CAAA,KAAA,GAAQ,2BAA4B,CAAA,KAAA,CAAM,KAAK,CAAI,GAAA,oBAAA;AAAA,IAC/D,CAAC,KAAM,CAAA,KAAA,EAAO,oBAAoB,CAAA;AAAA,GACpC,CAAA;AAEA,EAAA,2BACG,0BAA2B,EAAA,EAAA,KAAA,EAAO,MAAM,KACvC,EAAA,QAAA,kBAAA,GAAA,CAAC,uBAAoB,MAAQ,EAAA,WAAA,EAC3B,8BAAC,KAAI,EAAA,EAAA,KAAA,EAAO,aACV,QAAC,kBAAA,GAAA,CAAA,kBAAA,EAAA,EAAoB,GAAG,KAAO,EAAA,CAAA,EACjC,GACF,CACF,EAAA,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEA,MAAM,qBAAmD,CAAC;AAAA,EACxD,kBAAA;AAAA,EACA,uBAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,aAAA;AAAA,EACA,KAAA;AAAA,EACA,IAAA;AAAA,EACA,MAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,wBAAA;AAAA,EACA,oBAAA;AAAA,EACA,sBAAA;AAAA,EACA,aAAA;AAAA,EACA,mBAAsB,GAAA,IAAA;AAAA,EACtB,UAAA;AACF,CAAM,KAAA;AArLN,EAAA,IAAA,EAAA,CAAA;AAsLE,EAAA,MAAM,gBAAmB,GAAA,qBAAA,CAAsB,CAAC,KAAA,KAAU,MAAM,gBAAgB,CAAA,CAAA;AAChF,EAA2B,qBAAA,CAAsB,CAAC,KAAA,KAAU,MAAM,kBAAkB,EAAA;AACpF,EAAA,MAAM,YAAe,GAAA,iBAAA,CAAkB,CAAC,KAAA,KAAU,MAAM,YAAY,CAAA,CAAA;AACpE,EAAkB,iBAAA,CAAkB,CAAC,KAAA,KAAU,MAAM,SAAS,EAAA;AAC9D,EAAM,MAAA,EAAE,SAAU,EAAA,GAAI,cAAe,EAAA,CAAA;AACrC,EAAA,MAAM,2BAA8B,GAAA,wBAAA,CAAyB,CAAC,KAAA,KAAU,MAAM,2BAA2B,CAAA,CAAA;AACzG,EAA0B,wBAAA,CAAyB,CAAC,KAAA,KAAU,MAAM,iBAAiB,EAAA;AACrF,EAAA,MAAM,KAAQ,GAAA,wBAAA,CAAyB,CAAC,KAAA,KAAU,MAAM,KAAK,CAAA,CAAA;AAC7D,EAAA,SAAA,CAAU,MAAM;AA9LlB,IAAA,IAAAA,GAAA,EAAA,EAAA,CAAA;AA+LI,IAAA,SAAA,CAAU,MAAM,CAAA,CAAA;AAChB,IAAa,YAAA,CAAA,QAAA,EAAW,CAAA,OAAA,CAAQ,EAAE,GAAG,YAAa,CAAA,QAAA,EAAW,CAAA,IAAA,EAAM,WAAa,EAAA,KAAA,EAAc,CAAA,CAAA;AAC9F,IAAA,WAAA,CAAY,QAAS,EAAA,CAAE,eAAgB,CAAA,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,QAAQ,CAAA,CAAA;AACvD,IAAA,wBAAA,CAAyB,QAAS,EAAA,CAAE,mBAAoB,CAAA,kBAAA,IAAA,IAAA,GAAA,kBAAA,GAAsB,EAAE,CAAA,CAAA;AAChF,IAAA,IAAI,KAAO,EAAA;AACT,MAAyB,wBAAA,CAAA,QAAA,EAAW,CAAA,QAAA,CAAS,KAAK,CAAA,CAAA;AAAA,KACpD;AACA,IAAyB,wBAAA,CAAA,QAAA,EAAW,CAAA,oBAAA,CAAA,CAAqB,EAAAA,GAAAA,CAAAA,GAAAA,GAAA,aAAe,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,OAAA,KAAf,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAAA,CAAwB,SAAxB,KAAA,IAAA,GAAA,EAAA,GAAqC,IAAI,CAAA,CAAA;AAClG,IAAA,IAAI,CAAC,KAAA,IAAS,EAAC,MAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAQ,QAAU,CAAA,EAAA,OAAA;AAIjC,IAAK,IAAA,CAAA,KAAA,CAAM,WAAW,CAAK,IAAA,MAAA,KAAW,EAAC,aAAe,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,KAAA,CAAA,OAAY,UAAW,EAAA,CAAA;AAC7E,IAAA,IAAI,kBAAsB,IAAA,CAAC,WAAY,CAAA,QAAA,GAAW,UAAY,EAAA;AAC5D,MAAA,eAAA,CAAgB,kBAAoB,EAAA,KAAK,CACtC,CAAA,IAAA,CAAK,CAAC,IAAS,KAAA;AA9MxB,QAAA,IAAAA,KAAAC,GAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AA+MU,QAAA,IAAI,CAAC,IAAM,EAAA,OAAA;AACX,QAAM,MAAA,QAAA,GAAW,YAAY,QAAS,EAAA,CAAA;AACtC,QAAA,QAAA,CAAS,aAAc,CAAA;AAAA,UACrB,eAAiBD,EAAAA,CAAAA,GAAAA,GAAA,IAAK,CAAA,gBAAA,KAAL,OAAAA,GAAyB,GAAA,EAAA;AAAA,UAC1C,aAAeC,EAAAA,CAAAA,GAAAA,GAAA,IAAK,CAAA,cAAA,KAAL,OAAAA,GAAuB,GAAA,EAAA;AAAA,UACtC,QAAU,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAA,CAAK,WAAL,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAkB,WAAlB,IAA4B,GAAA,EAAA,GAAA,EAAA;AAAA,UACtC,mBAAqB,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAA,CAAK,WAAL,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAkB,YAAlB,IAA6B,GAAA,EAAA,GAAA,EAAA;AAAA,UAClD,qBAAuB,EAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAA,CAAK,aAAL,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAqB,2BAArB,IAA+C,GAAA,EAAA,GAAA,EAAA;AAAA,UACtE,aAAA,EAAA,CAAe,EAAS,GAAA,QAAA,CAAA,aAAA,KAAT,IAA0B,GAAA,EAAA,GAAA,EAAA;AAAA,UACzC,aAAA,EAAA,CAAe,EAAS,GAAA,QAAA,CAAA,aAAA,KAAT,IAA0B,GAAA,EAAA,GAAA,EAAA;AAAA,SAC1C,CAAA,CAAA;AAAA,OACF,CAAA,CACA,KAAM,CAAA,CAAC,KAAU,KAAA;AAChB,QAAQ,OAAA,CAAA,KAAA,CAAM,iDAAiD,KAAK,CAAA,CAAA;AAAA,OACrE,CAAA,CAAA;AAAA,KACL;AAAA,GACF,EAAG,CAAC,kBAAoB,EAAA,KAAA,EAAO,iCAAQ,QAAU,EAAA,MAAA,EAAQ,aAAe,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,KAAK,CAAC,CAAA,CAAA;AAC9E,EAA4B,CAAC,EAAC,aAAe,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,OAAA,EAAA;AAC7C,EACE,iBAAA,CAAkB,kBAAoB,EAAA,KAAA,EAAO,MAAM,uBAAuB,EAAA;AAE9E,EAAA,SAAA,CAAU,MAAM;AApOhB,IAAA,IAAAD,GAAA,EAAA,EAAA,EAAA,EAAA,CAAA;AAqOE,IAAA,IAAI,+CAAe,OAAS,EAAA;AAC1B,MAAA,MAAME,UAAS,aAAc,CAAA,OAAA,CAAA;AAE7B,MAAA,IAAIA,QAAO,OAAS,EAAA;AAClB,QAAA,gBAAA,CAAiBA,QAAO,OAAO,CAAA,CAAA;AAAA,OACjC;AAEA,MAAA,IAAIA,QAAO,QAAU,EAAA;AACnB,QAAA,wBAAA,CACG,UACA,CAAA,eAAA,CAAgB,kBAAsB,IAAA,IAAA,GAAA,kBAAA,GAAA,EAAA,EAAIA,QAAO,QAAQ,CAAA,CAAA;AAAA,OAC9D;AAEA,MAAA,IAAIA,QAAO,kBAAoB,EAAA;AAC7B,QAAa,YAAA,CAAA;AAAA,UACX,GAAGA,OAAO,CAAA,kBAAA;AAAA,UACV,SAAQF,GAAAE,GAAAA,OAAAA,CAAO,MAAP,KAAA,IAAA,GAAAF,MAAiB,EAAC;AAAA,UAC1B,2BACE,EAAAE,GAAAA,CAAAA,EAAAA,GAAAA,OAAAA,CAAO,OAAP,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAgB,6BAAhB,IAA4C,GAAA,EAAA,GAAA;AAAA,YAC1C,sBAAwB,EAAA,KAAA;AAAA,YACxB,YAAc,EAAA,EAAA;AAAA,YACd,QAAU,EAAA,EAAA;AAAA,YACV,SAAW,EAAA,EAAA;AAAA,YACX,qBAAuB,EAAA;AAAA,cACrB,OAAS,EAAA,EAAA;AAAA,cACT,OAAS,EAAA;AAAA,gBACP,SAAW,EAAA;AAAA,kBACT,KAAO,EAAA,EAAA;AAAA,kBACP,IAAM,EAAA,EAAA;AAAA,kBACN,UAAY,EAAA,EAAA;AAAA,iBACd;AAAA,gBACA,YAAc,EAAA;AAAA,kBACZ,KAAO,EAAA,EAAA;AAAA,kBACP,IAAM,EAAA,EAAA;AAAA,kBACN,UAAY,EAAA,EAAA;AAAA,iBACd;AAAA,eACF;AAAA,aACF;AAAA,WACF;AAAA,SACH,CAAA,CAAA;AAAA,OACH;AAAA,KACF;AAEA,IAAA,IAAI,+CAAe,KAAO,EAAA;AACxB,MAAA,wBAAA,CAAyB,QAAS,EAAA,CAAE,QAAS,CAAA,aAAA,CAAc,KAAK,CAAA,CAAA;AAAA,KAClE;AAAA,GACF,EAAG,CAAC,aAAa,CAAC,CAAA,CAAA;AAEhB,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,wBAA0B,EAAA;AAC5B,MAAA,2BAAA,CAA4B,wBAAwB,CAAA,CAAA;AAAA,KACtD;AAAA,GACC,EAAA,CAAC,wBAA0B,EAAA,2BAA2B,CAAC,CAAA,CAAA;AAK1D,EAAA,MAAM,EAAE,IAAA,EAAM,0BAA2B,EAAA,GAAI,QAAS,CAAA;AAAA,IACpD,QAAU,EAAA,CAAC,6BAA+B,EAAA,kBAAA,EAAoB,uBAAuB,CAAA;AAAA,IACrF,SAAS,MAAM,uBAAA,CAAwB,kBAAqB,EAAA,KAAA,EAAO,iCAAQ,QAAU,EAAA;AAAA,MACnF,uBAAA;AAAA,KACD,CAAA;AAAA,IACD,OAAS,EAAA,OAAA;AAAA,MACP,aACA,IAAA,CAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAe,cAAmB,MAAA,KAAA,CAAA,IAClC,kBACA,IAAA,uBAAA;AAAA,KACF;AAAA,IACA,SAAW,EAAA,QAAA;AAAA,IACX,cAAgB,EAAA,KAAA;AAAA,IAChB,oBAAsB,EAAA,KAAA;AAAA,GACvB,CAAA,CAAA;AAED,EAAM,MAAA,sBAAA,GAAyB,QAAQ,MAAM;AA9S/C,IAAA,IAAAF,GAAA,EAAA,EAAA,CAAA;AA+SI,IAAA,IAAI,CAAC,aAAiB,IAAA,CAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAe,cAAmB,MAAA,KAAA,CAAA,SAAkB,aAAe,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,cAAA,CAAA;AAEzF,IAAA,MAAM,OAAU,GAAA,yCAAA;AAAA,MAAA,CACd,MAAAA,GAAA,GAAA,0BAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,0BAAA,CAA4B,iBAA5B,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,GAAAA,CAA0C,SAA1C,IAAgD,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA;AAAA,KAClD,CAAA;AAEA,IAAA,OAAO,OAAQ,CAAA,eAAA,CAAgB,MAAS,GAAA,OAAA,GAAU,aAAe,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,cAAA,CAAA;AAAA,KAChE,CAAC,aAAA,EAAe,0BAA4B,EAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAe,cAAc,CAAC,CAAA,CAAA;AAa7E,EAAA,uBAEI,IAAA,CAAA,QAAA,EAAA,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,kBAAA;AAAA,QACA,uBAAA;AAAA,QACA,MAAA;AAAA,QACA,OAAA;AAAA,QACA,KAAA;AAAA,QACA,gBAAkB,EAAA,gBAAA;AAAA,QAClB,SAAS,MAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,QAAA;AAAA,QACjB,YAAA,EAAA,CAAc,EAAe,GAAA,aAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,YAAA,KAAf,IAA+B,GAAA,EAAA,GAAA,EAAA;AAAA,QAC7C,SAAS,aAAe,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAA,OAAA;AAAA,QACxB,cAAA;AAAA,QACA,cAAA;AAAA,QACA,aAAe,EAAA;AAAA,UACb,GAAG,aAAA;AAAA,UACH,cAAgB,EAAA,sBAAA;AAAA,UAChB,IAAA;AAAA,UACA,sBAAA;AAAA,SACF;AAAA,QACA,oBAAA;AAAA,QACA,UAAA;AAAA,OAAA;AAAA,KACF;AAAA,IACC,mBAAA,wBAAwB,yBAA0B,EAAA,EAAA,CAAA;AAAA,GACrD,EAAA,CAAA,CAAA;AAEJ,CAAA,CAAA;AAEA,sBAAe,aAAA;;;;"}
@@ -159,6 +159,10 @@ const ChatComponent = ({
159
159
  () => isInputEmpty || isFormValidating || !!isGlobalEditActive || isLastMessageUser,
160
160
  [isInputEmpty, isFormValidating, isGlobalEditActive, isLastMessageUser]
161
161
  );
162
+ const accessTokenRef = useRef(user == null ? void 0 : user.accessToken);
163
+ useEffect(() => {
164
+ accessTokenRef.current = user == null ? void 0 : user.accessToken;
165
+ }, [user == null ? void 0 : user.accessToken]);
162
166
  useEffect(() => {
163
167
  if (initialDraftMessage && !userInput) {
164
168
  setUserInput(initialDraftMessage);
@@ -338,7 +342,7 @@ const ChatComponent = ({
338
342
  method: "get",
339
343
  maxBodyLength: Infinity,
340
344
  url: `${url}/api/chatbot/getChatSettings?name=${chatAssistant}&organizationName=${organizationName}`,
341
- headers: {}
345
+ headers: (user == null ? void 0 : user.accessToken) ? { Authorization: `Bearer ${user.accessToken}` } : {}
342
346
  };
343
347
  http.request(config).then((response) => {
344
348
  var _a, _b, _c;
@@ -357,6 +361,7 @@ const ChatComponent = ({
357
361
  const requestOptions = {
358
362
  method: "GET",
359
363
  params: { guestSessionId: guestSessionIdRef.current },
364
+ headers: (user == null ? void 0 : user.accessToken) ? { Authorization: `Bearer ${user.accessToken}` } : {},
360
365
  withCredentials: true
361
366
  };
362
367
  http.get(getHistoryURL, requestOptions).then((response) => {
@@ -803,6 +808,11 @@ ${liveContent}` : liveContent;
803
808
  }
804
809
  return meta;
805
810
  };
811
+ const liveHeaders = {
812
+ get Authorization() {
813
+ return accessTokenRef.current ? `Bearer ${accessTokenRef.current}` : void 0;
814
+ }
815
+ };
806
816
  const params = {
807
817
  WEBSOCKET_URL: baseWebsocketUrl,
808
818
  organizationName,
@@ -820,9 +830,7 @@ ${liveContent}` : liveContent;
820
830
  chatPreviewId: chatPreviewIdRef.current,
821
831
  customMetaData: resolveMetaData(customMetaData),
822
832
  aiModel: "",
823
- additionalHeaders: (user == null ? void 0 : user.accessToken) ? {
824
- Authorization: `Bearer ${user.accessToken}`
825
- } : void 0,
833
+ additionalHeaders: liveHeaders,
826
834
  enableLogs: true,
827
835
  logControls: {
828
836
  infoLogs: enableChatLogs,