{"version":3,"file":"Page.mjs","names":["React","useMemo","DashboardCardGrid","DashboardWidget","getWidgetLayout","StaticPageRenderer","useShellStore","Page","props","$","_c","gridConfig","widgetConfig","disableMargin","autoHeight","pageTypeId","getWidget","t0","JSON","parse","gridProperties","widgets","t1","normalizeNumber","_temp","layouts","widget","layout","breakpoint","__typename","defaultLayout","widgetType","mergedLayout","i","id","x","y","w","h","paramResizable","params","isResizable","Boolean","push","calculateLayouts","t2","layouts_0","t3","map","_temp2","cards","Number","t4","value","fallback","isFinite","parsed","__typename_0","widget_0"],"sources":["../../src/page/Page.jsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport DashboardCardGrid from '../dashboard/DashboardCardGrid';\nimport DashboardWidget from '../dashboard/DashboardWidget';\nimport getWidgetLayout from '../dashboard/getWidgetLayout.ts';\nimport StaticPageRenderer from './StaticPageRenderer';\nimport { useShellStore } from '../stores/shellStore';\n\nconst Page = (props) => {\n  const {\n    gridConfig,\n    widgetConfig,\n    disableMargin,\n    autoHeight,\n    pageTypeId,\n  } = props;\n  const { getWidget, isValidWidget } = useShellStore();\n  const gridProperties = gridConfig ? JSON.parse(gridConfig) : null;\n  let widgets = widgetConfig || null;\n\n  if (typeof widgetConfig === 'string') {\n    widgets = JSON.parse(widgetConfig);\n  }\n\n  const calculateLayouts = () => {\n    if (!widgets) return null;\n\n    const normalizeNumber = (value, fallback) => {\n      if (typeof value === 'number' && Number.isFinite(value)) {\n        return value;\n      }\n\n      if (typeof value === 'string') {\n        const parsed = Number(value);\n        if (Number.isFinite(parsed)) {\n          return parsed;\n        }\n      }\n\n      return fallback;\n    };\n\n    const layouts = {};\n    for (const widget of widgets) {\n      if (!widget?.layout) continue;\n\n      for (const breakpoint in widget.layout) {\n        if (breakpoint === '__typename' || !widget.layout[breakpoint]) continue;\n        layouts[breakpoint] = layouts[breakpoint] || [];\n        const { __typename, ...layout } = widget.layout[breakpoint];\n        const defaultLayout = getWidgetLayout(getWidget, widget.widgetType);\n        const mergedLayout = {\n          ...defaultLayout,\n          ...layout,\n          i: widget.id\n        };\n\n        mergedLayout.x = normalizeNumber(mergedLayout.x, 0);\n        mergedLayout.y = normalizeNumber(mergedLayout.y, 0);\n        mergedLayout.w = normalizeNumber(mergedLayout.w, defaultLayout?.w ?? 2);\n        mergedLayout.h = normalizeNumber(mergedLayout.h, defaultLayout?.h ?? 2);\n\n        const paramResizable = widget?.params?.isResizable;\n        mergedLayout.isResizable =\n          typeof paramResizable === 'boolean'\n            ? paramResizable\n            : Boolean(mergedLayout.isResizable);\n\n        layouts[breakpoint].push(mergedLayout);\n      }\n    }\n\n    return layouts;\n  };\n\n  const layouts = useMemo(\n    () => calculateLayouts(),\n    [calculateLayouts, widgetConfig]\n  );\n\n  const cards = useMemo(\n    () =>\n      widgets &&\n      widgets.map(({ __typename, ...widget }) => (\n        <DashboardWidget\n          key={widget.id}\n          {...widget}\n        />\n      )),\n    [widgets]\n  );\n\n  if (!layouts) return null;\n\n  if (Number(pageTypeId) === 1) {\n    return (\n      <StaticPageRenderer>\n        {cards}\n      </StaticPageRenderer>\n    );\n  }\n\n  return (\n    <DashboardCardGrid\n      layouts={layouts}\n      gridProperties={gridProperties}\n      disableMargin={disableMargin}\n      autoHeight={autoHeight}\n    >\n      {cards}\n    </DashboardCardGrid>\n  );\n};\nexport default Page;\n"],"mappings":"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"}