@burdenoff/microfe-planmagnet 2026.930.24 → 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.
- package/dist/_virtual/__vite-browser-external.js +9 -0
- package/dist/_virtual/__vite-browser-external.js.map +1 -0
- package/dist/_virtual/_rolldown/runtime.js +5 -2
- package/dist/index.js +3 -1
- package/dist/node_modules/fflate/esm/browser.js +554 -0
- package/dist/node_modules/fflate/esm/browser.js.map +1 -0
- package/dist/node_modules/jszip/dist/jszip.min.js +3038 -0
- package/dist/node_modules/jszip/dist/jszip.min.js.map +1 -0
- package/dist/node_modules/pptxgenjs/dist/pptxgen.es.js +2151 -0
- package/dist/node_modules/pptxgenjs/dist/pptxgen.es.js.map +1 -0
- package/dist/node_modules/write-excel-file/browser/index.js +3 -0
- package/dist/node_modules/write-excel-file/modules/export/convertFileContentToUint8ArrayBrowser.js +13 -0
- package/dist/node_modules/write-excel-file/modules/export/convertFileContentToUint8ArrayBrowser.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/export/convertFilesContentToUint8Arrays.js +21 -0
- package/dist/node_modules/write-excel-file/modules/export/convertFilesContentToUint8Arrays.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/export/downloadBlob.js +11 -0
- package/dist/node_modules/write-excel-file/modules/export/downloadBlob.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/export/writeXlsxFileBrowser.js +23 -0
- package/dist/node_modules/write-excel-file/modules/export/writeXlsxFileBrowser.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/export/writeXlsxFileUniversal.js +22 -0
- package/dist/node_modules/write-excel-file/modules/export/writeXlsxFileUniversal.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/getSheetData/getSheetData.js +18 -0
- package/dist/node_modules/write-excel-file/modules/getSheetData/getSheetData.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/features/conditionalFormatting.js +131 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/features/conditionalFormatting.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/features/images.js +188 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/features/images.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/features/stickyRowsOrColumns.js +52 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/features/stickyRowsOrColumns.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/_Content_Types_.xml.js +18 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/_Content_Types_.xml.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/drawing.xml.js +18 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/drawing.xml.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/drawing.xml.rels.js +17 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/drawing.xml.rels.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/rels.js +11 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/rels.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sharedStrings.xml.js +42 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sharedStrings.xml.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/cell.js +102 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/cell.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/column.js +17 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/column.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/columns.js +15 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/columns.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/drawingReference.js +8 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/drawingReference.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/helpers/getCellStyleProperties.js +71 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/helpers/getCellStyleProperties.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/mergedCellsDescription.js +56 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/mergedCellsDescription.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/pageMargins.js +15 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/pageMargins.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/pageSetup.js +13 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/pageSetup.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/processMergedCells.js +44 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/processMergedCells.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/row.js +123 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/row.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheet.xml.js +41 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheet.xml.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheetData.js +11 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheetData.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheetViews.js +17 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml/sheetViews.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml.rels.js +20 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/sheet.xml.rels.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/styles.xml.js +77 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/styles.xml.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/workbook.xml.js +22 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/workbook.xml.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/workbook.xml.rels.js +13 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/files/workbook.xml.rels.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/generateXlsxFileContents.js +242 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/generateXlsxFileContents.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/getFeatures.js +29 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/getFeatures.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/convertDateToSerialNumber.js +9 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/convertDateToSerialNumber.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getAdditionalContent.js +42 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getAdditionalContent.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getElementXml.js +43 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getElementXml.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getWrittenFiles.js +93 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/getWrittenFiles.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/transformContent.js +39 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/features/transformContent.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getAlignmentXml.js +17 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getAlignmentXml.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getBorderXml.js +29 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getBorderXml.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getCellAddress.js +14 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getCellAddress.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFileExtensionForContentType.js +11 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFileExtensionForContentType.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFillXml.js +14 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFillXml.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFontXml.js +12 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getFontXml.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getOrderOfSiblings.js +24 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getOrderOfSiblings.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getXlsxColorForHexColor.js +9 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/getXlsxColorForHexColor.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasAlignment.js +9 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasAlignment.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasBorder.js +9 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasBorder.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasFill.js +9 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasFill.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasFont.js +9 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/hasFont.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/isCellObject.js +9 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/isCellObject.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/isObject.js +9 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/isObject.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/orderOfSiblings.js +27 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/helpers/orderOfSiblings.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/initializeSharedStrings.js +17 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/initializeSharedStrings.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/initializeSheets.js +74 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/initializeSheets.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/initializeStyles.js +138 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/initializeStyles.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/validateSheetData.js +40 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/validateSheetData.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/validateSheetName.js +11 -0
- package/dist/node_modules/write-excel-file/modules/xlsx/validateSheetName.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xml/appendMarkupInsideElement.js +9 -0
- package/dist/node_modules/write-excel-file/modules/xml/appendMarkupInsideElement.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xml/applyEnclosingElementOffset.js +9 -0
- package/dist/node_modules/write-excel-file/modules/xml/applyEnclosingElementOffset.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xml/escapeXmlSpecialCharacters.js +12 -0
- package/dist/node_modules/write-excel-file/modules/xml/escapeXmlSpecialCharacters.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xml/findElement.js +12 -0
- package/dist/node_modules/write-excel-file/modules/xml/findElement.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xml/findElementInsideElement.js +12 -0
- package/dist/node_modules/write-excel-file/modules/xml/findElementInsideElement.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xml/findElementsNonRecursive_.js +41 -0
- package/dist/node_modules/write-excel-file/modules/xml/findElementsNonRecursive_.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xml/getAttributesString.js +14 -0
- package/dist/node_modules/write-excel-file/modules/xml/getAttributesString.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xml/getChildElements.js +42 -0
- package/dist/node_modules/write-excel-file/modules/xml/getChildElements.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xml/getClosingTagMarkup.js +8 -0
- package/dist/node_modules/write-excel-file/modules/xml/getClosingTagMarkup.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xml/getMarkupInsideElement.js +8 -0
- package/dist/node_modules/write-excel-file/modules/xml/getMarkupInsideElement.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xml/getOpeningTagMarkup.js +9 -0
- package/dist/node_modules/write-excel-file/modules/xml/getOpeningTagMarkup.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xml/getSelfClosingTagMarkup.js +9 -0
- package/dist/node_modules/write-excel-file/modules/xml/getSelfClosingTagMarkup.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xml/insertElementMarkupAccordingToOrderOfSiblings.js +64 -0
- package/dist/node_modules/write-excel-file/modules/xml/insertElementMarkupAccordingToOrderOfSiblings.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xml/prependMarkupInsideElement.js +9 -0
- package/dist/node_modules/write-excel-file/modules/xml/prependMarkupInsideElement.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xml/removeInvalidXmlCharacters.js +9 -0
- package/dist/node_modules/write-excel-file/modules/xml/removeInvalidXmlCharacters.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xml/replaceElement.js +8 -0
- package/dist/node_modules/write-excel-file/modules/xml/replaceElement.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xml/sanitizeAttributeName.js +10 -0
- package/dist/node_modules/write-excel-file/modules/xml/sanitizeAttributeName.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xml/sanitizeAttributeValue.js +11 -0
- package/dist/node_modules/write-excel-file/modules/xml/sanitizeAttributeValue.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xml/sanitizeTextContent.js +11 -0
- package/dist/node_modules/write-excel-file/modules/xml/sanitizeTextContent.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/xml/setMarkupInsideElement.js +8 -0
- package/dist/node_modules/write-excel-file/modules/xml/setMarkupInsideElement.js.map +1 -0
- package/dist/node_modules/write-excel-file/modules/zip/zipToArrayBuffer.js +18 -0
- package/dist/node_modules/write-excel-file/modules/zip/zipToArrayBuffer.js.map +1 -0
- package/dist/planmagnet/PlanMagnetRoot.d.ts.map +1 -1
- package/dist/planmagnet/PlanMagnetRoot.js +154 -147
- package/dist/planmagnet/PlanMagnetRoot.js.map +1 -1
- package/dist/planmagnet/PlanMagnetRoutes.d.ts.map +1 -1
- package/dist/planmagnet/PlanMagnetRoutes.js +122 -106
- package/dist/planmagnet/PlanMagnetRoutes.js.map +1 -1
- package/dist/planmagnet/comments/CommentThread.d.ts +8 -1
- package/dist/planmagnet/comments/CommentThread.d.ts.map +1 -1
- package/dist/planmagnet/comments/CommentThread.js +188 -181
- package/dist/planmagnet/comments/CommentThread.js.map +1 -1
- package/dist/planmagnet/comments/TargetComments.d.ts +10 -2
- package/dist/planmagnet/comments/TargetComments.d.ts.map +1 -1
- package/dist/planmagnet/comments/TargetComments.js +10 -8
- package/dist/planmagnet/comments/TargetComments.js.map +1 -1
- package/dist/planmagnet/comments/WorkItemComments.d.ts +7 -1
- package/dist/planmagnet/comments/WorkItemComments.d.ts.map +1 -1
- package/dist/planmagnet/comments/WorkItemComments.js +5 -4
- package/dist/planmagnet/comments/WorkItemComments.js.map +1 -1
- package/dist/planmagnet/controls/Pickers.d.ts +10 -0
- package/dist/planmagnet/controls/Pickers.d.ts.map +1 -1
- package/dist/planmagnet/controls/Pickers.js +75 -27
- package/dist/planmagnet/controls/Pickers.js.map +1 -1
- package/dist/planmagnet/discussion/WorkItemDiscussionPanel.d.ts +8 -0
- package/dist/planmagnet/discussion/WorkItemDiscussionPanel.d.ts.map +1 -0
- package/dist/planmagnet/discussion/WorkItemDiscussionPanel.js +217 -0
- package/dist/planmagnet/discussion/WorkItemDiscussionPanel.js.map +1 -0
- package/dist/planmagnet/docs/DocDiffView.d.ts +26 -0
- package/dist/planmagnet/docs/DocDiffView.d.ts.map +1 -0
- package/dist/planmagnet/docs/DocDiffView.js +52 -0
- package/dist/planmagnet/docs/DocDiffView.js.map +1 -0
- package/dist/planmagnet/docs/DocSuggestionsPanel.d.ts +13 -0
- package/dist/planmagnet/docs/DocSuggestionsPanel.d.ts.map +1 -0
- package/dist/planmagnet/docs/DocSuggestionsPanel.js +308 -0
- package/dist/planmagnet/docs/DocSuggestionsPanel.js.map +1 -0
- package/dist/planmagnet/docs/DocVersionCompare.d.ts +7 -0
- package/dist/planmagnet/docs/DocVersionCompare.d.ts.map +1 -0
- package/dist/planmagnet/docs/DocVersionCompare.js +105 -0
- package/dist/planmagnet/docs/DocVersionCompare.js.map +1 -0
- package/dist/planmagnet/hooks/usePresence.d.ts +39 -0
- package/dist/planmagnet/hooks/usePresence.d.ts.map +1 -0
- package/dist/planmagnet/hooks/usePresence.js +146 -0
- package/dist/planmagnet/hooks/usePresence.js.map +1 -0
- package/dist/planmagnet/index.d.ts +2 -0
- package/dist/planmagnet/index.d.ts.map +1 -1
- package/dist/planmagnet/index.js +2 -0
- package/dist/planmagnet/links/CodeLinksPanel.d.ts +22 -0
- package/dist/planmagnet/links/CodeLinksPanel.d.ts.map +1 -0
- package/dist/planmagnet/links/CodeLinksPanel.js +94 -0
- package/dist/planmagnet/links/CodeLinksPanel.js.map +1 -0
- package/dist/planmagnet/pages/DocsDocDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/DocsDocDetailPagePage.js +488 -217
- package/dist/planmagnet/pages/DocsDocDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.js +136 -130
- package/dist/planmagnet/pages/ProductsRoadmapDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js +205 -196
- package/dist/planmagnet/pages/ProjectsProjectDetailPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ReportsCreateReportPagePage.d.ts +6 -0
- package/dist/planmagnet/pages/ReportsCreateReportPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ReportsCreateReportPagePage.js +5 -177
- package/dist/planmagnet/pages/ReportsCreateReportPagePage.js.map +1 -1
- package/dist/planmagnet/pages/ReportsEditReportPagePage.d.ts +3 -0
- package/dist/planmagnet/pages/ReportsEditReportPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ReportsEditReportPagePage.js +15 -0
- package/dist/planmagnet/pages/ReportsEditReportPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ReportsReportPagePage.d.ts +7 -0
- package/dist/planmagnet/pages/ReportsReportPagePage.d.ts.map +1 -0
- package/dist/planmagnet/pages/ReportsReportPagePage.js +226 -0
- package/dist/planmagnet/pages/ReportsReportPagePage.js.map +1 -0
- package/dist/planmagnet/pages/ReportsReportsPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/ReportsReportsPagePage.js +224 -496
- package/dist/planmagnet/pages/ReportsReportsPagePage.js.map +1 -1
- package/dist/planmagnet/pages/TasksTaskDetailPagePage.d.ts.map +1 -1
- package/dist/planmagnet/pages/TasksTaskDetailPagePage.js +194 -160
- package/dist/planmagnet/pages/TasksTaskDetailPagePage.js.map +1 -1
- package/dist/planmagnet/presence/PresenceAvatars.d.ts +16 -0
- package/dist/planmagnet/presence/PresenceAvatars.d.ts.map +1 -0
- package/dist/planmagnet/presence/PresenceAvatars.js +56 -0
- package/dist/planmagnet/presence/PresenceAvatars.js.map +1 -0
- package/dist/planmagnet/reports/ExportMenu.d.ts +9 -0
- package/dist/planmagnet/reports/ExportMenu.d.ts.map +1 -0
- package/dist/planmagnet/reports/ExportMenu.js +116 -0
- package/dist/planmagnet/reports/ExportMenu.js.map +1 -0
- package/dist/planmagnet/reports/PrintReportView.d.ts +24 -0
- package/dist/planmagnet/reports/PrintReportView.d.ts.map +1 -0
- package/dist/planmagnet/reports/PrintReportView.js +75 -0
- package/dist/planmagnet/reports/PrintReportView.js.map +1 -0
- package/dist/planmagnet/reports/ReportBuilderCanvas.d.ts +8 -0
- package/dist/planmagnet/reports/ReportBuilderCanvas.d.ts.map +1 -0
- package/dist/planmagnet/reports/ReportBuilderCanvas.js +261 -0
- package/dist/planmagnet/reports/ReportBuilderCanvas.js.map +1 -0
- package/dist/planmagnet/reports/ReportBuilderPage.d.ts +5 -0
- package/dist/planmagnet/reports/ReportBuilderPage.d.ts.map +1 -0
- package/dist/planmagnet/reports/ReportBuilderPage.js +198 -0
- package/dist/planmagnet/reports/ReportBuilderPage.js.map +1 -0
- package/dist/planmagnet/reports/ReportRunHistory.d.ts +8 -0
- package/dist/planmagnet/reports/ReportRunHistory.d.ts.map +1 -0
- package/dist/planmagnet/reports/ReportRunHistory.js +63 -0
- package/dist/planmagnet/reports/ReportRunHistory.js.map +1 -0
- package/dist/planmagnet/reports/ReportWidgetRenderer.d.ts +7 -0
- package/dist/planmagnet/reports/ReportWidgetRenderer.d.ts.map +1 -0
- package/dist/planmagnet/reports/ReportWidgetRenderer.js +251 -0
- package/dist/planmagnet/reports/ReportWidgetRenderer.js.map +1 -0
- package/dist/planmagnet/reports/SchedulesPanel.d.ts +4 -0
- package/dist/planmagnet/reports/SchedulesPanel.d.ts.map +1 -0
- package/dist/planmagnet/reports/SchedulesPanel.js +457 -0
- package/dist/planmagnet/reports/SchedulesPanel.js.map +1 -0
- package/dist/planmagnet/reports/ShareDialog.d.ts +5 -0
- package/dist/planmagnet/reports/ShareDialog.d.ts.map +1 -0
- package/dist/planmagnet/reports/ShareDialog.js +234 -0
- package/dist/planmagnet/reports/ShareDialog.js.map +1 -0
- package/dist/planmagnet/reports/SharedReportPage.d.ts +4 -0
- package/dist/planmagnet/reports/SharedReportPage.d.ts.map +1 -0
- package/dist/planmagnet/reports/SharedReportPage.js +180 -0
- package/dist/planmagnet/reports/SharedReportPage.js.map +1 -0
- package/dist/planmagnet/reports/WidgetEditorDialog.d.ts +10 -0
- package/dist/planmagnet/reports/WidgetEditorDialog.d.ts.map +1 -0
- package/dist/planmagnet/reports/WidgetEditorDialog.js +220 -0
- package/dist/planmagnet/reports/WidgetEditorDialog.js.map +1 -0
- package/dist/planmagnet/reports/reportExportPptx.d.ts +4 -0
- package/dist/planmagnet/reports/reportExportPptx.d.ts.map +1 -0
- package/dist/planmagnet/reports/reportExportPptx.js +118 -0
- package/dist/planmagnet/reports/reportExportPptx.js.map +1 -0
- package/dist/planmagnet/reports/reportExportXlsx.d.ts +4 -0
- package/dist/planmagnet/reports/reportExportXlsx.d.ts.map +1 -0
- package/dist/planmagnet/reports/reportExportXlsx.js +42 -0
- package/dist/planmagnet/reports/reportExportXlsx.js.map +1 -0
- package/dist/planmagnet/reports/reportGraphql.d.ts +28 -0
- package/dist/planmagnet/reports/reportGraphql.d.ts.map +1 -0
- package/dist/planmagnet/reports/reportGraphql.js +360 -0
- package/dist/planmagnet/reports/reportGraphql.js.map +1 -0
- package/dist/planmagnet/reports/reportModel.d.ts +198 -0
- package/dist/planmagnet/reports/reportModel.d.ts.map +1 -0
- package/dist/planmagnet/reports/reportModel.js +328 -0
- package/dist/planmagnet/reports/reportModel.js.map +1 -0
- package/dist/planmagnet/reports/sharedReportRoute.d.ts +14 -0
- package/dist/planmagnet/reports/sharedReportRoute.d.ts.map +1 -0
- package/dist/planmagnet/reports/sharedReportRoute.js +9 -0
- package/dist/planmagnet/reports/sharedReportRoute.js.map +1 -0
- package/dist/planmagnet/utils/graphqlErrors.d.ts +6 -0
- package/dist/planmagnet/utils/graphqlErrors.d.ts.map +1 -1
- package/dist/planmagnet/utils/graphqlErrors.js +5 -2
- package/dist/planmagnet/utils/graphqlErrors.js.map +1 -1
- package/dist/planmagnet/utils/lineDiff.d.ts +21 -0
- package/dist/planmagnet/utils/lineDiff.d.ts.map +1 -0
- package/dist/planmagnet/utils/lineDiff.js +36 -0
- package/dist/planmagnet/utils/lineDiff.js.map +1 -0
- package/package.json +6 -4
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import { usePlanMagnet as e, usePlanMagnetNavigate as t } from "../providers/PlanMagnetProvider.js";
|
|
2
|
+
import { PersonName as n } from "../people/People.js";
|
|
3
|
+
import { LEAVES_PAGE_CONTEXT as r, throwOnError as i } from "../utils/mutationResult.js";
|
|
4
|
+
import { ConfirmButton as a, ErrorLine as o } from "../controls/ConfirmButton.js";
|
|
5
|
+
import { mutationErrorMessage as s } from "../utils/graphqlErrors.js";
|
|
6
|
+
import { detailPath as c } from "../utils/rowNavigation.js";
|
|
7
|
+
import "../reports/reportModel.js";
|
|
8
|
+
import { ReportWidgetRenderer as l } from "../reports/ReportWidgetRenderer.js";
|
|
9
|
+
import { PrintReportView as u } from "../reports/PrintReportView.js";
|
|
10
|
+
import { DELETE_REPORT as ee, DUPLICATE_REPORT as te, GET_REPORT as ne, GET_REPORT_RUN as d, LIST_REPORT_RUNS as f, RUN_REPORT as p } from "../reports/reportGraphql.js";
|
|
11
|
+
import { ExportMenu as re } from "../reports/ExportMenu.js";
|
|
12
|
+
import { ReportRunHistory as ie } from "../reports/ReportRunHistory.js";
|
|
13
|
+
import { SchedulesPanel as m } from "../reports/SchedulesPanel.js";
|
|
14
|
+
import { ShareDialog as h } from "../reports/ShareDialog.js";
|
|
15
|
+
import { useEffect as g, useState as _ } from "react";
|
|
16
|
+
import { Pencil as ae, Play as oe, Trash2 as v } from "lucide-react";
|
|
17
|
+
import { useParams as y } from "react-router";
|
|
18
|
+
import { useMutation as b, useQuery as x } from "@apollo/client/react";
|
|
19
|
+
import { jsx as S, jsxs as C } from "react/jsx-runtime";
|
|
20
|
+
import { Badge as w, Button as T, Card as E, CardContent as D } from "@burdenoff/fe-libs/ui";
|
|
21
|
+
//#region src/planmagnet/pages/ReportsReportPagePage.tsx
|
|
22
|
+
function O() {
|
|
23
|
+
let { id: O } = y(), { currentUser: k } = e(), A = t(), { data: j, loading: M, error: N } = x(ne, {
|
|
24
|
+
variables: { id: O ?? "" },
|
|
25
|
+
skip: !O
|
|
26
|
+
}), P = j?.planmagnetReport, [F, I] = b(p), [L, R] = b(ee), [z, B] = b(te), [V, H] = _(null), [U, W] = _(null), [G, K] = _(null), [q, J] = _(null), [Y, X] = _(!1), se = x(d, {
|
|
27
|
+
variables: { id: U ?? "" },
|
|
28
|
+
skip: !U
|
|
29
|
+
}), Z = U ? se.data?.planmagnetReportRun ?? null : V;
|
|
30
|
+
g(() => {
|
|
31
|
+
if (!Y) return;
|
|
32
|
+
let e = () => X(!1);
|
|
33
|
+
window.addEventListener("afterprint", e);
|
|
34
|
+
let t = window.setTimeout(() => window.print(), 50);
|
|
35
|
+
return () => {
|
|
36
|
+
window.removeEventListener("afterprint", e), window.clearTimeout(t);
|
|
37
|
+
};
|
|
38
|
+
}, [Y]);
|
|
39
|
+
let ce = async () => {
|
|
40
|
+
if (O) {
|
|
41
|
+
K(null);
|
|
42
|
+
try {
|
|
43
|
+
let e = (await i(F({
|
|
44
|
+
variables: { id: O },
|
|
45
|
+
refetchQueries: [{
|
|
46
|
+
query: f,
|
|
47
|
+
variables: {
|
|
48
|
+
reportId: O,
|
|
49
|
+
pagination: { first: 25 }
|
|
50
|
+
}
|
|
51
|
+
}]
|
|
52
|
+
}))).data?.planmagnetRunReport;
|
|
53
|
+
e && (H(e), W(null));
|
|
54
|
+
} catch (e) {
|
|
55
|
+
K(s(e, "This report could not be run."));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}, le = async () => {
|
|
59
|
+
if (O) {
|
|
60
|
+
J(null);
|
|
61
|
+
try {
|
|
62
|
+
let e = (await i(z({
|
|
63
|
+
variables: { id: O },
|
|
64
|
+
context: r
|
|
65
|
+
}))).data?.planmagnetDuplicateReport;
|
|
66
|
+
e && A(c("/reports/edit-report-page", e.id));
|
|
67
|
+
} catch (e) {
|
|
68
|
+
J(s(e, "This report could not be duplicated."));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}, ue = async () => {
|
|
72
|
+
if (O) {
|
|
73
|
+
J(null);
|
|
74
|
+
try {
|
|
75
|
+
await i(L({
|
|
76
|
+
variables: { id: O },
|
|
77
|
+
context: r
|
|
78
|
+
})), A("/reports/reports-page");
|
|
79
|
+
} catch (e) {
|
|
80
|
+
J(s(e, "This report could not be deleted."));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
if (M && !j) return /* @__PURE__ */ S("div", {
|
|
85
|
+
className: "flex items-center justify-center p-12",
|
|
86
|
+
children: /* @__PURE__ */ S("div", { className: "h-8 w-8 animate-spin rounded-full border-2 border-primary border-t-transparent" })
|
|
87
|
+
});
|
|
88
|
+
if (N) return /* @__PURE__ */ C("div", {
|
|
89
|
+
className: "p-6 text-destructive",
|
|
90
|
+
children: ["Report could not be loaded: ", N.message]
|
|
91
|
+
});
|
|
92
|
+
if (!P) return /* @__PURE__ */ C("div", {
|
|
93
|
+
className: "space-y-3 p-6",
|
|
94
|
+
children: [/* @__PURE__ */ S("p", {
|
|
95
|
+
className: "text-sm text-muted-foreground",
|
|
96
|
+
children: "This report does not exist, or you do not have access to it."
|
|
97
|
+
}), /* @__PURE__ */ S(T, {
|
|
98
|
+
size: "sm",
|
|
99
|
+
variant: "outline",
|
|
100
|
+
onClick: () => A("/reports/reports-page"),
|
|
101
|
+
children: "Back to reports"
|
|
102
|
+
})]
|
|
103
|
+
});
|
|
104
|
+
let Q = !!k?.id && k.id === P.ownerId, $ = new Map((Z?.widgets ?? []).map((e) => [e.widgetId, e]));
|
|
105
|
+
return Y ? /* @__PURE__ */ S(u, {
|
|
106
|
+
reportName: P.name,
|
|
107
|
+
generatedAt: Z?.generatedAt ?? (/* @__PURE__ */ new Date()).toISOString(),
|
|
108
|
+
widgets: P.definition.widgets,
|
|
109
|
+
results: $,
|
|
110
|
+
onClose: () => X(!1),
|
|
111
|
+
onPrintNow: () => window.print()
|
|
112
|
+
}) : /* @__PURE__ */ C("div", {
|
|
113
|
+
className: "space-y-6 p-6",
|
|
114
|
+
"data-testid": "report-view",
|
|
115
|
+
children: [
|
|
116
|
+
/* @__PURE__ */ C("div", {
|
|
117
|
+
className: "flex flex-wrap items-start justify-between gap-3",
|
|
118
|
+
children: [/* @__PURE__ */ C("div", { children: [
|
|
119
|
+
/* @__PURE__ */ C("div", {
|
|
120
|
+
className: "flex flex-wrap items-center gap-2",
|
|
121
|
+
children: [/* @__PURE__ */ S("h1", {
|
|
122
|
+
className: "text-2xl font-semibold",
|
|
123
|
+
children: P.name
|
|
124
|
+
}), /* @__PURE__ */ S(w, {
|
|
125
|
+
variant: P.visibility === "WORKSPACE" ? "secondary" : "outline",
|
|
126
|
+
children: P.visibility === "WORKSPACE" ? "Workspace" : "Private"
|
|
127
|
+
})]
|
|
128
|
+
}),
|
|
129
|
+
P.description && /* @__PURE__ */ S("p", {
|
|
130
|
+
className: "mt-1 text-sm text-muted-foreground",
|
|
131
|
+
children: P.description
|
|
132
|
+
}),
|
|
133
|
+
/* @__PURE__ */ C("p", {
|
|
134
|
+
className: "mt-1 text-xs text-muted-foreground",
|
|
135
|
+
children: ["Owned by ", /* @__PURE__ */ S(n, { id: P.ownerId })]
|
|
136
|
+
})
|
|
137
|
+
] }), /* @__PURE__ */ C("div", {
|
|
138
|
+
className: "flex flex-wrap items-center gap-2",
|
|
139
|
+
children: [
|
|
140
|
+
/* @__PURE__ */ C(T, {
|
|
141
|
+
size: "sm",
|
|
142
|
+
onClick: () => void ce(),
|
|
143
|
+
disabled: I.loading,
|
|
144
|
+
"data-testid": "report-run",
|
|
145
|
+
children: [/* @__PURE__ */ S(oe, { className: "mr-1 h-4 w-4" }), I.loading ? "Running…" : "Run now"]
|
|
146
|
+
}),
|
|
147
|
+
/* @__PURE__ */ S(re, {
|
|
148
|
+
reportName: P.name,
|
|
149
|
+
widgets: P.definition.widgets,
|
|
150
|
+
run: Z,
|
|
151
|
+
onPrint: () => X(!0)
|
|
152
|
+
}),
|
|
153
|
+
Q && /* @__PURE__ */ S(h, {
|
|
154
|
+
reportId: P.id,
|
|
155
|
+
runId: Z?.id ?? null
|
|
156
|
+
}),
|
|
157
|
+
Q && /* @__PURE__ */ C(T, {
|
|
158
|
+
size: "sm",
|
|
159
|
+
variant: "outline",
|
|
160
|
+
onClick: () => A(c("/reports/edit-report-page", P.id)),
|
|
161
|
+
children: [/* @__PURE__ */ S(ae, { className: "mr-1 h-4 w-4" }), "Edit"]
|
|
162
|
+
}),
|
|
163
|
+
/* @__PURE__ */ S(T, {
|
|
164
|
+
size: "sm",
|
|
165
|
+
variant: "outline",
|
|
166
|
+
onClick: () => void le(),
|
|
167
|
+
disabled: B.loading,
|
|
168
|
+
children: "Duplicate"
|
|
169
|
+
}),
|
|
170
|
+
Q && /* @__PURE__ */ S(a, {
|
|
171
|
+
label: "Delete",
|
|
172
|
+
icon: /* @__PURE__ */ S(v, { className: "mr-1 h-4 w-4" }),
|
|
173
|
+
title: "Delete this report?",
|
|
174
|
+
description: "Its runs, shares and schedules are deleted too. This cannot be undone.",
|
|
175
|
+
confirmLabel: "Delete",
|
|
176
|
+
destructive: !0,
|
|
177
|
+
variant: "outline",
|
|
178
|
+
disabled: R.loading,
|
|
179
|
+
onConfirm: () => void ue()
|
|
180
|
+
})
|
|
181
|
+
]
|
|
182
|
+
})]
|
|
183
|
+
}),
|
|
184
|
+
G && /* @__PURE__ */ S(o, { message: G }),
|
|
185
|
+
q && /* @__PURE__ */ S(o, { message: q }),
|
|
186
|
+
/* @__PURE__ */ C("div", {
|
|
187
|
+
className: "grid grid-cols-1 gap-6 lg:grid-cols-[1fr_280px]",
|
|
188
|
+
children: [/* @__PURE__ */ C("div", {
|
|
189
|
+
className: "space-y-4",
|
|
190
|
+
children: [Z ? /* @__PURE__ */ S("div", {
|
|
191
|
+
className: "flex flex-wrap",
|
|
192
|
+
children: P.definition.widgets.map((e) => /* @__PURE__ */ S("div", {
|
|
193
|
+
style: { width: `${e.layout.w / 12 * 100}%` },
|
|
194
|
+
className: "p-1.5",
|
|
195
|
+
children: /* @__PURE__ */ C("div", {
|
|
196
|
+
className: "h-full rounded-md border border-border bg-background p-3",
|
|
197
|
+
"data-testid": "report-view-widget",
|
|
198
|
+
children: [e.type !== "TEXT" && /* @__PURE__ */ S("h3", {
|
|
199
|
+
className: "mb-2 text-sm font-semibold",
|
|
200
|
+
children: e.title
|
|
201
|
+
}), /* @__PURE__ */ S(l, {
|
|
202
|
+
widget: e,
|
|
203
|
+
runResult: $.get(e.id)
|
|
204
|
+
})]
|
|
205
|
+
})
|
|
206
|
+
}, e.id))
|
|
207
|
+
}) : /* @__PURE__ */ S(E, { children: /* @__PURE__ */ S(D, {
|
|
208
|
+
className: "py-12 text-center text-sm text-muted-foreground",
|
|
209
|
+
children: "Not run yet. Choose “Run now” to generate the first snapshot."
|
|
210
|
+
}) }), Q && /* @__PURE__ */ S(E, { children: /* @__PURE__ */ S(D, {
|
|
211
|
+
className: "pt-6",
|
|
212
|
+
children: /* @__PURE__ */ S(m, { reportId: P.id })
|
|
213
|
+
}) })]
|
|
214
|
+
}), /* @__PURE__ */ S("div", { children: /* @__PURE__ */ S(ie, {
|
|
215
|
+
reportId: P.id,
|
|
216
|
+
selectedRunId: U ?? V?.id ?? null,
|
|
217
|
+
onSelect: W
|
|
218
|
+
}) })]
|
|
219
|
+
})
|
|
220
|
+
]
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
//#endregion
|
|
224
|
+
export { O as ReportsReportPagePage };
|
|
225
|
+
|
|
226
|
+
//# sourceMappingURL=ReportsReportPagePage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReportsReportPagePage.js","names":[],"sources":["../../../src/planmagnet/pages/ReportsReportPagePage.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useParams } from 'react-router';\nimport { useMutation, useQuery } from '@apollo/client/react';\nimport { Badge, Button, Card, CardContent } from '@burdenoff/fe-libs/ui';\nimport { Pencil, Play, Trash2 } from 'lucide-react';\nimport { usePlanMagnet, usePlanMagnetNavigate } from '../providers/PlanMagnetProvider';\nimport { detailPath } from '../utils/rowNavigation';\nimport { PersonName } from '../people/People';\nimport { ConfirmButton, ErrorLine } from '../controls/ConfirmButton';\nimport { mutationErrorMessage } from '../utils/graphqlErrors';\nimport { LEAVES_PAGE_CONTEXT, throwOnError } from '../utils/mutationResult';\nimport { ExportMenu } from '../reports/ExportMenu';\nimport { PrintReportView } from '../reports/PrintReportView';\nimport { ReportRunHistory } from '../reports/ReportRunHistory';\nimport { ReportWidgetRenderer } from '../reports/ReportWidgetRenderer';\nimport { SchedulesPanel } from '../reports/SchedulesPanel';\nimport { ShareDialog } from '../reports/ShareDialog';\nimport {\n DELETE_REPORT,\n DUPLICATE_REPORT,\n GET_REPORT,\n GET_REPORT_RUN,\n LIST_REPORT_RUNS,\n RUN_REPORT,\n} from '../reports/reportGraphql';\nimport { GRID_COLUMNS, type ReportRecord, type ReportRun } from '../reports/reportModel';\n\n/**\n * View + run a report (ANR-13/15/16). \"Run now\" persists a new `ReportRun` snapshot (not a live view — see\n * `PlanmagnetReportRun`'s own schema doc): re-running the same report later never changes what an earlier run\n * showed. Older runs are opened from `ReportRunHistory` via `planmagnetReportRun`.\n */\nexport function ReportsReportPagePage() {\n const { id } = useParams<{ id: string }>();\n const { currentUser } = usePlanMagnet();\n const navigate = usePlanMagnetNavigate();\n\n const { data, loading, error } = useQuery<{ planmagnetReport: ReportRecord | null }>(GET_REPORT, {\n variables: { id: id ?? '' },\n skip: !id,\n });\n const report = data?.planmagnetReport;\n\n const [runReport, runState] = useMutation(RUN_REPORT);\n const [deleteReport, deleteState] = useMutation(DELETE_REPORT);\n const [duplicateReport, duplicateState] = useMutation(DUPLICATE_REPORT);\n\n const [currentRun, setCurrentRun] = useState<ReportRun | null>(null);\n const [selectedRunId, setSelectedRunId] = useState<string | null>(null);\n const [runError, setRunError] = useState<string | null>(null);\n const [actionError, setActionError] = useState<string | null>(null);\n const [printMode, setPrintMode] = useState(false);\n\n const olderRun = useQuery<{ planmagnetReportRun: ReportRun | null }>(GET_REPORT_RUN, {\n variables: { id: selectedRunId ?? '' },\n skip: !selectedRunId,\n });\n const displayedRun: ReportRun | null = selectedRunId\n ? (olderRun.data?.planmagnetReportRun ?? null)\n : currentRun;\n\n useEffect(() => {\n if (!printMode) return;\n const stop = () => setPrintMode(false);\n window.addEventListener('afterprint', stop);\n const timer = window.setTimeout(() => window.print(), 50);\n return () => {\n window.removeEventListener('afterprint', stop);\n window.clearTimeout(timer);\n };\n }, [printMode]);\n\n const handleRun = async () => {\n if (!id) return;\n setRunError(null);\n try {\n const result = await throwOnError(\n runReport({\n variables: { id },\n refetchQueries: [\n { query: LIST_REPORT_RUNS, variables: { reportId: id, pagination: { first: 25 } } },\n ],\n })\n );\n const run = (result.data as { planmagnetRunReport?: ReportRun } | undefined)\n ?.planmagnetRunReport;\n if (run) {\n setCurrentRun(run);\n setSelectedRunId(null);\n }\n } catch (e) {\n setRunError(mutationErrorMessage(e, 'This report could not be run.'));\n }\n };\n\n const handleDuplicate = async () => {\n if (!id) return;\n setActionError(null);\n try {\n const result = await throwOnError(\n duplicateReport({ variables: { id }, context: LEAVES_PAGE_CONTEXT })\n );\n const copy = (result.data as { planmagnetDuplicateReport?: { id: string } } | undefined)\n ?.planmagnetDuplicateReport;\n if (copy) navigate(detailPath('/reports/edit-report-page', copy.id));\n } catch (e) {\n setActionError(mutationErrorMessage(e, 'This report could not be duplicated.'));\n }\n };\n\n const handleDelete = async () => {\n if (!id) return;\n setActionError(null);\n try {\n await throwOnError(deleteReport({ variables: { id }, context: LEAVES_PAGE_CONTEXT }));\n navigate('/reports/reports-page');\n } catch (e) {\n setActionError(mutationErrorMessage(e, 'This report could not be deleted.'));\n }\n };\n\n // Only before the first load: a refetch must not blank the page.\n if (loading && !data) {\n return (\n <div className=\"flex items-center justify-center p-12\">\n <div className=\"h-8 w-8 animate-spin rounded-full border-2 border-primary border-t-transparent\" />\n </div>\n );\n }\n if (error) {\n return <div className=\"p-6 text-destructive\">Report could not be loaded: {error.message}</div>;\n }\n if (!report) {\n return (\n <div className=\"space-y-3 p-6\">\n <p className=\"text-sm text-muted-foreground\">\n This report does not exist, or you do not have access to it.\n </p>\n <Button size=\"sm\" variant=\"outline\" onClick={() => navigate('/reports/reports-page')}>\n Back to reports\n </Button>\n </div>\n );\n }\n\n const isOwner = !!currentUser?.id && currentUser.id === report.ownerId;\n const resultsByWidget = new Map((displayedRun?.widgets ?? []).map((w) => [w.widgetId, w]));\n\n if (printMode) {\n return (\n <PrintReportView\n reportName={report.name}\n generatedAt={displayedRun?.generatedAt ?? new Date().toISOString()}\n widgets={report.definition.widgets}\n results={resultsByWidget}\n onClose={() => setPrintMode(false)}\n onPrintNow={() => window.print()}\n />\n );\n }\n\n return (\n <div className=\"space-y-6 p-6\" data-testid=\"report-view\">\n <div className=\"flex flex-wrap items-start justify-between gap-3\">\n <div>\n <div className=\"flex flex-wrap items-center gap-2\">\n <h1 className=\"text-2xl font-semibold\">{report.name}</h1>\n <Badge variant={report.visibility === 'WORKSPACE' ? 'secondary' : 'outline'}>\n {report.visibility === 'WORKSPACE' ? 'Workspace' : 'Private'}\n </Badge>\n </div>\n {report.description && (\n <p className=\"mt-1 text-sm text-muted-foreground\">{report.description}</p>\n )}\n <p className=\"mt-1 text-xs text-muted-foreground\">\n Owned by <PersonName id={report.ownerId} />\n </p>\n </div>\n <div className=\"flex flex-wrap items-center gap-2\">\n <Button\n size=\"sm\"\n onClick={() => void handleRun()}\n disabled={runState.loading}\n data-testid=\"report-run\"\n >\n <Play className=\"mr-1 h-4 w-4\" />\n {runState.loading ? 'Running…' : 'Run now'}\n </Button>\n <ExportMenu\n reportName={report.name}\n widgets={report.definition.widgets}\n run={displayedRun}\n onPrint={() => setPrintMode(true)}\n />\n {isOwner && <ShareDialog reportId={report.id} runId={displayedRun?.id ?? null} />}\n {isOwner && (\n <Button\n size=\"sm\"\n variant=\"outline\"\n onClick={() => navigate(detailPath('/reports/edit-report-page', report.id))}\n >\n <Pencil className=\"mr-1 h-4 w-4\" />\n Edit\n </Button>\n )}\n <Button\n size=\"sm\"\n variant=\"outline\"\n onClick={() => void handleDuplicate()}\n disabled={duplicateState.loading}\n >\n Duplicate\n </Button>\n {isOwner && (\n <ConfirmButton\n label=\"Delete\"\n icon={<Trash2 className=\"mr-1 h-4 w-4\" />}\n title=\"Delete this report?\"\n description=\"Its runs, shares and schedules are deleted too. This cannot be undone.\"\n confirmLabel=\"Delete\"\n destructive\n variant=\"outline\"\n disabled={deleteState.loading}\n onConfirm={() => void handleDelete()}\n />\n )}\n </div>\n </div>\n\n {runError && <ErrorLine message={runError} />}\n {actionError && <ErrorLine message={actionError} />}\n\n <div className=\"grid grid-cols-1 gap-6 lg:grid-cols-[1fr_280px]\">\n <div className=\"space-y-4\">\n {!displayedRun ? (\n <Card>\n <CardContent className=\"py-12 text-center text-sm text-muted-foreground\">\n Not run yet. Choose “Run now” to generate the first snapshot.\n </CardContent>\n </Card>\n ) : (\n <div className=\"flex flex-wrap\">\n {report.definition.widgets.map((widget) => (\n <div\n key={widget.id}\n style={{ width: `${(widget.layout.w / GRID_COLUMNS) * 100}%` }}\n className=\"p-1.5\"\n >\n <div\n className=\"h-full rounded-md border border-border bg-background p-3\"\n data-testid=\"report-view-widget\"\n >\n {widget.type !== 'TEXT' && (\n <h3 className=\"mb-2 text-sm font-semibold\">{widget.title}</h3>\n )}\n <ReportWidgetRenderer\n widget={widget}\n runResult={resultsByWidget.get(widget.id)}\n />\n </div>\n </div>\n ))}\n </div>\n )}\n\n {isOwner && (\n <Card>\n <CardContent className=\"pt-6\">\n <SchedulesPanel reportId={report.id} />\n </CardContent>\n </Card>\n )}\n </div>\n\n <div>\n <ReportRunHistory\n reportId={report.id}\n selectedRunId={selectedRunId ?? currentRun?.id ?? null}\n onSelect={setSelectedRunId}\n />\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReportsReportsPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/ReportsReportsPagePage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ReportsReportsPagePage.d.ts","sourceRoot":"","sources":["../../../src/planmagnet/pages/ReportsReportsPagePage.tsx"],"names":[],"mappings":"AA4QA,wBAAgB,sBAAsB,4CAiDrC"}
|