{"version":3,"file":"DashboardWidget.mjs","names":["React","forwardRef","memo","Suspense","isValidElement","useCallback","useMemo","useTranslation","WidgetCard","useShellStore","PageLoading","isRenderableComponent","Component","DashboardWidget","props","ref","$","_c","widgetType","id","deleteCard","children","params","paramValues","setParams","rest","className","style","widgetProps","t","widgetStyle","Object","prototype","hasOwnProperty","call","height","width","t0","t1","keys","length","t2","widgetPropsWithClassName","getWidget","isValidWidget","t3","onDelete","t4","bb0","t5","Symbol","for","res","$$typeof","Widget","then","widgetComp","default","t6","console","warn","paramDefs","bb1","fromEntries","entries","map","_temp","defaultParams","t7","name","value","setParam","defaultValue","t8","t9","t10","error","widgetElement","displayName","MemoizedDashboardWidget","key"],"sources":["../../src/dashboard/DashboardWidget.jsx"],"sourcesContent":["import React, {\n  forwardRef,\n  memo,\n  Suspense,\n  isValidElement,\n  useCallback,\n  useMemo\n} from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { WidgetCard } from './WidgetCard';\nimport { useShellStore } from '../stores/shellStore';\nimport { PageLoading } from '../UI/feedback/PageLoading';\n\nconst isRenderableComponent = (Component) =>\n  typeof Component === 'function' ||\n  (Component &&\n    typeof Component === 'object' &&\n    Component !== null &&\n    '$$typeof' in Component);\n\n/**\n * Widget implementation for dashboards that correctly handles lazy-loading.\n */\nconst DashboardWidget = forwardRef((props, ref) => {\n  const {\n    widgetType,\n    id,\n    deleteCard,\n    children,\n    params: paramValues,\n    setParams,\n    ...rest\n  } = props;\n  const { className, style, ...widgetProps } = rest;\n  const { t } = useTranslation();\n  const widgetStyle = { ...(widgetProps.style || {}) };\n\n  if (style && typeof style === 'object') {\n    if (Object.prototype.hasOwnProperty.call(style, 'height')) {\n      widgetStyle.height = style.height;\n    }\n    if (Object.prototype.hasOwnProperty.call(style, 'width')) {\n      widgetStyle.width = style.width;\n    }\n  }\n\n  const widgetPropsWithClassName = {\n    ...widgetProps,\n    ...(className ? { className } : {}),\n    ...(Object.keys(widgetStyle).length ? { style: widgetStyle } : {})\n  };\n  const { getWidget, isValidWidget } = useShellStore();\n\n  const onDelete = useCallback(() => {\n    deleteCard?.(id);\n  }, [deleteCard, id]);\n\n  const { Widget, params: paramDefs } = useMemo(() => {\n    if (!isValidWidget?.(widgetType)) {\n      return {};\n    }\n    const res = getWidget(widgetType);\n\n    // If getWidget returns null or undefined, widget not found\n    if (!res) {\n      return {};\n    }\n\n    // If it's already a React.lazy component (LazyExoticComponent), use it directly\n    // React.lazy components have a $$typeof property set to Symbol.for('react.lazy')\n    if (res.$$typeof === Symbol.for('react.lazy')) {\n      return { Widget: res, params: {} };\n    }\n\n    // Handle descriptor object format (widget with params)\n    if (res && typeof res === 'object' && !isValidElement(res) && !res.then) {\n      const widgetComp = res.Widget || res.default || null;\n      return { Widget: widgetComp, params: res.params || {} };\n    }\n\n    // If we receive anything else, it's an unsupported format.\n    console.warn(`getWidget returned an unexpected type for \"${widgetType}\":`, res);\n    return {};\n  }, [widgetType, getWidget, isValidWidget]);\n\n  const params = useMemo(() => {\n    if (!paramDefs) return paramValues || {};\n\n    const defaultParams = Object.fromEntries(\n      Object.entries(paramDefs).map(([key, { defaultValue }]) => [key, defaultValue])\n    );\n    return { ...defaultParams, ...paramValues };\n  }, [paramDefs, paramValues]);\n\n  const setParam = useCallback(\n    (name, value) => setParams(id, { [name]: value }),\n    [id, setParams]\n  );\n\n  if (!isValidWidget || !getWidget) {\n    return (\n      <div ref={ref} className={className} style={style}>\n        <WidgetCard\n          {...widgetPropsWithClassName}\n          title={t('common.error', { defaultValue: 'Error' })}\n        >\n          {t('dashboard.widget.functionsNotDefined', {\n            defaultValue: 'isValidWidget or getWidget functions are not defined'\n          })}\n        </WidgetCard>\n      </div>\n    );\n  }\n\n  if (!Widget) {\n    return (\n      <div ref={ref} className={className} style={style}>\n        <WidgetCard\n          {...widgetPropsWithClassName}\n          title={t('common.error', { defaultValue: 'Error' })}\n        >\n          {t('dashboard.widget.unknownType', {\n            defaultValue: 'Unknown widget type “{{widgetType}}”.',\n            widgetType\n          })}\n        </WidgetCard>\n      </div>\n    );\n  }\n\n  if (!isRenderableComponent(Widget)) {\n    console.error(\n      `DashboardWidget: widget \"${widgetType}\" resolved to a non-renderable component.`,\n      Widget\n    );\n    return (\n      <div ref={ref} className={className} style={style}>\n        <WidgetCard\n          {...widgetPropsWithClassName}\n          title={t('common.error', { defaultValue: 'Error' })}\n        >\n          {t('dashboard.widget.renderError', {\n            defaultValue:\n              'Unable to render widget type “{{widgetType}}”.',\n            widgetType\n          })}\n        </WidgetCard>\n      </div>\n    );\n  }\n\n  const widgetElement = (\n    <Widget\n      {...widgetPropsWithClassName}\n      id={id}\n      params={params}\n      setParam={setParam}\n      onDelete={onDelete}\n    >\n      {children}\n    </Widget>\n  );\n\n  return (\n    <div ref={ref} className={className} style={style}>\n      <Suspense fallback={<PageLoading />}>{widgetElement}</Suspense>\n    </div>\n  );\n});\n\nDashboardWidget.displayName = 'DashboardWidget';\n\nconst MemoizedDashboardWidget = memo(DashboardWidget);\nMemoizedDashboardWidget.displayName = 'DashboardWidget';\n\nexport default MemoizedDashboardWidget;\n"],"mappings":"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"}