@burdenoff/microfe-planmagnet 2026.930.25 → 2026.1001.1

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 (258) hide show
  1. package/dist/_virtual/__vite-browser-external.js +9 -0
  2. package/dist/_virtual/__vite-browser-external.js.map +1 -0
  3. package/dist/_virtual/_rolldown/runtime.js +5 -2
  4. package/dist/index.js +3 -1
  5. package/dist/node_modules/fflate/esm/browser.js +554 -0
  6. package/dist/node_modules/fflate/esm/browser.js.map +1 -0
  7. package/dist/node_modules/jszip/dist/jszip.min.js +3038 -0
  8. package/dist/node_modules/jszip/dist/jszip.min.js.map +1 -0
  9. package/dist/node_modules/pptxgenjs/dist/pptxgen.es.js +2151 -0
  10. package/dist/node_modules/pptxgenjs/dist/pptxgen.es.js.map +1 -0
  11. package/dist/node_modules/write-excel-file/browser/index.js +3 -0
  12. package/dist/node_modules/write-excel-file/modules/export/convertFileContentToUint8ArrayBrowser.js +13 -0
  13. package/dist/node_modules/write-excel-file/modules/export/convertFileContentToUint8ArrayBrowser.js.map +1 -0
  14. package/dist/node_modules/write-excel-file/modules/export/convertFilesContentToUint8Arrays.js +21 -0
  15. package/dist/node_modules/write-excel-file/modules/export/convertFilesContentToUint8Arrays.js.map +1 -0
  16. package/dist/node_modules/write-excel-file/modules/export/downloadBlob.js +11 -0
  17. package/dist/node_modules/write-excel-file/modules/export/downloadBlob.js.map +1 -0
  18. package/dist/node_modules/write-excel-file/modules/export/writeXlsxFileBrowser.js +23 -0
  19. package/dist/node_modules/write-excel-file/modules/export/writeXlsxFileBrowser.js.map +1 -0
  20. package/dist/node_modules/write-excel-file/modules/export/writeXlsxFileUniversal.js +22 -0
  21. package/dist/node_modules/write-excel-file/modules/export/writeXlsxFileUniversal.js.map +1 -0
  22. package/dist/node_modules/write-excel-file/modules/getSheetData/getSheetData.js +18 -0
  23. package/dist/node_modules/write-excel-file/modules/getSheetData/getSheetData.js.map +1 -0
  24. package/dist/node_modules/write-excel-file/modules/xlsx/features/conditionalFormatting.js +131 -0
  25. package/dist/node_modules/write-excel-file/modules/xlsx/features/conditionalFormatting.js.map +1 -0
  26. package/dist/node_modules/write-excel-file/modules/xlsx/features/images.js +188 -0
  27. package/dist/node_modules/write-excel-file/modules/xlsx/features/images.js.map +1 -0
  28. package/dist/node_modules/write-excel-file/modules/xlsx/features/stickyRowsOrColumns.js +52 -0
  29. package/dist/node_modules/write-excel-file/modules/xlsx/features/stickyRowsOrColumns.js.map +1 -0
  30. package/dist/node_modules/write-excel-file/modules/xlsx/files/_Content_Types_.xml.js +18 -0
  31. package/dist/node_modules/write-excel-file/modules/xlsx/files/_Content_Types_.xml.js.map +1 -0
  32. package/dist/node_modules/write-excel-file/modules/xlsx/files/drawing.xml.js +18 -0
  33. package/dist/node_modules/write-excel-file/modules/xlsx/files/drawing.xml.js.map +1 -0
  34. package/dist/node_modules/write-excel-file/modules/xlsx/files/drawing.xml.rels.js +17 -0
  35. package/dist/node_modules/write-excel-file/modules/xlsx/files/drawing.xml.rels.js.map +1 -0
  36. package/dist/node_modules/write-excel-file/modules/xlsx/files/rels.js +11 -0
  37. package/dist/node_modules/write-excel-file/modules/xlsx/files/rels.js.map +1 -0
  38. package/dist/node_modules/write-excel-file/modules/xlsx/files/sharedStrings.xml.js +42 -0
  39. package/dist/node_modules/write-excel-file/modules/xlsx/files/sharedStrings.xml.js.map +1 -0
  40. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/cell.js +102 -0
  41. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/cell.js.map +1 -0
  42. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/column.js +17 -0
  43. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/column.js.map +1 -0
  44. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/columns.js +15 -0
  45. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/columns.js.map +1 -0
  46. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/drawingReference.js +8 -0
  47. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/drawingReference.js.map +1 -0
  48. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/helpers/getCellStyleProperties.js +71 -0
  49. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/helpers/getCellStyleProperties.js.map +1 -0
  50. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/mergedCellsDescription.js +56 -0
  51. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/mergedCellsDescription.js.map +1 -0
  52. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/pageMargins.js +15 -0
  53. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/pageMargins.js.map +1 -0
  54. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/pageSetup.js +13 -0
  55. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/pageSetup.js.map +1 -0
  56. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/processMergedCells.js +44 -0
  57. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/processMergedCells.js.map +1 -0
  58. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/row.js +123 -0
  59. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/row.js.map +1 -0
  60. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheet.xml.js +41 -0
  61. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheet.xml.js.map +1 -0
  62. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheetData.js +11 -0
  63. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheetData.js.map +1 -0
  64. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheetViews.js +17 -0
  65. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheetViews.js.map +1 -0
  66. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml.rels.js +20 -0
  67. package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml.rels.js.map +1 -0
  68. package/dist/node_modules/write-excel-file/modules/xlsx/files/styles.xml.js +77 -0
  69. package/dist/node_modules/write-excel-file/modules/xlsx/files/styles.xml.js.map +1 -0
  70. package/dist/node_modules/write-excel-file/modules/xlsx/files/workbook.xml.js +22 -0
  71. package/dist/node_modules/write-excel-file/modules/xlsx/files/workbook.xml.js.map +1 -0
  72. package/dist/node_modules/write-excel-file/modules/xlsx/files/workbook.xml.rels.js +13 -0
  73. package/dist/node_modules/write-excel-file/modules/xlsx/files/workbook.xml.rels.js.map +1 -0
  74. package/dist/node_modules/write-excel-file/modules/xlsx/generateXlsxFileContents.js +242 -0
  75. package/dist/node_modules/write-excel-file/modules/xlsx/generateXlsxFileContents.js.map +1 -0
  76. package/dist/node_modules/write-excel-file/modules/xlsx/getFeatures.js +29 -0
  77. package/dist/node_modules/write-excel-file/modules/xlsx/getFeatures.js.map +1 -0
  78. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/convertDateToSerialNumber.js +9 -0
  79. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/convertDateToSerialNumber.js.map +1 -0
  80. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getAdditionalContent.js +42 -0
  81. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getAdditionalContent.js.map +1 -0
  82. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getElementXml.js +43 -0
  83. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getElementXml.js.map +1 -0
  84. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getWrittenFiles.js +93 -0
  85. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getWrittenFiles.js.map +1 -0
  86. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/transformContent.js +39 -0
  87. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/transformContent.js.map +1 -0
  88. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getAlignmentXml.js +17 -0
  89. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getAlignmentXml.js.map +1 -0
  90. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getBorderXml.js +29 -0
  91. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getBorderXml.js.map +1 -0
  92. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getCellAddress.js +14 -0
  93. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getCellAddress.js.map +1 -0
  94. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFileExtensionForContentType.js +11 -0
  95. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFileExtensionForContentType.js.map +1 -0
  96. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFillXml.js +14 -0
  97. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFillXml.js.map +1 -0
  98. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFontXml.js +12 -0
  99. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFontXml.js.map +1 -0
  100. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getOrderOfSiblings.js +24 -0
  101. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getOrderOfSiblings.js.map +1 -0
  102. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getXlsxColorForHexColor.js +9 -0
  103. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getXlsxColorForHexColor.js.map +1 -0
  104. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasAlignment.js +9 -0
  105. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasAlignment.js.map +1 -0
  106. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasBorder.js +9 -0
  107. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasBorder.js.map +1 -0
  108. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasFill.js +9 -0
  109. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasFill.js.map +1 -0
  110. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasFont.js +9 -0
  111. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasFont.js.map +1 -0
  112. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/isCellObject.js +9 -0
  113. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/isCellObject.js.map +1 -0
  114. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/isObject.js +9 -0
  115. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/isObject.js.map +1 -0
  116. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/orderOfSiblings.js +27 -0
  117. package/dist/node_modules/write-excel-file/modules/xlsx/helpers/orderOfSiblings.js.map +1 -0
  118. package/dist/node_modules/write-excel-file/modules/xlsx/initializeSharedStrings.js +17 -0
  119. package/dist/node_modules/write-excel-file/modules/xlsx/initializeSharedStrings.js.map +1 -0
  120. package/dist/node_modules/write-excel-file/modules/xlsx/initializeSheets.js +74 -0
  121. package/dist/node_modules/write-excel-file/modules/xlsx/initializeSheets.js.map +1 -0
  122. package/dist/node_modules/write-excel-file/modules/xlsx/initializeStyles.js +138 -0
  123. package/dist/node_modules/write-excel-file/modules/xlsx/initializeStyles.js.map +1 -0
  124. package/dist/node_modules/write-excel-file/modules/xlsx/validateSheetData.js +40 -0
  125. package/dist/node_modules/write-excel-file/modules/xlsx/validateSheetData.js.map +1 -0
  126. package/dist/node_modules/write-excel-file/modules/xlsx/validateSheetName.js +11 -0
  127. package/dist/node_modules/write-excel-file/modules/xlsx/validateSheetName.js.map +1 -0
  128. package/dist/node_modules/write-excel-file/modules/xml/appendMarkupInsideElement.js +9 -0
  129. package/dist/node_modules/write-excel-file/modules/xml/appendMarkupInsideElement.js.map +1 -0
  130. package/dist/node_modules/write-excel-file/modules/xml/applyEnclosingElementOffset.js +9 -0
  131. package/dist/node_modules/write-excel-file/modules/xml/applyEnclosingElementOffset.js.map +1 -0
  132. package/dist/node_modules/write-excel-file/modules/xml/escapeXmlSpecialCharacters.js +12 -0
  133. package/dist/node_modules/write-excel-file/modules/xml/escapeXmlSpecialCharacters.js.map +1 -0
  134. package/dist/node_modules/write-excel-file/modules/xml/findElement.js +12 -0
  135. package/dist/node_modules/write-excel-file/modules/xml/findElement.js.map +1 -0
  136. package/dist/node_modules/write-excel-file/modules/xml/findElementInsideElement.js +12 -0
  137. package/dist/node_modules/write-excel-file/modules/xml/findElementInsideElement.js.map +1 -0
  138. package/dist/node_modules/write-excel-file/modules/xml/findElementsNonRecursive_.js +41 -0
  139. package/dist/node_modules/write-excel-file/modules/xml/findElementsNonRecursive_.js.map +1 -0
  140. package/dist/node_modules/write-excel-file/modules/xml/getAttributesString.js +14 -0
  141. package/dist/node_modules/write-excel-file/modules/xml/getAttributesString.js.map +1 -0
  142. package/dist/node_modules/write-excel-file/modules/xml/getChildElements.js +42 -0
  143. package/dist/node_modules/write-excel-file/modules/xml/getChildElements.js.map +1 -0
  144. package/dist/node_modules/write-excel-file/modules/xml/getClosingTagMarkup.js +8 -0
  145. package/dist/node_modules/write-excel-file/modules/xml/getClosingTagMarkup.js.map +1 -0
  146. package/dist/node_modules/write-excel-file/modules/xml/getMarkupInsideElement.js +8 -0
  147. package/dist/node_modules/write-excel-file/modules/xml/getMarkupInsideElement.js.map +1 -0
  148. package/dist/node_modules/write-excel-file/modules/xml/getOpeningTagMarkup.js +9 -0
  149. package/dist/node_modules/write-excel-file/modules/xml/getOpeningTagMarkup.js.map +1 -0
  150. package/dist/node_modules/write-excel-file/modules/xml/getSelfClosingTagMarkup.js +9 -0
  151. package/dist/node_modules/write-excel-file/modules/xml/getSelfClosingTagMarkup.js.map +1 -0
  152. package/dist/node_modules/write-excel-file/modules/xml/insertElementMarkupAccordingToOrderOfSiblings.js +64 -0
  153. package/dist/node_modules/write-excel-file/modules/xml/insertElementMarkupAccordingToOrderOfSiblings.js.map +1 -0
  154. package/dist/node_modules/write-excel-file/modules/xml/prependMarkupInsideElement.js +9 -0
  155. package/dist/node_modules/write-excel-file/modules/xml/prependMarkupInsideElement.js.map +1 -0
  156. package/dist/node_modules/write-excel-file/modules/xml/removeInvalidXmlCharacters.js +9 -0
  157. package/dist/node_modules/write-excel-file/modules/xml/removeInvalidXmlCharacters.js.map +1 -0
  158. package/dist/node_modules/write-excel-file/modules/xml/replaceElement.js +8 -0
  159. package/dist/node_modules/write-excel-file/modules/xml/replaceElement.js.map +1 -0
  160. package/dist/node_modules/write-excel-file/modules/xml/sanitizeAttributeName.js +10 -0
  161. package/dist/node_modules/write-excel-file/modules/xml/sanitizeAttributeName.js.map +1 -0
  162. package/dist/node_modules/write-excel-file/modules/xml/sanitizeAttributeValue.js +11 -0
  163. package/dist/node_modules/write-excel-file/modules/xml/sanitizeAttributeValue.js.map +1 -0
  164. package/dist/node_modules/write-excel-file/modules/xml/sanitizeTextContent.js +11 -0
  165. package/dist/node_modules/write-excel-file/modules/xml/sanitizeTextContent.js.map +1 -0
  166. package/dist/node_modules/write-excel-file/modules/xml/setMarkupInsideElement.js +8 -0
  167. package/dist/node_modules/write-excel-file/modules/xml/setMarkupInsideElement.js.map +1 -0
  168. package/dist/node_modules/write-excel-file/modules/zip/zipToArrayBuffer.js +18 -0
  169. package/dist/node_modules/write-excel-file/modules/zip/zipToArrayBuffer.js.map +1 -0
  170. package/dist/planmagnet/PlanMagnetRoot.d.ts.map +1 -1
  171. package/dist/planmagnet/PlanMagnetRoot.js +154 -147
  172. package/dist/planmagnet/PlanMagnetRoot.js.map +1 -1
  173. package/dist/planmagnet/PlanMagnetRoutes.d.ts.map +1 -1
  174. package/dist/planmagnet/PlanMagnetRoutes.js +122 -106
  175. package/dist/planmagnet/PlanMagnetRoutes.js.map +1 -1
  176. package/dist/planmagnet/controls/Pickers.d.ts +10 -0
  177. package/dist/planmagnet/controls/Pickers.d.ts.map +1 -1
  178. package/dist/planmagnet/controls/Pickers.js +75 -27
  179. package/dist/planmagnet/controls/Pickers.js.map +1 -1
  180. package/dist/planmagnet/index.d.ts +2 -0
  181. package/dist/planmagnet/index.d.ts.map +1 -1
  182. package/dist/planmagnet/index.js +2 -0
  183. package/dist/planmagnet/pages/ReportsCreateReportPagePage.d.ts +6 -0
  184. package/dist/planmagnet/pages/ReportsCreateReportPagePage.d.ts.map +1 -1
  185. package/dist/planmagnet/pages/ReportsCreateReportPagePage.js +5 -177
  186. package/dist/planmagnet/pages/ReportsCreateReportPagePage.js.map +1 -1
  187. package/dist/planmagnet/pages/ReportsEditReportPagePage.d.ts +3 -0
  188. package/dist/planmagnet/pages/ReportsEditReportPagePage.d.ts.map +1 -0
  189. package/dist/planmagnet/pages/ReportsEditReportPagePage.js +15 -0
  190. package/dist/planmagnet/pages/ReportsEditReportPagePage.js.map +1 -0
  191. package/dist/planmagnet/pages/ReportsReportPagePage.d.ts +7 -0
  192. package/dist/planmagnet/pages/ReportsReportPagePage.d.ts.map +1 -0
  193. package/dist/planmagnet/pages/ReportsReportPagePage.js +226 -0
  194. package/dist/planmagnet/pages/ReportsReportPagePage.js.map +1 -0
  195. package/dist/planmagnet/pages/ReportsReportsPagePage.d.ts.map +1 -1
  196. package/dist/planmagnet/pages/ReportsReportsPagePage.js +224 -496
  197. package/dist/planmagnet/pages/ReportsReportsPagePage.js.map +1 -1
  198. package/dist/planmagnet/reports/ExportMenu.d.ts +9 -0
  199. package/dist/planmagnet/reports/ExportMenu.d.ts.map +1 -0
  200. package/dist/planmagnet/reports/ExportMenu.js +116 -0
  201. package/dist/planmagnet/reports/ExportMenu.js.map +1 -0
  202. package/dist/planmagnet/reports/PrintReportView.d.ts +24 -0
  203. package/dist/planmagnet/reports/PrintReportView.d.ts.map +1 -0
  204. package/dist/planmagnet/reports/PrintReportView.js +75 -0
  205. package/dist/planmagnet/reports/PrintReportView.js.map +1 -0
  206. package/dist/planmagnet/reports/ReportBuilderCanvas.d.ts +8 -0
  207. package/dist/planmagnet/reports/ReportBuilderCanvas.d.ts.map +1 -0
  208. package/dist/planmagnet/reports/ReportBuilderCanvas.js +261 -0
  209. package/dist/planmagnet/reports/ReportBuilderCanvas.js.map +1 -0
  210. package/dist/planmagnet/reports/ReportBuilderPage.d.ts +5 -0
  211. package/dist/planmagnet/reports/ReportBuilderPage.d.ts.map +1 -0
  212. package/dist/planmagnet/reports/ReportBuilderPage.js +198 -0
  213. package/dist/planmagnet/reports/ReportBuilderPage.js.map +1 -0
  214. package/dist/planmagnet/reports/ReportRunHistory.d.ts +8 -0
  215. package/dist/planmagnet/reports/ReportRunHistory.d.ts.map +1 -0
  216. package/dist/planmagnet/reports/ReportRunHistory.js +63 -0
  217. package/dist/planmagnet/reports/ReportRunHistory.js.map +1 -0
  218. package/dist/planmagnet/reports/ReportWidgetRenderer.d.ts +7 -0
  219. package/dist/planmagnet/reports/ReportWidgetRenderer.d.ts.map +1 -0
  220. package/dist/planmagnet/reports/ReportWidgetRenderer.js +251 -0
  221. package/dist/planmagnet/reports/ReportWidgetRenderer.js.map +1 -0
  222. package/dist/planmagnet/reports/SchedulesPanel.d.ts +4 -0
  223. package/dist/planmagnet/reports/SchedulesPanel.d.ts.map +1 -0
  224. package/dist/planmagnet/reports/SchedulesPanel.js +457 -0
  225. package/dist/planmagnet/reports/SchedulesPanel.js.map +1 -0
  226. package/dist/planmagnet/reports/ShareDialog.d.ts +5 -0
  227. package/dist/planmagnet/reports/ShareDialog.d.ts.map +1 -0
  228. package/dist/planmagnet/reports/ShareDialog.js +234 -0
  229. package/dist/planmagnet/reports/ShareDialog.js.map +1 -0
  230. package/dist/planmagnet/reports/SharedReportPage.d.ts +4 -0
  231. package/dist/planmagnet/reports/SharedReportPage.d.ts.map +1 -0
  232. package/dist/planmagnet/reports/SharedReportPage.js +180 -0
  233. package/dist/planmagnet/reports/SharedReportPage.js.map +1 -0
  234. package/dist/planmagnet/reports/WidgetEditorDialog.d.ts +10 -0
  235. package/dist/planmagnet/reports/WidgetEditorDialog.d.ts.map +1 -0
  236. package/dist/planmagnet/reports/WidgetEditorDialog.js +220 -0
  237. package/dist/planmagnet/reports/WidgetEditorDialog.js.map +1 -0
  238. package/dist/planmagnet/reports/reportExportPptx.d.ts +4 -0
  239. package/dist/planmagnet/reports/reportExportPptx.d.ts.map +1 -0
  240. package/dist/planmagnet/reports/reportExportPptx.js +118 -0
  241. package/dist/planmagnet/reports/reportExportPptx.js.map +1 -0
  242. package/dist/planmagnet/reports/reportExportXlsx.d.ts +4 -0
  243. package/dist/planmagnet/reports/reportExportXlsx.d.ts.map +1 -0
  244. package/dist/planmagnet/reports/reportExportXlsx.js +42 -0
  245. package/dist/planmagnet/reports/reportExportXlsx.js.map +1 -0
  246. package/dist/planmagnet/reports/reportGraphql.d.ts +28 -0
  247. package/dist/planmagnet/reports/reportGraphql.d.ts.map +1 -0
  248. package/dist/planmagnet/reports/reportGraphql.js +360 -0
  249. package/dist/planmagnet/reports/reportGraphql.js.map +1 -0
  250. package/dist/planmagnet/reports/reportModel.d.ts +198 -0
  251. package/dist/planmagnet/reports/reportModel.d.ts.map +1 -0
  252. package/dist/planmagnet/reports/reportModel.js +328 -0
  253. package/dist/planmagnet/reports/reportModel.js.map +1 -0
  254. package/dist/planmagnet/reports/sharedReportRoute.d.ts +14 -0
  255. package/dist/planmagnet/reports/sharedReportRoute.d.ts.map +1 -0
  256. package/dist/planmagnet/reports/sharedReportRoute.js +9 -0
  257. package/dist/planmagnet/reports/sharedReportRoute.js.map +1 -0
  258. package/package.json +6 -4
@@ -0,0 +1,251 @@
1
+ import { Legend as e } from "../../node_modules/recharts/es6/component/Legend.js";
2
+ import { Tooltip as t } from "../../node_modules/recharts/es6/component/Tooltip.js";
3
+ import { ResponsiveContainer as n } from "../../node_modules/recharts/es6/component/ResponsiveContainer.js";
4
+ import { Bar as r } from "../../node_modules/recharts/es6/cartesian/Bar.js";
5
+ import { CartesianGrid as i } from "../../node_modules/recharts/es6/cartesian/CartesianGrid.js";
6
+ import { XAxis as a } from "../../node_modules/recharts/es6/cartesian/XAxis.js";
7
+ import { YAxis as o } from "../../node_modules/recharts/es6/cartesian/YAxis.js";
8
+ import { BarChart as s } from "../../node_modules/recharts/es6/chart/BarChart.js";
9
+ import { extractRows as c, humanizeKey as l, pickLabelField as u, pickNumericFields as d, scalarFields as f } from "./reportModel.js";
10
+ import { useId as p, useMemo as m, useState as h } from "react";
11
+ import { AlertTriangle as g, ChevronDown as _, ChevronRight as v, Lock as y } from "lucide-react";
12
+ import { jsx as b, jsxs as x } from "react/jsx-runtime";
13
+ import { Table as S, TableBody as C, TableCaption as w, TableCell as T, TableHead as E, TableHeader as D, TableRow as O } from "@burdenoff/fe-libs/ui";
14
+ //#region src/planmagnet/reports/ReportWidgetRenderer.tsx
15
+ var k = [
16
+ "var(--color-chart-1)",
17
+ "var(--color-chart-2)",
18
+ "var(--color-chart-3)",
19
+ "var(--color-chart-4)",
20
+ "var(--color-chart-5)",
21
+ "var(--color-chart-6)"
22
+ ], A = 4, j = 60, M = 8, N = 100;
23
+ function P(e) {
24
+ return typeof e == "string" && /^\d{4}-\d{2}-\d{2}([T ]|$)/.test(e);
25
+ }
26
+ function F(e) {
27
+ if (e == null) return "—";
28
+ if (typeof e == "boolean") return e ? "Yes" : "No";
29
+ if (P(e)) {
30
+ let t = new Date(e);
31
+ if (!Number.isNaN(t.getTime())) return `${t.getUTCFullYear()}-${String(t.getUTCMonth() + 1).padStart(2, "0")}-${String(t.getUTCDate()).padStart(2, "0")}`;
32
+ }
33
+ return typeof e == "number" ? Number.isInteger(e) ? String(e) : e.toFixed(2) : String(e);
34
+ }
35
+ function I(e) {
36
+ if (P(e)) {
37
+ let t = new Date(e);
38
+ if (!Number.isNaN(t.getTime())) return `${t.getUTCMonth() + 1}/${t.getUTCDate()}`;
39
+ }
40
+ return e == null ? "" : String(e);
41
+ }
42
+ function L(e, t) {
43
+ let n = /* @__PURE__ */ new Set(), r = [];
44
+ t && (n.add(t), r.push(t));
45
+ for (let t of e) for (let [e] of f(t)) if (!n.has(e) && (n.add(e), r.push(e), r.length >= M)) return r;
46
+ return r;
47
+ }
48
+ function R(e) {
49
+ return !e || typeof e != "object" || Array.isArray(e) ? [] : f(e);
50
+ }
51
+ function z(e) {
52
+ let t = [{
53
+ label: "Count",
54
+ value: String(e.length)
55
+ }], n = d(e, u(e)).slice(0, 4);
56
+ for (let r of n) {
57
+ let n = e.reduce((e, t) => {
58
+ let n = t[r];
59
+ return e + (typeof n == "number" ? n : 0);
60
+ }, 0);
61
+ t.push({
62
+ label: `Total ${l(r)}`,
63
+ value: F(n)
64
+ });
65
+ }
66
+ return t;
67
+ }
68
+ function B({ result: e }) {
69
+ let t = R(e), n = t.length > 0 ? t.map(([e, t]) => ({
70
+ label: l(e),
71
+ value: F(t)
72
+ })) : z(c(e));
73
+ return n.length === 0 ? /* @__PURE__ */ b("p", {
74
+ className: "text-sm text-muted-foreground",
75
+ children: "No figures in this result."
76
+ }) : /* @__PURE__ */ b("dl", {
77
+ className: "grid grid-cols-2 gap-3 sm:grid-cols-3",
78
+ children: n.map((e) => /* @__PURE__ */ x("div", {
79
+ className: "rounded-md border border-border bg-muted/40 p-2",
80
+ children: [/* @__PURE__ */ b("dt", {
81
+ className: "text-[11px] text-muted-foreground",
82
+ children: e.label
83
+ }), /* @__PURE__ */ b("dd", {
84
+ className: "text-lg font-semibold tabular-nums",
85
+ children: e.value
86
+ })]
87
+ }, e.label))
88
+ });
89
+ }
90
+ function V({ rows: e, labelField: t, title: n }) {
91
+ let [r, i] = h(!1), a = p(), o = L(e, t);
92
+ return /* @__PURE__ */ x("div", {
93
+ className: "mt-2",
94
+ children: [/* @__PURE__ */ x("button", {
95
+ type: "button",
96
+ className: "inline-flex items-center gap-1 text-xs font-medium text-primary hover:underline",
97
+ "aria-expanded": r,
98
+ "aria-controls": a,
99
+ onClick: () => i((e) => !e),
100
+ children: [b(r ? _ : v, { className: "h-3 w-3" }), "View data as a table"]
101
+ }), r && /* @__PURE__ */ b("div", {
102
+ id: a,
103
+ className: "mt-2 max-h-64 overflow-auto rounded-md border border-border",
104
+ children: /* @__PURE__ */ b(H, {
105
+ rows: e,
106
+ columns: o,
107
+ caption: `${n} — data`
108
+ })
109
+ })]
110
+ });
111
+ }
112
+ function H({ rows: e, columns: t, caption: n }) {
113
+ let r = e.slice(0, N);
114
+ return /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ x(S, { children: [
115
+ /* @__PURE__ */ b(w, {
116
+ className: "sr-only",
117
+ children: n
118
+ }),
119
+ /* @__PURE__ */ b(D, { children: /* @__PURE__ */ b(O, { children: t.map((e) => /* @__PURE__ */ b(E, {
120
+ scope: "col",
121
+ children: l(e)
122
+ }, e)) }) }),
123
+ /* @__PURE__ */ b(C, { children: r.map((e, n) => /* @__PURE__ */ b(O, { children: t.map((t) => /* @__PURE__ */ b(T, { children: F(e[t]) }, t)) }, n)) })
124
+ ] }), e.length > r.length && /* @__PURE__ */ x("p", {
125
+ className: "p-2 text-left text-xs text-muted-foreground",
126
+ children: [
127
+ "Showing ",
128
+ r.length,
129
+ " of ",
130
+ e.length,
131
+ " rows."
132
+ ]
133
+ })] });
134
+ }
135
+ function U({ result: f, title: p }) {
136
+ let h = m(() => c(f), [f]), g = m(() => u(h), [h]), _ = m(() => d(h, g).slice(0, A), [h, g]);
137
+ return h.length < 2 || _.length === 0 ? /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", {
138
+ className: "mb-2 text-xs text-muted-foreground",
139
+ children: "Not enough rows to chart — showing the figures instead."
140
+ }), /* @__PURE__ */ b(B, { result: f })] }) : /* @__PURE__ */ x("div", { children: [
141
+ /* @__PURE__ */ b(n, {
142
+ width: "100%",
143
+ height: 220,
144
+ children: /* @__PURE__ */ x(s, {
145
+ data: h.slice(0, j).map((e, t) => {
146
+ let n = { __label: g ? I(e[g]) : String(t + 1) };
147
+ for (let t of _) {
148
+ let r = e[t];
149
+ n[t] = typeof r == "number" ? r : 0;
150
+ }
151
+ return n;
152
+ }),
153
+ children: [
154
+ /* @__PURE__ */ b(i, {
155
+ strokeDasharray: "3 3",
156
+ opacity: .2
157
+ }),
158
+ /* @__PURE__ */ b(a, {
159
+ dataKey: "__label",
160
+ tick: { fontSize: 11 }
161
+ }),
162
+ /* @__PURE__ */ b(o, {
163
+ tick: { fontSize: 11 },
164
+ allowDecimals: !1
165
+ }),
166
+ /* @__PURE__ */ b(t, {}),
167
+ _.length > 1 && /* @__PURE__ */ b(e, { wrapperStyle: { fontSize: 12 } }),
168
+ _.map((e, t) => /* @__PURE__ */ b(r, {
169
+ dataKey: e,
170
+ name: l(e),
171
+ fill: k[t % k.length]
172
+ }, e))
173
+ ]
174
+ })
175
+ }),
176
+ h.length > j && /* @__PURE__ */ x("p", {
177
+ className: "mt-1 text-[11px] text-muted-foreground",
178
+ children: [
179
+ "Showing the first ",
180
+ j,
181
+ " of ",
182
+ h.length,
183
+ " rows."
184
+ ]
185
+ }),
186
+ /* @__PURE__ */ b(V, {
187
+ rows: h,
188
+ labelField: g,
189
+ title: p
190
+ })
191
+ ] });
192
+ }
193
+ function W({ result: e }) {
194
+ let t = m(() => c(e), [e]), n = m(() => u(t), [t]);
195
+ return t.length === 0 ? /* @__PURE__ */ b("p", {
196
+ className: "text-sm text-muted-foreground",
197
+ children: "No rows in this result."
198
+ }) : /* @__PURE__ */ b("div", {
199
+ className: "max-h-80 overflow-auto rounded-md border border-border",
200
+ children: /* @__PURE__ */ b(H, {
201
+ rows: t,
202
+ columns: L(t, n),
203
+ caption: "Widget data"
204
+ })
205
+ });
206
+ }
207
+ function G({ widget: e, runResult: t }) {
208
+ if (e.type === "TEXT") return /* @__PURE__ */ b("div", {
209
+ className: "flex h-full items-center border-b border-border pb-1",
210
+ children: /* @__PURE__ */ b("h3", {
211
+ className: "text-sm font-semibold uppercase tracking-wide text-muted-foreground",
212
+ children: e.title
213
+ })
214
+ });
215
+ if (!t) return /* @__PURE__ */ b("p", {
216
+ className: "text-sm text-muted-foreground",
217
+ children: "Not run yet — choose “Run now” above."
218
+ });
219
+ if (t.status === "FORBIDDEN") return /* @__PURE__ */ x("div", {
220
+ className: "flex items-start gap-2 text-sm text-muted-foreground",
221
+ role: "status",
222
+ children: [/* @__PURE__ */ b(y, {
223
+ className: "mt-0.5 h-4 w-4 shrink-0",
224
+ "aria-hidden": !0
225
+ }), /* @__PURE__ */ x("div", { children: [/* @__PURE__ */ b("p", { children: "You do not have access to this data." }), t.message && /* @__PURE__ */ b("p", {
226
+ className: "text-xs",
227
+ children: t.message
228
+ })] })]
229
+ });
230
+ if (t.status === "ERROR") return /* @__PURE__ */ x("div", {
231
+ className: "flex items-start gap-2 text-sm text-destructive",
232
+ role: "alert",
233
+ children: [/* @__PURE__ */ b(g, {
234
+ className: "mt-0.5 h-4 w-4 shrink-0",
235
+ "aria-hidden": !0
236
+ }), /* @__PURE__ */ b("p", { children: t.message ?? "This widget could not be generated." })]
237
+ });
238
+ switch (e.type) {
239
+ case "KPI": return /* @__PURE__ */ b(B, { result: t.result });
240
+ case "CHART": return /* @__PURE__ */ b(U, {
241
+ result: t.result,
242
+ title: e.title
243
+ });
244
+ case "TABLE": return /* @__PURE__ */ b(W, { result: t.result });
245
+ default: return null;
246
+ }
247
+ }
248
+ //#endregion
249
+ export { G as ReportWidgetRenderer };
250
+
251
+ //# sourceMappingURL=ReportWidgetRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportWidgetRenderer.js","names":[],"sources":["../../../src/planmagnet/reports/ReportWidgetRenderer.tsx"],"sourcesContent":["import { useId, useMemo, useState } from 'react';\nimport {\n Bar,\n BarChart,\n CartesianGrid,\n Legend,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from 'recharts';\nimport { Lock, ChevronDown, ChevronRight, AlertTriangle } from 'lucide-react';\nimport {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from '@burdenoff/fe-libs/ui';\nimport {\n extractRows,\n humanizeKey,\n pickLabelField,\n pickNumericFields,\n scalarFields,\n type ReportWidget,\n type Row,\n type WidgetRunResult,\n} from './reportModel';\n\n/**\n * Renders one widget's run result (ANR-13/15). The widget's `type` (KPI/CHART/TABLE/TEXT) decides the shape;\n * within CHART/TABLE/KPI, the actual rows/fields are derived generically from the JSON `result` via\n * `reportModel`'s `extractRows`/`pickLabelField`/`pickNumericFields` — there is no per-source switch here, so\n * every one of the 15 `PlanmagnetReportSource`s (including ones added later) renders without a code change.\n *\n * FORBIDDEN and ERROR always show an explicit message (never an empty chart/table) — see the widget-status\n * branch below. Every CHART also carries a same-data `<table>` (a `<details>` disclosure, not visually hidden)\n * as its text alternative, per this package's accessibility bar.\n */\n\nconst CHART_COLORS = [\n 'var(--color-chart-1)',\n 'var(--color-chart-2)',\n 'var(--color-chart-3)',\n 'var(--color-chart-4)',\n 'var(--color-chart-5)',\n 'var(--color-chart-6)',\n];\nconst MAX_CHART_SERIES = 4;\nconst MAX_CHART_POINTS = 60;\nconst MAX_TABLE_COLUMNS = 8;\nconst MAX_TABLE_ROWS = 100;\n\nfunction isIsoDateish(value: unknown): value is string {\n return typeof value === 'string' && /^\\d{4}-\\d{2}-\\d{2}([T ]|$)/.test(value);\n}\n\n/** A scalar cell value as readable text — dates shortened to M/D, booleans spelled out, null/undefined blank. */\nfunction formatCell(value: unknown): string {\n if (value === null || value === undefined) return '—';\n if (typeof value === 'boolean') return value ? 'Yes' : 'No';\n if (isIsoDateish(value)) {\n const date = new Date(value);\n if (!Number.isNaN(date.getTime())) {\n return `${date.getUTCFullYear()}-${String(date.getUTCMonth() + 1).padStart(2, '0')}-${String(\n date.getUTCDate()\n ).padStart(2, '0')}`;\n }\n }\n if (typeof value === 'number') return Number.isInteger(value) ? String(value) : value.toFixed(2);\n return String(value);\n}\n\n/** The x-axis label for a chart point: a short date for date-ish values, the raw string/number otherwise. */\nfunction formatAxisLabel(value: unknown): string {\n if (isIsoDateish(value)) {\n const date = new Date(value as string);\n if (!Number.isNaN(date.getTime())) return `${date.getUTCMonth() + 1}/${date.getUTCDate()}`;\n }\n return value === null || value === undefined ? '' : String(value);\n}\n\nfunction tableColumns(rows: Row[], labelField: string | null): string[] {\n const seen = new Set<string>();\n const columns: string[] = [];\n if (labelField) {\n seen.add(labelField);\n columns.push(labelField);\n }\n for (const row of rows) {\n for (const [key] of scalarFields(row)) {\n if (seen.has(key)) continue;\n seen.add(key);\n columns.push(key);\n if (columns.length >= MAX_TABLE_COLUMNS) return columns;\n }\n }\n return columns;\n}\n\n/** The top-level result's own scalar fields, for a single-record source (PROJECT_STATUS, DELIVERY_KPIS, …). For\n * a bare array with no wrapper (WORK_ITEMS, RISKS, …) there is no top-level summary, so this returns `[]` and\n * the caller aggregates from rows instead. */\nfunction topLevelSummary(result: unknown): [string, string | number | boolean][] {\n if (!result || typeof result !== 'object' || Array.isArray(result)) return [];\n return scalarFields(result as Row);\n}\n\nfunction aggregateFromRows(rows: Row[]): { label: string; value: string }[] {\n const tiles: { label: string; value: string }[] = [\n { label: 'Count', value: String(rows.length) },\n ];\n const labelField = pickLabelField(rows);\n const numericFields = pickNumericFields(rows, labelField).slice(0, 4);\n for (const key of numericFields) {\n const total = rows.reduce((sum, row) => {\n const value = row[key];\n return sum + (typeof value === 'number' ? value : 0);\n }, 0);\n tiles.push({ label: `Total ${humanizeKey(key)}`, value: formatCell(total) });\n }\n return tiles;\n}\n\nfunction KpiTiles({ result }: { result: unknown }) {\n const summary = topLevelSummary(result);\n // extractRows/aggregateFromRows are cheap (object-key scans over an already in-memory JSON result), so this\n // is computed plainly rather than memoized — a `useMemo` here previously tripped\n // `react-hooks/preserve-manual-memoization` (the compiler could not reconcile it with its own inference).\n const tiles =\n summary.length > 0\n ? summary.map(([key, value]) => ({ label: humanizeKey(key), value: formatCell(value) }))\n : aggregateFromRows(extractRows(result));\n if (tiles.length === 0) {\n return <p className=\"text-sm text-muted-foreground\">No figures in this result.</p>;\n }\n return (\n <dl className=\"grid grid-cols-2 gap-3 sm:grid-cols-3\">\n {tiles.map((tile) => (\n <div key={tile.label} className=\"rounded-md border border-border bg-muted/40 p-2\">\n <dt className=\"text-[11px] text-muted-foreground\">{tile.label}</dt>\n <dd className=\"text-lg font-semibold tabular-nums\">{tile.value}</dd>\n </div>\n ))}\n </dl>\n );\n}\n\n/** The accessible text alternative every chart carries — a real `<table>` of the same rows, collapsed by\n * default (a sighted user who wants the chart isn't forced past it, but the data is one click away for\n * anyone who needs it: screen-reader users, anyone wanting exact values). */\nfunction DataTableDisclosure({\n rows,\n labelField,\n title,\n}: {\n rows: Row[];\n labelField: string | null;\n title: string;\n}) {\n const [open, setOpen] = useState(false);\n const panelId = useId();\n const columns = tableColumns(rows, labelField);\n return (\n <div className=\"mt-2\">\n <button\n type=\"button\"\n className=\"inline-flex items-center gap-1 text-xs font-medium text-primary hover:underline\"\n aria-expanded={open}\n aria-controls={panelId}\n onClick={() => setOpen((v) => !v)}\n >\n {open ? <ChevronDown className=\"h-3 w-3\" /> : <ChevronRight className=\"h-3 w-3\" />}\n View data as a table\n </button>\n {open && (\n <div id={panelId} className=\"mt-2 max-h-64 overflow-auto rounded-md border border-border\">\n <DataTable rows={rows} columns={columns} caption={`${title} — data`} />\n </div>\n )}\n </div>\n );\n}\n\nfunction DataTable({\n rows,\n columns,\n caption,\n}: {\n rows: Row[];\n columns: string[];\n caption: string;\n}) {\n const shown = rows.slice(0, MAX_TABLE_ROWS);\n return (\n <div>\n <Table>\n <TableCaption className=\"sr-only\">{caption}</TableCaption>\n <TableHeader>\n <TableRow>\n {columns.map((col) => (\n <TableHead key={col} scope=\"col\">\n {humanizeKey(col)}\n </TableHead>\n ))}\n </TableRow>\n </TableHeader>\n <TableBody>\n {shown.map((row, index) => (\n // Rows carry no stable id across sources — the positional key is fine since this table is\n // read-only and re-rendered wholesale from a fresh run result each time, never reordered in place.\n <TableRow key={index}>\n {columns.map((col) => (\n <TableCell key={col}>{formatCell(row[col])}</TableCell>\n ))}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n {rows.length > shown.length && (\n <p className=\"p-2 text-left text-xs text-muted-foreground\">\n Showing {shown.length} of {rows.length} rows.\n </p>\n )}\n </div>\n );\n}\n\nfunction ChartBody({ result, title }: { result: unknown; title: string }) {\n const rows = useMemo(() => extractRows(result), [result]);\n const labelField = useMemo(() => pickLabelField(rows), [rows]);\n const numericFields = useMemo(\n () => pickNumericFields(rows, labelField).slice(0, MAX_CHART_SERIES),\n [rows, labelField]\n );\n\n if (rows.length < 2 || numericFields.length === 0) {\n return (\n <div>\n <p className=\"mb-2 text-xs text-muted-foreground\">\n Not enough rows to chart — showing the figures instead.\n </p>\n <KpiTiles result={result} />\n </div>\n );\n }\n\n const chartData = rows.slice(0, MAX_CHART_POINTS).map((row, index) => {\n const point: Record<string, string | number> = {\n __label: labelField ? formatAxisLabel(row[labelField]) : String(index + 1),\n };\n for (const key of numericFields) {\n const value = row[key];\n point[key] = typeof value === 'number' ? value : 0;\n }\n return point;\n });\n\n return (\n <div>\n <ResponsiveContainer width=\"100%\" height={220}>\n <BarChart data={chartData}>\n <CartesianGrid strokeDasharray=\"3 3\" opacity={0.2} />\n <XAxis dataKey=\"__label\" tick={{ fontSize: 11 }} />\n <YAxis tick={{ fontSize: 11 }} allowDecimals={false} />\n <Tooltip />\n {numericFields.length > 1 && <Legend wrapperStyle={{ fontSize: 12 }} />}\n {numericFields.map((key, index) => (\n <Bar\n key={key}\n dataKey={key}\n name={humanizeKey(key)}\n fill={CHART_COLORS[index % CHART_COLORS.length]}\n />\n ))}\n </BarChart>\n </ResponsiveContainer>\n {rows.length > MAX_CHART_POINTS && (\n <p className=\"mt-1 text-[11px] text-muted-foreground\">\n Showing the first {MAX_CHART_POINTS} of {rows.length} rows.\n </p>\n )}\n <DataTableDisclosure rows={rows} labelField={labelField} title={title} />\n </div>\n );\n}\n\nfunction TableBodyContent({ result }: { result: unknown }) {\n const rows = useMemo(() => extractRows(result), [result]);\n const labelField = useMemo(() => pickLabelField(rows), [rows]);\n if (rows.length === 0) {\n return <p className=\"text-sm text-muted-foreground\">No rows in this result.</p>;\n }\n const columns = tableColumns(rows, labelField);\n return (\n <div className=\"max-h-80 overflow-auto rounded-md border border-border\">\n <DataTable rows={rows} columns={columns} caption=\"Widget data\" />\n </div>\n );\n}\n\nexport function ReportWidgetRenderer({\n widget,\n runResult,\n}: {\n widget: ReportWidget;\n runResult: WidgetRunResult | undefined;\n}) {\n if (widget.type === 'TEXT') {\n return (\n <div className=\"flex h-full items-center border-b border-border pb-1\">\n <h3 className=\"text-sm font-semibold uppercase tracking-wide text-muted-foreground\">\n {widget.title}\n </h3>\n </div>\n );\n }\n\n if (!runResult) {\n return (\n <p className=\"text-sm text-muted-foreground\">\n Not run yet — choose &ldquo;Run now&rdquo; above.\n </p>\n );\n }\n\n if (runResult.status === 'FORBIDDEN') {\n return (\n <div className=\"flex items-start gap-2 text-sm text-muted-foreground\" role=\"status\">\n <Lock className=\"mt-0.5 h-4 w-4 shrink-0\" aria-hidden={true} />\n <div>\n <p>You do not have access to this data.</p>\n {runResult.message && <p className=\"text-xs\">{runResult.message}</p>}\n </div>\n </div>\n );\n }\n\n if (runResult.status === 'ERROR') {\n return (\n <div className=\"flex items-start gap-2 text-sm text-destructive\" role=\"alert\">\n <AlertTriangle className=\"mt-0.5 h-4 w-4 shrink-0\" aria-hidden={true} />\n <p>{runResult.message ?? 'This widget could not be generated.'}</p>\n </div>\n );\n }\n\n switch (widget.type) {\n case 'KPI':\n return <KpiTiles result={runResult.result} />;\n case 'CHART':\n return <ChartBody result={runResult.result} title={widget.title} />;\n case 'TABLE':\n return <TableBodyContent result={runResult.result} />;\n default:\n return null;\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function SchedulesPanel({ reportId }: {
2
+ reportId: string;
3
+ }): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=SchedulesPanel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchedulesPanel.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/reports/SchedulesPanel.tsx"],"names":[],"mappings":"AAqZA,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,2CAwHhE"}