@cratis/showrunner.usher.react 0.0.0-bootstrap.0
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/Buttons/MyIssuesButton.tsx +78 -0
- package/Buttons/ReportButton.tsx +51 -0
- package/Buttons/buttonModels.ts +55 -0
- package/Buttons/index.ts +6 -0
- package/Correlation/CorrelationTracker.ts +51 -0
- package/Correlation/index.ts +5 -0
- package/Correlation/withCorrelationIdHeader.ts +44 -0
- package/Icons.tsx +29 -0
- package/Issues/IssueView/AccessPanel.tsx +85 -0
- package/Issues/IssueView/GrantAccessDialog.tsx +56 -0
- package/Issues/IssueView/IdentityPanel.tsx +38 -0
- package/Issues/IssueView/IssueActions.tsx +52 -0
- package/Issues/IssueView/IssueConversationPanel.tsx +89 -0
- package/Issues/IssueView/IssueHeader.tsx +69 -0
- package/Issues/IssueView/IssueView.tsx +74 -0
- package/Issues/IssueView/QuestionBanner.tsx +27 -0
- package/Issues/IssueView/ReopenIssueDialog.tsx +37 -0
- package/Issues/IssueView/ShareIdentityDialog.tsx +37 -0
- package/Issues/IssueView/StatusStrip.tsx +42 -0
- package/Issues/IssueView/SupportSessions.tsx +59 -0
- package/Issues/IssueView/index.ts +15 -0
- package/Issues/MyIssues/IssueList.tsx +78 -0
- package/Issues/MyIssues/MyIssuesDialog.tsx +64 -0
- package/Issues/MyIssues/MyIssuesNavigation.ts +61 -0
- package/Issues/MyIssues/index.ts +6 -0
- package/Issues/MyIssuesList.ts +33 -0
- package/Issues/accessStatus.ts +68 -0
- package/Issues/conversationMessages.ts +136 -0
- package/Issues/index.ts +12 -0
- package/Issues/issueStates.ts +69 -0
- package/Issues/sessionActivity.ts +43 -0
- package/Issues/useAccessStatus.ts +24 -0
- package/Issues/webAddress.ts +22 -0
- package/Labels/UsherLabels.ts +365 -0
- package/Labels/defaultUsherLabels.ts +178 -0
- package/Labels/format.ts +13 -0
- package/Labels/index.ts +7 -0
- package/Labels/resolveLabels.ts +36 -0
- package/Provider/UsherBoundary.tsx +30 -0
- package/Provider/UsherContext.ts +109 -0
- package/Provider/UsherProvider.tsx +134 -0
- package/Provider/index.ts +7 -0
- package/Provider/useUsher.ts +72 -0
- package/README.md +72 -0
- package/Reporting/AccessChoice.ts +107 -0
- package/Reporting/AccessFields.tsx +74 -0
- package/Reporting/AccessNotice.tsx +33 -0
- package/Reporting/ReportErrorDialog.tsx +94 -0
- package/Reporting/ReportIssueDialog.tsx +80 -0
- package/Reporting/ReportLimits.ts +24 -0
- package/Reporting/ReportSent.ts +12 -0
- package/Reporting/SentWithReport.tsx +37 -0
- package/Reporting/TechnicalDetails.tsx +60 -0
- package/Reporting/durationOptions.ts +31 -0
- package/Reporting/formatLocation.ts +27 -0
- package/Reporting/index.ts +16 -0
- package/Reporting/reportValues.ts +150 -0
- package/Reporting/useAccessChoice.ts +53 -0
- package/dist/cjs/Buttons/MyIssuesButton.d.ts +14 -0
- package/dist/cjs/Buttons/MyIssuesButton.d.ts.map +1 -0
- package/dist/cjs/Buttons/MyIssuesButton.js +76 -0
- package/dist/cjs/Buttons/MyIssuesButton.js.map +1 -0
- package/dist/cjs/Buttons/ReportButton.d.ts +8 -0
- package/dist/cjs/Buttons/ReportButton.d.ts.map +1 -0
- package/dist/cjs/Buttons/ReportButton.js +34 -0
- package/dist/cjs/Buttons/ReportButton.js.map +1 -0
- package/dist/cjs/Buttons/buttonModels.d.ts +10 -0
- package/dist/cjs/Buttons/buttonModels.d.ts.map +1 -0
- package/dist/cjs/Buttons/buttonModels.js +44 -0
- package/dist/cjs/Buttons/buttonModels.js.map +1 -0
- package/dist/cjs/Buttons/index.d.ts +4 -0
- package/dist/cjs/Buttons/index.d.ts.map +1 -0
- package/dist/cjs/Correlation/CorrelationTracker.d.ts +10 -0
- package/dist/cjs/Correlation/CorrelationTracker.d.ts.map +1 -0
- package/dist/cjs/Correlation/CorrelationTracker.js +50 -0
- package/dist/cjs/Correlation/CorrelationTracker.js.map +1 -0
- package/dist/cjs/Correlation/index.d.ts +3 -0
- package/dist/cjs/Correlation/index.d.ts.map +1 -0
- package/dist/cjs/Correlation/withCorrelationIdHeader.d.ts +6 -0
- package/dist/cjs/Correlation/withCorrelationIdHeader.d.ts.map +1 -0
- package/dist/cjs/Correlation/withCorrelationIdHeader.js +39 -0
- package/dist/cjs/Correlation/withCorrelationIdHeader.js.map +1 -0
- package/dist/cjs/Icons.d.ts +4 -0
- package/dist/cjs/Icons.d.ts.map +1 -0
- package/dist/cjs/Icons.js +53 -0
- package/dist/cjs/Icons.js.map +1 -0
- package/dist/cjs/Issues/IssueView/AccessPanel.d.ts +6 -0
- package/dist/cjs/Issues/IssueView/AccessPanel.d.ts.map +1 -0
- package/dist/cjs/Issues/IssueView/AccessPanel.js +124 -0
- package/dist/cjs/Issues/IssueView/AccessPanel.js.map +1 -0
- package/dist/cjs/Issues/IssueView/GrantAccessDialog.d.ts +6 -0
- package/dist/cjs/Issues/IssueView/GrantAccessDialog.d.ts.map +1 -0
- package/dist/cjs/Issues/IssueView/GrantAccessDialog.js +56 -0
- package/dist/cjs/Issues/IssueView/GrantAccessDialog.js.map +1 -0
- package/dist/cjs/Issues/IssueView/IdentityPanel.d.ts +6 -0
- package/dist/cjs/Issues/IssueView/IdentityPanel.d.ts.map +1 -0
- package/dist/cjs/Issues/IssueView/IdentityPanel.js +45 -0
- package/dist/cjs/Issues/IssueView/IdentityPanel.js.map +1 -0
- package/dist/cjs/Issues/IssueView/IssueActions.d.ts +6 -0
- package/dist/cjs/Issues/IssueView/IssueActions.d.ts.map +1 -0
- package/dist/cjs/Issues/IssueView/IssueActions.js +58 -0
- package/dist/cjs/Issues/IssueView/IssueActions.js.map +1 -0
- package/dist/cjs/Issues/IssueView/IssueConversationPanel.d.ts +6 -0
- package/dist/cjs/Issues/IssueView/IssueConversationPanel.d.ts.map +1 -0
- package/dist/cjs/Issues/IssueView/IssueConversationPanel.js +97 -0
- package/dist/cjs/Issues/IssueView/IssueConversationPanel.js.map +1 -0
- package/dist/cjs/Issues/IssueView/IssueHeader.d.ts +7 -0
- package/dist/cjs/Issues/IssueView/IssueHeader.d.ts.map +1 -0
- package/dist/cjs/Issues/IssueView/IssueHeader.js +94 -0
- package/dist/cjs/Issues/IssueView/IssueHeader.js.map +1 -0
- package/dist/cjs/Issues/IssueView/IssueView.d.ts +7 -0
- package/dist/cjs/Issues/IssueView/IssueView.d.ts.map +1 -0
- package/dist/cjs/Issues/IssueView/IssueView.js +85 -0
- package/dist/cjs/Issues/IssueView/IssueView.js.map +1 -0
- package/dist/cjs/Issues/IssueView/QuestionBanner.d.ts +5 -0
- package/dist/cjs/Issues/IssueView/QuestionBanner.d.ts.map +1 -0
- package/dist/cjs/Issues/IssueView/QuestionBanner.js +24 -0
- package/dist/cjs/Issues/IssueView/QuestionBanner.js.map +1 -0
- package/dist/cjs/Issues/IssueView/ReopenIssueDialog.d.ts +6 -0
- package/dist/cjs/Issues/IssueView/ReopenIssueDialog.d.ts.map +1 -0
- package/dist/cjs/Issues/IssueView/ReopenIssueDialog.js +34 -0
- package/dist/cjs/Issues/IssueView/ReopenIssueDialog.js.map +1 -0
- package/dist/cjs/Issues/IssueView/ShareIdentityDialog.d.ts +6 -0
- package/dist/cjs/Issues/IssueView/ShareIdentityDialog.d.ts.map +1 -0
- package/dist/cjs/Issues/IssueView/ShareIdentityDialog.js +32 -0
- package/dist/cjs/Issues/IssueView/ShareIdentityDialog.js.map +1 -0
- package/dist/cjs/Issues/IssueView/StatusStrip.d.ts +6 -0
- package/dist/cjs/Issues/IssueView/StatusStrip.d.ts.map +1 -0
- package/dist/cjs/Issues/IssueView/StatusStrip.js +31 -0
- package/dist/cjs/Issues/IssueView/StatusStrip.js.map +1 -0
- package/dist/cjs/Issues/IssueView/SupportSessions.d.ts +7 -0
- package/dist/cjs/Issues/IssueView/SupportSessions.d.ts.map +1 -0
- package/dist/cjs/Issues/IssueView/SupportSessions.js +62 -0
- package/dist/cjs/Issues/IssueView/SupportSessions.js.map +1 -0
- package/dist/cjs/Issues/IssueView/index.d.ts +13 -0
- package/dist/cjs/Issues/IssueView/index.d.ts.map +1 -0
- package/dist/cjs/Issues/MyIssues/IssueList.d.ts +7 -0
- package/dist/cjs/Issues/MyIssues/IssueList.d.ts.map +1 -0
- package/dist/cjs/Issues/MyIssues/IssueList.js +92 -0
- package/dist/cjs/Issues/MyIssues/IssueList.js.map +1 -0
- package/dist/cjs/Issues/MyIssues/MyIssuesDialog.d.ts +7 -0
- package/dist/cjs/Issues/MyIssues/MyIssuesDialog.d.ts.map +1 -0
- package/dist/cjs/Issues/MyIssues/MyIssuesDialog.js +79 -0
- package/dist/cjs/Issues/MyIssues/MyIssuesDialog.js.map +1 -0
- package/dist/cjs/Issues/MyIssues/MyIssuesNavigation.d.ts +21 -0
- package/dist/cjs/Issues/MyIssues/MyIssuesNavigation.d.ts.map +1 -0
- package/dist/cjs/Issues/MyIssues/MyIssuesNavigation.js +52 -0
- package/dist/cjs/Issues/MyIssues/MyIssuesNavigation.js.map +1 -0
- package/dist/cjs/Issues/MyIssues/index.d.ts +4 -0
- package/dist/cjs/Issues/MyIssues/index.d.ts.map +1 -0
- package/dist/cjs/Issues/MyIssuesList.d.ts +7 -0
- package/dist/cjs/Issues/MyIssuesList.d.ts.map +1 -0
- package/dist/cjs/Issues/MyIssuesList.js +33 -0
- package/dist/cjs/Issues/MyIssuesList.js.map +1 -0
- package/dist/cjs/Issues/accessStatus.d.ts +13 -0
- package/dist/cjs/Issues/accessStatus.d.ts.map +1 -0
- package/dist/cjs/Issues/accessStatus.js +60 -0
- package/dist/cjs/Issues/accessStatus.js.map +1 -0
- package/dist/cjs/Issues/conversationMessages.d.ts +14 -0
- package/dist/cjs/Issues/conversationMessages.d.ts.map +1 -0
- package/dist/cjs/Issues/conversationMessages.js +131 -0
- package/dist/cjs/Issues/conversationMessages.js.map +1 -0
- package/dist/cjs/Issues/index.d.ts +10 -0
- package/dist/cjs/Issues/index.d.ts.map +1 -0
- package/dist/cjs/Issues/issueStates.d.ts +12 -0
- package/dist/cjs/Issues/issueStates.d.ts.map +1 -0
- package/dist/cjs/Issues/issueStates.js +86 -0
- package/dist/cjs/Issues/issueStates.js.map +1 -0
- package/dist/cjs/Issues/sessionActivity.d.ts +8 -0
- package/dist/cjs/Issues/sessionActivity.d.ts.map +1 -0
- package/dist/cjs/Issues/sessionActivity.js +39 -0
- package/dist/cjs/Issues/sessionActivity.js.map +1 -0
- package/dist/cjs/Issues/useAccessStatus.d.ts +4 -0
- package/dist/cjs/Issues/useAccessStatus.d.ts.map +1 -0
- package/dist/cjs/Issues/useAccessStatus.js +30 -0
- package/dist/cjs/Issues/useAccessStatus.js.map +1 -0
- package/dist/cjs/Issues/webAddress.d.ts +2 -0
- package/dist/cjs/Issues/webAddress.d.ts.map +1 -0
- package/dist/cjs/Issues/webAddress.js +24 -0
- package/dist/cjs/Issues/webAddress.js.map +1 -0
- package/dist/cjs/Labels/UsherLabels.d.ts +177 -0
- package/dist/cjs/Labels/UsherLabels.d.ts.map +1 -0
- package/dist/cjs/Labels/defaultUsherLabels.d.ts +3 -0
- package/dist/cjs/Labels/defaultUsherLabels.d.ts.map +1 -0
- package/dist/cjs/Labels/defaultUsherLabels.js +179 -0
- package/dist/cjs/Labels/defaultUsherLabels.js.map +1 -0
- package/dist/cjs/Labels/format.d.ts +2 -0
- package/dist/cjs/Labels/format.d.ts.map +1 -0
- package/dist/cjs/Labels/format.js +15 -0
- package/dist/cjs/Labels/format.js.map +1 -0
- package/dist/cjs/Labels/index.d.ts +5 -0
- package/dist/cjs/Labels/index.d.ts.map +1 -0
- package/dist/cjs/Labels/resolveLabels.d.ts +3 -0
- package/dist/cjs/Labels/resolveLabels.d.ts.map +1 -0
- package/dist/cjs/Labels/resolveLabels.js +35 -0
- package/dist/cjs/Labels/resolveLabels.js.map +1 -0
- package/dist/cjs/Provider/UsherBoundary.d.ts +6 -0
- package/dist/cjs/Provider/UsherBoundary.d.ts.map +1 -0
- package/dist/cjs/Provider/UsherBoundary.js +24 -0
- package/dist/cjs/Provider/UsherBoundary.js.map +1 -0
- package/dist/cjs/Provider/UsherContext.d.ts +24 -0
- package/dist/cjs/Provider/UsherContext.d.ts.map +1 -0
- package/dist/cjs/Provider/UsherContext.js +41 -0
- package/dist/cjs/Provider/UsherContext.js.map +1 -0
- package/dist/cjs/Provider/UsherProvider.d.ts +14 -0
- package/dist/cjs/Provider/UsherProvider.d.ts.map +1 -0
- package/dist/cjs/Provider/UsherProvider.js +122 -0
- package/dist/cjs/Provider/UsherProvider.js.map +1 -0
- package/dist/cjs/Provider/index.d.ts +5 -0
- package/dist/cjs/Provider/index.d.ts.map +1 -0
- package/dist/cjs/Provider/useUsher.d.ts +13 -0
- package/dist/cjs/Provider/useUsher.d.ts.map +1 -0
- package/dist/cjs/Provider/useUsher.js +31 -0
- package/dist/cjs/Provider/useUsher.js.map +1 -0
- package/dist/cjs/Reporting/AccessChoice.d.ts +13 -0
- package/dist/cjs/Reporting/AccessChoice.d.ts.map +1 -0
- package/dist/cjs/Reporting/AccessChoice.js +113 -0
- package/dist/cjs/Reporting/AccessChoice.js.map +1 -0
- package/dist/cjs/Reporting/AccessFields.d.ts +12 -0
- package/dist/cjs/Reporting/AccessFields.d.ts.map +1 -0
- package/dist/cjs/Reporting/AccessFields.js +79 -0
- package/dist/cjs/Reporting/AccessFields.js.map +1 -0
- package/dist/cjs/Reporting/AccessNotice.d.ts +7 -0
- package/dist/cjs/Reporting/AccessNotice.d.ts.map +1 -0
- package/dist/cjs/Reporting/AccessNotice.js +28 -0
- package/dist/cjs/Reporting/AccessNotice.js.map +1 -0
- package/dist/cjs/Reporting/ReportErrorDialog.d.ts +9 -0
- package/dist/cjs/Reporting/ReportErrorDialog.d.ts.map +1 -0
- package/dist/cjs/Reporting/ReportErrorDialog.js +87 -0
- package/dist/cjs/Reporting/ReportErrorDialog.js.map +1 -0
- package/dist/cjs/Reporting/ReportIssueDialog.d.ts +8 -0
- package/dist/cjs/Reporting/ReportIssueDialog.d.ts.map +1 -0
- package/dist/cjs/Reporting/ReportIssueDialog.js +81 -0
- package/dist/cjs/Reporting/ReportIssueDialog.js.map +1 -0
- package/dist/cjs/Reporting/ReportLimits.d.ts +8 -0
- package/dist/cjs/Reporting/ReportLimits.d.ts.map +1 -0
- package/dist/cjs/Reporting/ReportLimits.js +19 -0
- package/dist/cjs/Reporting/ReportLimits.js.map +1 -0
- package/dist/cjs/Reporting/ReportSent.d.ts +5 -0
- package/dist/cjs/Reporting/ReportSent.d.ts.map +1 -0
- package/dist/cjs/Reporting/SentWithReport.d.ts +7 -0
- package/dist/cjs/Reporting/SentWithReport.d.ts.map +1 -0
- package/dist/cjs/Reporting/SentWithReport.js +40 -0
- package/dist/cjs/Reporting/SentWithReport.js.map +1 -0
- package/dist/cjs/Reporting/TechnicalDetails.d.ts +9 -0
- package/dist/cjs/Reporting/TechnicalDetails.d.ts.map +1 -0
- package/dist/cjs/Reporting/TechnicalDetails.js +75 -0
- package/dist/cjs/Reporting/TechnicalDetails.js.map +1 -0
- package/dist/cjs/Reporting/durationOptions.d.ts +9 -0
- package/dist/cjs/Reporting/durationOptions.d.ts.map +1 -0
- package/dist/cjs/Reporting/durationOptions.js +29 -0
- package/dist/cjs/Reporting/durationOptions.js.map +1 -0
- package/dist/cjs/Reporting/formatLocation.d.ts +7 -0
- package/dist/cjs/Reporting/formatLocation.d.ts.map +1 -0
- package/dist/cjs/Reporting/formatLocation.js +23 -0
- package/dist/cjs/Reporting/formatLocation.js.map +1 -0
- package/dist/cjs/Reporting/index.d.ts +14 -0
- package/dist/cjs/Reporting/index.d.ts.map +1 -0
- package/dist/cjs/Reporting/reportValues.d.ts +22 -0
- package/dist/cjs/Reporting/reportValues.d.ts.map +1 -0
- package/dist/cjs/Reporting/reportValues.js +124 -0
- package/dist/cjs/Reporting/reportValues.js.map +1 -0
- package/dist/cjs/Reporting/useAccessChoice.d.ts +13 -0
- package/dist/cjs/Reporting/useAccessChoice.d.ts.map +1 -0
- package/dist/cjs/Reporting/useAccessChoice.js +41 -0
- package/dist/cjs/Reporting/useAccessChoice.js.map +1 -0
- package/dist/cjs/index.d.ts +8 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +133 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/esm/Buttons/MyIssuesButton.d.ts +14 -0
- package/dist/esm/Buttons/MyIssuesButton.d.ts.map +1 -0
- package/dist/esm/Buttons/MyIssuesButton.js +73 -0
- package/dist/esm/Buttons/MyIssuesButton.js.map +1 -0
- package/dist/esm/Buttons/ReportButton.d.ts +8 -0
- package/dist/esm/Buttons/ReportButton.d.ts.map +1 -0
- package/dist/esm/Buttons/ReportButton.js +32 -0
- package/dist/esm/Buttons/ReportButton.js.map +1 -0
- package/dist/esm/Buttons/buttonModels.d.ts +10 -0
- package/dist/esm/Buttons/buttonModels.d.ts.map +1 -0
- package/dist/esm/Buttons/buttonModels.js +41 -0
- package/dist/esm/Buttons/buttonModels.js.map +1 -0
- package/dist/esm/Buttons/index.d.ts +4 -0
- package/dist/esm/Buttons/index.d.ts.map +1 -0
- package/dist/esm/Buttons/index.js +4 -0
- package/dist/esm/Buttons/index.js.map +1 -0
- package/dist/esm/Correlation/CorrelationTracker.d.ts +10 -0
- package/dist/esm/Correlation/CorrelationTracker.d.ts.map +1 -0
- package/dist/esm/Correlation/CorrelationTracker.js +48 -0
- package/dist/esm/Correlation/CorrelationTracker.js.map +1 -0
- package/dist/esm/Correlation/index.d.ts +3 -0
- package/dist/esm/Correlation/index.d.ts.map +1 -0
- package/dist/esm/Correlation/index.js +3 -0
- package/dist/esm/Correlation/index.js.map +1 -0
- package/dist/esm/Correlation/withCorrelationIdHeader.d.ts +6 -0
- package/dist/esm/Correlation/withCorrelationIdHeader.d.ts.map +1 -0
- package/dist/esm/Correlation/withCorrelationIdHeader.js +36 -0
- package/dist/esm/Correlation/withCorrelationIdHeader.js.map +1 -0
- package/dist/esm/Icons.d.ts +4 -0
- package/dist/esm/Icons.d.ts.map +1 -0
- package/dist/esm/Icons.js +49 -0
- package/dist/esm/Icons.js.map +1 -0
- package/dist/esm/Issues/IssueView/AccessPanel.d.ts +6 -0
- package/dist/esm/Issues/IssueView/AccessPanel.d.ts.map +1 -0
- package/dist/esm/Issues/IssueView/AccessPanel.js +122 -0
- package/dist/esm/Issues/IssueView/AccessPanel.js.map +1 -0
- package/dist/esm/Issues/IssueView/GrantAccessDialog.d.ts +6 -0
- package/dist/esm/Issues/IssueView/GrantAccessDialog.d.ts.map +1 -0
- package/dist/esm/Issues/IssueView/GrantAccessDialog.js +54 -0
- package/dist/esm/Issues/IssueView/GrantAccessDialog.js.map +1 -0
- package/dist/esm/Issues/IssueView/IdentityPanel.d.ts +6 -0
- package/dist/esm/Issues/IssueView/IdentityPanel.d.ts.map +1 -0
- package/dist/esm/Issues/IssueView/IdentityPanel.js +43 -0
- package/dist/esm/Issues/IssueView/IdentityPanel.js.map +1 -0
- package/dist/esm/Issues/IssueView/IssueActions.d.ts +6 -0
- package/dist/esm/Issues/IssueView/IssueActions.d.ts.map +1 -0
- package/dist/esm/Issues/IssueView/IssueActions.js +56 -0
- package/dist/esm/Issues/IssueView/IssueActions.js.map +1 -0
- package/dist/esm/Issues/IssueView/IssueConversationPanel.d.ts +6 -0
- package/dist/esm/Issues/IssueView/IssueConversationPanel.d.ts.map +1 -0
- package/dist/esm/Issues/IssueView/IssueConversationPanel.js +95 -0
- package/dist/esm/Issues/IssueView/IssueConversationPanel.js.map +1 -0
- package/dist/esm/Issues/IssueView/IssueHeader.d.ts +7 -0
- package/dist/esm/Issues/IssueView/IssueHeader.d.ts.map +1 -0
- package/dist/esm/Issues/IssueView/IssueHeader.js +92 -0
- package/dist/esm/Issues/IssueView/IssueHeader.js.map +1 -0
- package/dist/esm/Issues/IssueView/IssueView.d.ts +7 -0
- package/dist/esm/Issues/IssueView/IssueView.d.ts.map +1 -0
- package/dist/esm/Issues/IssueView/IssueView.js +83 -0
- package/dist/esm/Issues/IssueView/IssueView.js.map +1 -0
- package/dist/esm/Issues/IssueView/QuestionBanner.d.ts +5 -0
- package/dist/esm/Issues/IssueView/QuestionBanner.d.ts.map +1 -0
- package/dist/esm/Issues/IssueView/QuestionBanner.js +22 -0
- package/dist/esm/Issues/IssueView/QuestionBanner.js.map +1 -0
- package/dist/esm/Issues/IssueView/ReopenIssueDialog.d.ts +6 -0
- package/dist/esm/Issues/IssueView/ReopenIssueDialog.d.ts.map +1 -0
- package/dist/esm/Issues/IssueView/ReopenIssueDialog.js +32 -0
- package/dist/esm/Issues/IssueView/ReopenIssueDialog.js.map +1 -0
- package/dist/esm/Issues/IssueView/ShareIdentityDialog.d.ts +6 -0
- package/dist/esm/Issues/IssueView/ShareIdentityDialog.d.ts.map +1 -0
- package/dist/esm/Issues/IssueView/ShareIdentityDialog.js +30 -0
- package/dist/esm/Issues/IssueView/ShareIdentityDialog.js.map +1 -0
- package/dist/esm/Issues/IssueView/StatusStrip.d.ts +6 -0
- package/dist/esm/Issues/IssueView/StatusStrip.d.ts.map +1 -0
- package/dist/esm/Issues/IssueView/StatusStrip.js +29 -0
- package/dist/esm/Issues/IssueView/StatusStrip.js.map +1 -0
- package/dist/esm/Issues/IssueView/SupportSessions.d.ts +7 -0
- package/dist/esm/Issues/IssueView/SupportSessions.d.ts.map +1 -0
- package/dist/esm/Issues/IssueView/SupportSessions.js +60 -0
- package/dist/esm/Issues/IssueView/SupportSessions.js.map +1 -0
- package/dist/esm/Issues/IssueView/index.d.ts +13 -0
- package/dist/esm/Issues/IssueView/index.d.ts.map +1 -0
- package/dist/esm/Issues/IssueView/index.js +13 -0
- package/dist/esm/Issues/IssueView/index.js.map +1 -0
- package/dist/esm/Issues/MyIssues/IssueList.d.ts +7 -0
- package/dist/esm/Issues/MyIssues/IssueList.d.ts.map +1 -0
- package/dist/esm/Issues/MyIssues/IssueList.js +90 -0
- package/dist/esm/Issues/MyIssues/IssueList.js.map +1 -0
- package/dist/esm/Issues/MyIssues/MyIssuesDialog.d.ts +7 -0
- package/dist/esm/Issues/MyIssues/MyIssuesDialog.d.ts.map +1 -0
- package/dist/esm/Issues/MyIssues/MyIssuesDialog.js +77 -0
- package/dist/esm/Issues/MyIssues/MyIssuesDialog.js.map +1 -0
- package/dist/esm/Issues/MyIssues/MyIssuesNavigation.d.ts +21 -0
- package/dist/esm/Issues/MyIssues/MyIssuesNavigation.d.ts.map +1 -0
- package/dist/esm/Issues/MyIssues/MyIssuesNavigation.js +49 -0
- package/dist/esm/Issues/MyIssues/MyIssuesNavigation.js.map +1 -0
- package/dist/esm/Issues/MyIssues/index.d.ts +4 -0
- package/dist/esm/Issues/MyIssues/index.d.ts.map +1 -0
- package/dist/esm/Issues/MyIssues/index.js +4 -0
- package/dist/esm/Issues/MyIssues/index.js.map +1 -0
- package/dist/esm/Issues/MyIssuesList.d.ts +7 -0
- package/dist/esm/Issues/MyIssuesList.d.ts.map +1 -0
- package/dist/esm/Issues/MyIssuesList.js +29 -0
- package/dist/esm/Issues/MyIssuesList.js.map +1 -0
- package/dist/esm/Issues/accessStatus.d.ts +13 -0
- package/dist/esm/Issues/accessStatus.d.ts.map +1 -0
- package/dist/esm/Issues/accessStatus.js +54 -0
- package/dist/esm/Issues/accessStatus.js.map +1 -0
- package/dist/esm/Issues/conversationMessages.d.ts +14 -0
- package/dist/esm/Issues/conversationMessages.d.ts.map +1 -0
- package/dist/esm/Issues/conversationMessages.js +125 -0
- package/dist/esm/Issues/conversationMessages.js.map +1 -0
- package/dist/esm/Issues/index.d.ts +10 -0
- package/dist/esm/Issues/index.d.ts.map +1 -0
- package/dist/esm/Issues/index.js +10 -0
- package/dist/esm/Issues/index.js.map +1 -0
- package/dist/esm/Issues/issueStates.d.ts +12 -0
- package/dist/esm/Issues/issueStates.d.ts.map +1 -0
- package/dist/esm/Issues/issueStates.js +81 -0
- package/dist/esm/Issues/issueStates.js.map +1 -0
- package/dist/esm/Issues/sessionActivity.d.ts +8 -0
- package/dist/esm/Issues/sessionActivity.d.ts.map +1 -0
- package/dist/esm/Issues/sessionActivity.js +37 -0
- package/dist/esm/Issues/sessionActivity.js.map +1 -0
- package/dist/esm/Issues/useAccessStatus.d.ts +4 -0
- package/dist/esm/Issues/useAccessStatus.d.ts.map +1 -0
- package/dist/esm/Issues/useAccessStatus.js +28 -0
- package/dist/esm/Issues/useAccessStatus.js.map +1 -0
- package/dist/esm/Issues/webAddress.d.ts +2 -0
- package/dist/esm/Issues/webAddress.d.ts.map +1 -0
- package/dist/esm/Issues/webAddress.js +22 -0
- package/dist/esm/Issues/webAddress.js.map +1 -0
- package/dist/esm/Labels/UsherLabels.d.ts +177 -0
- package/dist/esm/Labels/UsherLabels.d.ts.map +1 -0
- package/dist/esm/Labels/UsherLabels.js +2 -0
- package/dist/esm/Labels/UsherLabels.js.map +1 -0
- package/dist/esm/Labels/defaultUsherLabels.d.ts +3 -0
- package/dist/esm/Labels/defaultUsherLabels.d.ts.map +1 -0
- package/dist/esm/Labels/defaultUsherLabels.js +177 -0
- package/dist/esm/Labels/defaultUsherLabels.js.map +1 -0
- package/dist/esm/Labels/format.d.ts +2 -0
- package/dist/esm/Labels/format.d.ts.map +1 -0
- package/dist/esm/Labels/format.js +13 -0
- package/dist/esm/Labels/format.js.map +1 -0
- package/dist/esm/Labels/index.d.ts +5 -0
- package/dist/esm/Labels/index.d.ts.map +1 -0
- package/dist/esm/Labels/index.js +5 -0
- package/dist/esm/Labels/index.js.map +1 -0
- package/dist/esm/Labels/resolveLabels.d.ts +3 -0
- package/dist/esm/Labels/resolveLabels.d.ts.map +1 -0
- package/dist/esm/Labels/resolveLabels.js +33 -0
- package/dist/esm/Labels/resolveLabels.js.map +1 -0
- package/dist/esm/Provider/UsherBoundary.d.ts +6 -0
- package/dist/esm/Provider/UsherBoundary.d.ts.map +1 -0
- package/dist/esm/Provider/UsherBoundary.js +22 -0
- package/dist/esm/Provider/UsherBoundary.js.map +1 -0
- package/dist/esm/Provider/UsherContext.d.ts +24 -0
- package/dist/esm/Provider/UsherContext.d.ts.map +1 -0
- package/dist/esm/Provider/UsherContext.js +36 -0
- package/dist/esm/Provider/UsherContext.js.map +1 -0
- package/dist/esm/Provider/UsherProvider.d.ts +14 -0
- package/dist/esm/Provider/UsherProvider.d.ts.map +1 -0
- package/dist/esm/Provider/UsherProvider.js +120 -0
- package/dist/esm/Provider/UsherProvider.js.map +1 -0
- package/dist/esm/Provider/index.d.ts +5 -0
- package/dist/esm/Provider/index.d.ts.map +1 -0
- package/dist/esm/Provider/index.js +5 -0
- package/dist/esm/Provider/index.js.map +1 -0
- package/dist/esm/Provider/useUsher.d.ts +13 -0
- package/dist/esm/Provider/useUsher.d.ts.map +1 -0
- package/dist/esm/Provider/useUsher.js +29 -0
- package/dist/esm/Provider/useUsher.js.map +1 -0
- package/dist/esm/Reporting/AccessChoice.d.ts +13 -0
- package/dist/esm/Reporting/AccessChoice.d.ts.map +1 -0
- package/dist/esm/Reporting/AccessChoice.js +106 -0
- package/dist/esm/Reporting/AccessChoice.js.map +1 -0
- package/dist/esm/Reporting/AccessFields.d.ts +12 -0
- package/dist/esm/Reporting/AccessFields.d.ts.map +1 -0
- package/dist/esm/Reporting/AccessFields.js +77 -0
- package/dist/esm/Reporting/AccessFields.js.map +1 -0
- package/dist/esm/Reporting/AccessNotice.d.ts +7 -0
- package/dist/esm/Reporting/AccessNotice.d.ts.map +1 -0
- package/dist/esm/Reporting/AccessNotice.js +26 -0
- package/dist/esm/Reporting/AccessNotice.js.map +1 -0
- package/dist/esm/Reporting/ReportErrorDialog.d.ts +9 -0
- package/dist/esm/Reporting/ReportErrorDialog.d.ts.map +1 -0
- package/dist/esm/Reporting/ReportErrorDialog.js +85 -0
- package/dist/esm/Reporting/ReportErrorDialog.js.map +1 -0
- package/dist/esm/Reporting/ReportIssueDialog.d.ts +8 -0
- package/dist/esm/Reporting/ReportIssueDialog.d.ts.map +1 -0
- package/dist/esm/Reporting/ReportIssueDialog.js +79 -0
- package/dist/esm/Reporting/ReportIssueDialog.js.map +1 -0
- package/dist/esm/Reporting/ReportLimits.d.ts +8 -0
- package/dist/esm/Reporting/ReportLimits.d.ts.map +1 -0
- package/dist/esm/Reporting/ReportLimits.js +17 -0
- package/dist/esm/Reporting/ReportLimits.js.map +1 -0
- package/dist/esm/Reporting/ReportSent.d.ts +5 -0
- package/dist/esm/Reporting/ReportSent.d.ts.map +1 -0
- package/dist/esm/Reporting/ReportSent.js +2 -0
- package/dist/esm/Reporting/ReportSent.js.map +1 -0
- package/dist/esm/Reporting/SentWithReport.d.ts +7 -0
- package/dist/esm/Reporting/SentWithReport.d.ts.map +1 -0
- package/dist/esm/Reporting/SentWithReport.js +38 -0
- package/dist/esm/Reporting/SentWithReport.js.map +1 -0
- package/dist/esm/Reporting/TechnicalDetails.d.ts +9 -0
- package/dist/esm/Reporting/TechnicalDetails.d.ts.map +1 -0
- package/dist/esm/Reporting/TechnicalDetails.js +73 -0
- package/dist/esm/Reporting/TechnicalDetails.js.map +1 -0
- package/dist/esm/Reporting/durationOptions.d.ts +9 -0
- package/dist/esm/Reporting/durationOptions.d.ts.map +1 -0
- package/dist/esm/Reporting/durationOptions.js +27 -0
- package/dist/esm/Reporting/durationOptions.js.map +1 -0
- package/dist/esm/Reporting/formatLocation.d.ts +7 -0
- package/dist/esm/Reporting/formatLocation.d.ts.map +1 -0
- package/dist/esm/Reporting/formatLocation.js +21 -0
- package/dist/esm/Reporting/formatLocation.js.map +1 -0
- package/dist/esm/Reporting/index.d.ts +14 -0
- package/dist/esm/Reporting/index.d.ts.map +1 -0
- package/dist/esm/Reporting/index.js +14 -0
- package/dist/esm/Reporting/index.js.map +1 -0
- package/dist/esm/Reporting/reportValues.d.ts +22 -0
- package/dist/esm/Reporting/reportValues.d.ts.map +1 -0
- package/dist/esm/Reporting/reportValues.js +116 -0
- package/dist/esm/Reporting/reportValues.js.map +1 -0
- package/dist/esm/Reporting/useAccessChoice.d.ts +13 -0
- package/dist/esm/Reporting/useAccessChoice.d.ts.map +1 -0
- package/dist/esm/Reporting/useAccessChoice.js +39 -0
- package/dist/esm/Reporting/useAccessChoice.js.map +1 -0
- package/dist/esm/index.d.ts +8 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +48 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/index.ts +10 -0
- package/package.json +85 -0
- package/styles.css +320 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Guid } from '@cratis/fundamentals';
|
|
2
|
+
export declare class CorrelationTracker {
|
|
3
|
+
readonly capacity: number;
|
|
4
|
+
private _correlationIds;
|
|
5
|
+
constructor(capacity?: number);
|
|
6
|
+
get correlationIds(): Guid[];
|
|
7
|
+
track(correlationId: Guid | string): void;
|
|
8
|
+
clear(): void;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=CorrelationTracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CorrelationTracker.d.ts","sourceRoot":"","sources":["../../../Correlation/CorrelationTracker.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAK5C,qBAAa,kBAAkB;IAOf,QAAQ,CAAC,QAAQ,EAAE,MAAM;IANrC,OAAO,CAAC,eAAe,CAAc;gBAMhB,QAAQ,GAAE,MAAU;IAMzC,IAAI,cAAc,IAAI,IAAI,EAAE,CAE3B;IAOD,KAAK,CAAC,aAAa,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI;IAazC,KAAK,IAAI,IAAI;CAGhB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Guid } from '@cratis/fundamentals';
|
|
2
|
+
|
|
3
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
4
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
5
|
+
/**
|
|
6
|
+
* Keeps the correlation ids of the last few Arc commands and queries, so a report can carry them.
|
|
7
|
+
*/ class CorrelationTracker {
|
|
8
|
+
capacity;
|
|
9
|
+
_correlationIds = [];
|
|
10
|
+
/**
|
|
11
|
+
* Initializes a new instance of {@link CorrelationTracker}.
|
|
12
|
+
* @param capacity How many correlation ids to keep; the oldest is dropped when one more is tracked.
|
|
13
|
+
*/ constructor(capacity = 5){
|
|
14
|
+
this.capacity = capacity;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Gets the correlation ids kept, oldest first.
|
|
18
|
+
*/ get correlationIds() {
|
|
19
|
+
return [
|
|
20
|
+
...this._correlationIds
|
|
21
|
+
];
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Tracks a correlation id. A correlation id already kept moves to the end instead of being kept twice; an
|
|
25
|
+
* empty one is ignored.
|
|
26
|
+
* @param correlationId The correlation id, as a {@link Guid} or its string form.
|
|
27
|
+
*/ track(correlationId) {
|
|
28
|
+
const parsed = typeof correlationId === 'string' ? parseGuid(correlationId) : correlationId;
|
|
29
|
+
if (!parsed || parsed.equals(Guid.empty)) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
this._correlationIds = [
|
|
33
|
+
...this._correlationIds.filter((existing)=>!existing.equals(parsed)),
|
|
34
|
+
parsed
|
|
35
|
+
].slice(-Math.max(this.capacity, 0));
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Forgets every correlation id kept.
|
|
39
|
+
*/ clear() {
|
|
40
|
+
this._correlationIds = [];
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function parseGuid(value) {
|
|
44
|
+
return Guid.isGuid(value) ? Guid.parse(value) : undefined;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export { CorrelationTracker };
|
|
48
|
+
//# sourceMappingURL=CorrelationTracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CorrelationTracker.js","sources":["../../../Correlation/CorrelationTracker.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Guid } from '@cratis/fundamentals';\n\n/**\n * Keeps the correlation ids of the last few Arc commands and queries, so a report can carry them.\n */\nexport class CorrelationTracker {\n private _correlationIds: Guid[] = [];\n\n /**\n * Initializes a new instance of {@link CorrelationTracker}.\n * @param capacity How many correlation ids to keep; the oldest is dropped when one more is tracked.\n */\n constructor(readonly capacity: number = 5) {\n }\n\n /**\n * Gets the correlation ids kept, oldest first.\n */\n get correlationIds(): Guid[] {\n return [...this._correlationIds];\n }\n\n /**\n * Tracks a correlation id. A correlation id already kept moves to the end instead of being kept twice; an\n * empty one is ignored.\n * @param correlationId The correlation id, as a {@link Guid} or its string form.\n */\n track(correlationId: Guid | string): void {\n const parsed = typeof correlationId === 'string' ? parseGuid(correlationId) : correlationId;\n if (!parsed || parsed.equals(Guid.empty)) {\n return;\n }\n\n this._correlationIds = [...this._correlationIds.filter(existing => !existing.equals(parsed)), parsed]\n .slice(-Math.max(this.capacity, 0));\n }\n\n /**\n * Forgets every correlation id kept.\n */\n clear(): void {\n this._correlationIds = [];\n }\n}\n\nfunction parseGuid(value: string): Guid | undefined {\n return Guid.isGuid(value) ? Guid.parse(value) : undefined;\n}\n"],"names":["CorrelationTracker","_correlationIds","capacity","correlationIds","track","correlationId","parsed","parseGuid","equals","Guid","empty","filter","existing","slice","Math","max","clear","value","isGuid","parse","undefined"],"mappings":";;AAAA;AACA;AAIA;;AAEC,IACM,MAAMA,kBAAAA,CAAAA;;AACDC,IAAAA,eAAAA,GAA0B,EAAE;AAEpC;;;AAGC,QACD,WAAA,CAAqBC,QAAAA,GAAmB,CAAC,CAAE;aAAtBA,QAAAA,GAAAA,QAAAA;AACrB,IAAA;AAEA;;AAEC,QACD,IAAIC,cAAAA,GAAyB;QACzB,OAAO;AAAI,YAAA,GAAA,IAAI,CAACF;AAAgB,SAAA;AACpC,IAAA;AAEA;;;;QAKAG,KAAAA,CAAMC,aAA4B,EAAQ;AACtC,QAAA,MAAMC,MAAAA,GAAS,OAAOD,aAAAA,KAAkB,QAAA,GAAWE,UAAUF,aAAAA,CAAAA,GAAiBA,aAAAA;AAC9E,QAAA,IAAI,CAACC,MAAAA,IAAUA,MAAAA,CAAOE,MAAM,CAACC,IAAAA,CAAKC,KAAK,CAAA,EAAG;AACtC,YAAA;AACJ,QAAA;QAEA,IAAI,CAACT,eAAe,GAAG;eAAI,IAAI,CAACA,eAAe,CAACU,MAAM,CAACC,CAAAA,QAAAA,GAAY,CAACA,QAAAA,CAASJ,MAAM,CAACF,MAAAA,CAAAA,CAAAA;AAAUA,YAAAA;SAAO,CAChGO,KAAK,CAAC,CAACC,IAAAA,CAAKC,GAAG,CAAC,IAAI,CAACb,QAAQ,EAAE,CAAA,CAAA,CAAA;AACxC,IAAA;AAEA;;AAEC,QACDc,KAAAA,GAAc;QACV,IAAI,CAACf,eAAe,GAAG,EAAE;AAC7B,IAAA;AACJ;AAEA,SAASM,UAAUU,KAAa,EAAA;AAC5B,IAAA,OAAOR,KAAKS,MAAM,CAACD,SAASR,IAAAA,CAAKU,KAAK,CAACF,KAAAA,CAAAA,GAASG,SAAAA;AACpD;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../Correlation/index.ts"],"names":[],"mappings":"AAGA,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../Correlation/index.ts"],"names":[],"mappings":"AAGA,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { GetHttpHeaders } from '@cratis/arc';
|
|
2
|
+
import { Guid } from '@cratis/fundamentals';
|
|
3
|
+
import { CorrelationTracker } from './CorrelationTracker.js';
|
|
4
|
+
export declare const defaultCorrelationIdHeader = "X-Correlation-ID";
|
|
5
|
+
export declare function withCorrelationIdHeader(headersCallback: GetHttpHeaders | undefined, tracker: CorrelationTracker, header?: string, createCorrelationId?: () => Guid): GetHttpHeaders;
|
|
6
|
+
//# sourceMappingURL=withCorrelationIdHeader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withCorrelationIdHeader.d.ts","sourceRoot":"","sources":["../../../Correlation/withCorrelationIdHeader.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAK7D,eAAO,MAAM,0BAA0B,qBAAqB,CAAC;AAe7D,wBAAgB,uBAAuB,CACnC,eAAe,EAAE,cAAc,GAAG,SAAS,EAC3C,OAAO,EAAE,kBAAkB,EAC3B,MAAM,GAAE,MAAmC,EAC3C,mBAAmB,GAAE,MAAM,IAA0B,GAAG,cAAc,CAczE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Guid } from '@cratis/fundamentals';
|
|
2
|
+
|
|
3
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
4
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
5
|
+
/**
|
|
6
|
+
* The HTTP header Arc reads the correlation id of a command or query from, unless the backend configures another.
|
|
7
|
+
*/ const defaultCorrelationIdHeader = 'X-Correlation-ID';
|
|
8
|
+
/**
|
|
9
|
+
* Wraps the HTTP headers callback Arc calls for every command and query request, so each request carries a
|
|
10
|
+
* correlation id the tracker knows.
|
|
11
|
+
* @remarks
|
|
12
|
+
* Arc uses the correlation id a request carries in its correlation id header, so the id tracked is the id the
|
|
13
|
+
* backend records for the command or query. A correlation id the headers already carry is kept and tracked;
|
|
14
|
+
* otherwise a new one is added.
|
|
15
|
+
* @param headersCallback The callback to wrap; nothing for none.
|
|
16
|
+
* @param tracker The {@link CorrelationTracker} to track the correlation ids in.
|
|
17
|
+
* @param header The name of the correlation id header.
|
|
18
|
+
* @param createCorrelationId Creates a new correlation id.
|
|
19
|
+
* @returns The wrapping callback.
|
|
20
|
+
*/ function withCorrelationIdHeader(headersCallback, tracker, header = defaultCorrelationIdHeader, createCorrelationId = ()=>Guid.create()) {
|
|
21
|
+
return ()=>{
|
|
22
|
+
const headers = new Headers(headersCallback?.() ?? {});
|
|
23
|
+
const existing = headers.get(header);
|
|
24
|
+
const correlationId = existing && Guid.isGuid(existing) ? existing : createCorrelationId().toString();
|
|
25
|
+
headers.set(header, correlationId);
|
|
26
|
+
tracker.track(correlationId);
|
|
27
|
+
const record = {};
|
|
28
|
+
headers.forEach((value, name)=>{
|
|
29
|
+
record[name] = value;
|
|
30
|
+
});
|
|
31
|
+
return record;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export { defaultCorrelationIdHeader, withCorrelationIdHeader };
|
|
36
|
+
//# sourceMappingURL=withCorrelationIdHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withCorrelationIdHeader.js","sources":["../../../Correlation/withCorrelationIdHeader.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { GetHttpHeaders } from '@cratis/arc';\nimport { Guid } from '@cratis/fundamentals';\nimport { CorrelationTracker } from './CorrelationTracker.js';\n\n/**\n * The HTTP header Arc reads the correlation id of a command or query from, unless the backend configures another.\n */\nexport const defaultCorrelationIdHeader = 'X-Correlation-ID';\n\n/**\n * Wraps the HTTP headers callback Arc calls for every command and query request, so each request carries a\n * correlation id the tracker knows.\n * @remarks\n * Arc uses the correlation id a request carries in its correlation id header, so the id tracked is the id the\n * backend records for the command or query. A correlation id the headers already carry is kept and tracked;\n * otherwise a new one is added.\n * @param headersCallback The callback to wrap; nothing for none.\n * @param tracker The {@link CorrelationTracker} to track the correlation ids in.\n * @param header The name of the correlation id header.\n * @param createCorrelationId Creates a new correlation id.\n * @returns The wrapping callback.\n */\nexport function withCorrelationIdHeader(\n headersCallback: GetHttpHeaders | undefined,\n tracker: CorrelationTracker,\n header: string = defaultCorrelationIdHeader,\n createCorrelationId: () => Guid = () => Guid.create()): GetHttpHeaders {\n return () => {\n const headers = new Headers(headersCallback?.() ?? {});\n const existing = headers.get(header);\n const correlationId = existing && Guid.isGuid(existing) ? existing : createCorrelationId().toString();\n headers.set(header, correlationId);\n tracker.track(correlationId);\n\n const record: Record<string, string> = {};\n headers.forEach((value, name) => {\n record[name] = value;\n });\n return record;\n };\n}\n"],"names":["defaultCorrelationIdHeader","withCorrelationIdHeader","headersCallback","tracker","header","createCorrelationId","Guid","create","headers","Headers","existing","get","correlationId","isGuid","toString","set","track","record","forEach","value","name"],"mappings":";;AAAA;AACA;AAMA;;IAGO,MAAMA,0BAAAA,GAA6B;AAE1C;;;;;;;;;;;;AAYC,IACM,SAASC,uBAAAA,CACZC,eAA2C,EAC3CC,OAA2B,EAC3BC,MAAAA,GAAiBJ,0BAA0B,EAC3CK,mBAAAA,GAAkC,IAAMC,IAAAA,CAAKC,MAAM,EAAE,EAAA;IACrD,OAAO,IAAA;AACH,QAAA,MAAMC,OAAAA,GAAU,IAAIC,OAAAA,CAAQP,eAAAA,IAAAA,IAAuB,EAAC,CAAA;QACpD,MAAMQ,QAAAA,GAAWF,OAAAA,CAAQG,GAAG,CAACP,MAAAA,CAAAA;QAC7B,MAAMQ,aAAAA,GAAgBF,YAAYJ,IAAAA,CAAKO,MAAM,CAACH,QAAAA,CAAAA,GAAYA,QAAAA,GAAWL,sBAAsBS,QAAQ,EAAA;QACnGN,OAAAA,CAAQO,GAAG,CAACX,MAAAA,EAAQQ,aAAAA,CAAAA;AACpBT,QAAAA,OAAAA,CAAQa,KAAK,CAACJ,aAAAA,CAAAA;AAEd,QAAA,MAAMK,SAAiC,EAAC;QACxCT,OAAAA,CAAQU,OAAO,CAAC,CAACC,KAAAA,EAAOC,IAAAA,GAAAA;YACpBH,MAAM,CAACG,KAAK,GAAGD,KAAAA;AACnB,QAAA,CAAA,CAAA;QACA,OAAOF,MAAAA;AACX,IAAA,CAAA;AACJ;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Icons.d.ts","sourceRoot":"","sources":["../../Icons.tsx"],"names":[],"mappings":"AAMA,eAAO,MAAM,OAAO,mCAInB,CAAC;AAKF,eAAO,MAAM,SAAS,mCAIrB,CAAC;AAKF,eAAO,MAAM,QAAQ,mCAIpB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
|
|
3
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
4
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
5
|
+
/**
|
|
6
|
+
* The bug icon of the report button. Decorative: the button carries the accessible name.
|
|
7
|
+
*/ const BugIcon = ()=>/*#__PURE__*/ jsx("svg", {
|
|
8
|
+
className: "usher-icon",
|
|
9
|
+
viewBox: "0 0 24 24",
|
|
10
|
+
width: "1em",
|
|
11
|
+
height: "1em",
|
|
12
|
+
"aria-hidden": "true",
|
|
13
|
+
focusable: "false",
|
|
14
|
+
children: /*#__PURE__*/ jsx("path", {
|
|
15
|
+
fill: "currentColor",
|
|
16
|
+
d: "M20 8h-2.81a5.985 5.985 0 0 0-1.82-1.96L17 4.41 15.59 3l-2.17 2.17a6.002 6.002 0 0 0-2.83 0L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z"
|
|
17
|
+
})
|
|
18
|
+
});
|
|
19
|
+
/**
|
|
20
|
+
* The inbox icon of the my issues button. Decorative: the button carries the accessible name.
|
|
21
|
+
*/ const InboxIcon = ()=>/*#__PURE__*/ jsx("svg", {
|
|
22
|
+
className: "usher-icon",
|
|
23
|
+
viewBox: "0 0 24 24",
|
|
24
|
+
width: "1em",
|
|
25
|
+
height: "1em",
|
|
26
|
+
"aria-hidden": "true",
|
|
27
|
+
focusable: "false",
|
|
28
|
+
children: /*#__PURE__*/ jsx("path", {
|
|
29
|
+
fill: "currentColor",
|
|
30
|
+
d: "M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zm0 12h-4a3 3 0 0 1-6 0H5V5h14v10z"
|
|
31
|
+
})
|
|
32
|
+
});
|
|
33
|
+
/**
|
|
34
|
+
* The back arrow of the issue view. Decorative: the button carries the accessible name.
|
|
35
|
+
*/ const BackIcon = ()=>/*#__PURE__*/ jsx("svg", {
|
|
36
|
+
className: "usher-icon",
|
|
37
|
+
viewBox: "0 0 24 24",
|
|
38
|
+
width: "1em",
|
|
39
|
+
height: "1em",
|
|
40
|
+
"aria-hidden": "true",
|
|
41
|
+
focusable: "false",
|
|
42
|
+
children: /*#__PURE__*/ jsx("path", {
|
|
43
|
+
fill: "currentColor",
|
|
44
|
+
d: "M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"
|
|
45
|
+
})
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
export { BackIcon, BugIcon, InboxIcon };
|
|
49
|
+
//# sourceMappingURL=Icons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Icons.js","sources":["../../Icons.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\n/**\n * The bug icon of the report button. Decorative: the button carries the accessible name.\n */\nexport const BugIcon = () => (\n <svg className='usher-icon' viewBox='0 0 24 24' width='1em' height='1em' aria-hidden='true' focusable='false'>\n <path fill='currentColor' d='M20 8h-2.81a5.985 5.985 0 0 0-1.82-1.96L17 4.41 15.59 3l-2.17 2.17a6.002 6.002 0 0 0-2.83 0L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z' />\n </svg>\n);\n\n/**\n * The inbox icon of the my issues button. Decorative: the button carries the accessible name.\n */\nexport const InboxIcon = () => (\n <svg className='usher-icon' viewBox='0 0 24 24' width='1em' height='1em' aria-hidden='true' focusable='false'>\n <path fill='currentColor' d='M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zm0 12h-4a3 3 0 0 1-6 0H5V5h14v10z' />\n </svg>\n);\n\n/**\n * The back arrow of the issue view. Decorative: the button carries the accessible name.\n */\nexport const BackIcon = () => (\n <svg className='usher-icon' viewBox='0 0 24 24' width='1em' height='1em' aria-hidden='true' focusable='false'>\n <path fill='currentColor' d='M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z' />\n </svg>\n);\n"],"names":["BugIcon","_jsx","svg","className","viewBox","width","height","aria-hidden","focusable","path","fill","d","InboxIcon","BackIcon"],"mappings":";;AAAA;AACA;AAEA;;AAEC,IACM,MAAMA,OAAAA,GAAU,kBACnBC,GAAA,CAACC,KAAAA,EAAAA;QAAIC,SAAAA,EAAU,YAAA;QAAaC,OAAAA,EAAQ,WAAA;QAAYC,KAAAA,EAAM,KAAA;QAAMC,MAAAA,EAAO,KAAA;QAAMC,aAAAA,EAAY,MAAA;QAAOC,SAAAA,EAAU,OAAA;AAClG,QAAA,QAAA,gBAAAP,GAAA,CAACQ,MAAAA,EAAAA;YAAKC,IAAAA,EAAK,cAAA;YAAeC,CAAAA,EAAE;;AAElC,KAAA;AAEF;;AAEC,IACM,MAAMC,SAAAA,GAAY,kBACrBX,GAAA,CAACC,KAAAA,EAAAA;QAAIC,SAAAA,EAAU,YAAA;QAAaC,OAAAA,EAAQ,WAAA;QAAYC,KAAAA,EAAM,KAAA;QAAMC,MAAAA,EAAO,KAAA;QAAMC,aAAAA,EAAY,MAAA;QAAOC,SAAAA,EAAU,OAAA;AAClG,QAAA,QAAA,gBAAAP,GAAA,CAACQ,MAAAA,EAAAA;YAAKC,IAAAA,EAAK,cAAA;YAAeC,CAAAA,EAAE;;AAElC,KAAA;AAEF;;AAEC,IACM,MAAME,QAAAA,GAAW,kBACpBZ,GAAA,CAACC,KAAAA,EAAAA;QAAIC,SAAAA,EAAU,YAAA;QAAaC,OAAAA,EAAQ,WAAA;QAAYC,KAAAA,EAAM,KAAA;QAAMC,MAAAA,EAAO,KAAA;QAAMC,aAAAA,EAAY,MAAA;QAAOC,SAAAA,EAAU,OAAA;AAClG,QAAA,QAAA,gBAAAP,GAAA,CAACQ,MAAAA,EAAAA;YAAKC,IAAAA,EAAK,cAAA;YAAeC,CAAAA,EAAE;;AAElC,KAAA;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IssueConversation } from '@cratis/showrunner.usher';
|
|
2
|
+
export interface AccessPanelProps {
|
|
3
|
+
issue: IssueConversation;
|
|
4
|
+
}
|
|
5
|
+
export declare const AccessPanel: ({ issue }: AccessPanelProps) => import("react").JSX.Element;
|
|
6
|
+
//# sourceMappingURL=AccessPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccessPanel.d.ts","sourceRoot":"","sources":["../../../../Issues/IssueView/AccessPanel.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAA4B,MAAM,0BAA0B,CAAC;AAavF,MAAM,WAAW,gBAAgB;IAE7B,KAAK,EAAE,iBAAiB,CAAC;CAC5B;AAMD,eAAO,MAAM,WAAW,GAAI,WAAW,gBAAgB,gCAwDtD,CAAC"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { useDialog, useConfirmationDialog, DialogButtons, DialogResult } from '@cratis/arc.react/dialogs';
|
|
3
|
+
import { Button } from '@cratis/components/Common';
|
|
4
|
+
import { toastCommandResult } from '@cratis/components/Notifications';
|
|
5
|
+
import { RevokeAccess, IssueState } from '@cratis/showrunner.usher';
|
|
6
|
+
import { useId, useState } from 'react';
|
|
7
|
+
import { format } from '../../Labels/format.js';
|
|
8
|
+
import { useUsherContext } from '../../Provider/UsherContext.js';
|
|
9
|
+
import { formatTime } from '../../Reporting/AccessChoice.js';
|
|
10
|
+
import { AccessStatus } from '../accessStatus.js';
|
|
11
|
+
import { useAccessStatus } from '../useAccessStatus.js';
|
|
12
|
+
import { GrantAccessDialog } from './GrantAccessDialog.js';
|
|
13
|
+
import { SupportSessions } from './SupportSessions.js';
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Shows whether support may sign in as the reporter, lets them grant or revoke it, highlights support's pending
|
|
17
|
+
* request, and lists the sessions in which support signed in.
|
|
18
|
+
*/ const AccessPanel = ({ issue })=>{
|
|
19
|
+
const { labels, locale } = useUsherContext();
|
|
20
|
+
const headingId = useId();
|
|
21
|
+
const [GrantDialog, showGrantDialog] = useDialog(GrantAccessDialog);
|
|
22
|
+
const [confirm] = useConfirmationDialog();
|
|
23
|
+
const [revokeAccess] = RevokeAccess.use();
|
|
24
|
+
const [requestDismissed, setRequestDismissed] = useState(false);
|
|
25
|
+
const [status] = useAccessStatus(issue.access);
|
|
26
|
+
const isWithdrawn = issue.state === IssueState.withdrawn;
|
|
27
|
+
const showsRequest = status === AccessStatus.requested && !requestDismissed && !isWithdrawn;
|
|
28
|
+
const validUntil = issue.access?.validUntil instanceof Date ? issue.access.validUntil : new Date(issue.access?.validUntil);
|
|
29
|
+
const heading = status === AccessStatus.granted ? labels.accessPanel.grantedHeading : showsRequest ? labels.accessPanel.requestedHeading : labels.accessPanel.notGrantedHeading;
|
|
30
|
+
const revoke = async ()=>{
|
|
31
|
+
const answer = await confirm(labels.accessPanel.revokeTitle, labels.accessPanel.revokeMessage, DialogButtons.YesNo);
|
|
32
|
+
if (answer !== DialogResult.Yes) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
revokeAccess.issueId = issue.id;
|
|
36
|
+
toastCommandResult(await revokeAccess.execute(), {
|
|
37
|
+
showSuccess: false
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
const grant = ()=>void showGrantDialog({
|
|
41
|
+
issueId: issue.id
|
|
42
|
+
});
|
|
43
|
+
return /*#__PURE__*/ jsxs("section", {
|
|
44
|
+
className: "usher-panel",
|
|
45
|
+
"data-highlighted": showsRequest || undefined,
|
|
46
|
+
"aria-labelledby": headingId,
|
|
47
|
+
children: [
|
|
48
|
+
/*#__PURE__*/ jsx("h4", {
|
|
49
|
+
id: headingId,
|
|
50
|
+
className: "usher-panel__heading",
|
|
51
|
+
children: heading
|
|
52
|
+
}),
|
|
53
|
+
status === AccessStatus.granted && /*#__PURE__*/ jsxs(Fragment, {
|
|
54
|
+
children: [
|
|
55
|
+
/*#__PURE__*/ jsx("p", {
|
|
56
|
+
className: "usher-panel__text",
|
|
57
|
+
children: format(labels.accessPanel.grantedUntil, {
|
|
58
|
+
time: formatTime(validUntil, locale)
|
|
59
|
+
})
|
|
60
|
+
}),
|
|
61
|
+
/*#__PURE__*/ jsx(Button, {
|
|
62
|
+
variant: "outline",
|
|
63
|
+
tone: "critical",
|
|
64
|
+
size: "small",
|
|
65
|
+
label: labels.accessPanel.revoke,
|
|
66
|
+
onClick: ()=>void revoke()
|
|
67
|
+
})
|
|
68
|
+
]
|
|
69
|
+
}),
|
|
70
|
+
showsRequest && /*#__PURE__*/ jsxs(Fragment, {
|
|
71
|
+
children: [
|
|
72
|
+
/*#__PURE__*/ jsx("p", {
|
|
73
|
+
className: "usher-panel__text",
|
|
74
|
+
children: format(labels.accessPanel.requestReason, {
|
|
75
|
+
reason: issue.access.request.reason
|
|
76
|
+
})
|
|
77
|
+
}),
|
|
78
|
+
/*#__PURE__*/ jsxs("div", {
|
|
79
|
+
className: "usher-panel__actions",
|
|
80
|
+
children: [
|
|
81
|
+
/*#__PURE__*/ jsx(Button, {
|
|
82
|
+
variant: "solid",
|
|
83
|
+
tone: "accent",
|
|
84
|
+
size: "small",
|
|
85
|
+
label: labels.accessPanel.grant,
|
|
86
|
+
onClick: grant
|
|
87
|
+
}),
|
|
88
|
+
/*#__PURE__*/ jsx(Button, {
|
|
89
|
+
variant: "ghost",
|
|
90
|
+
size: "small",
|
|
91
|
+
label: labels.accessPanel.notNow,
|
|
92
|
+
onClick: ()=>setRequestDismissed(true)
|
|
93
|
+
})
|
|
94
|
+
]
|
|
95
|
+
})
|
|
96
|
+
]
|
|
97
|
+
}),
|
|
98
|
+
status !== AccessStatus.granted && !showsRequest && /*#__PURE__*/ jsxs(Fragment, {
|
|
99
|
+
children: [
|
|
100
|
+
/*#__PURE__*/ jsx("p", {
|
|
101
|
+
className: "usher-panel__text",
|
|
102
|
+
children: labels.accessPanel.notGranted
|
|
103
|
+
}),
|
|
104
|
+
!isWithdrawn && /*#__PURE__*/ jsx(Button, {
|
|
105
|
+
variant: "outline",
|
|
106
|
+
size: "small",
|
|
107
|
+
label: labels.accessPanel.grant,
|
|
108
|
+
onClick: grant
|
|
109
|
+
})
|
|
110
|
+
]
|
|
111
|
+
}),
|
|
112
|
+
/*#__PURE__*/ jsx(SupportSessions, {
|
|
113
|
+
sessions: issue.access?.sessions ?? [],
|
|
114
|
+
entries: issue.entries ?? []
|
|
115
|
+
}),
|
|
116
|
+
/*#__PURE__*/ jsx(GrantDialog, {})
|
|
117
|
+
]
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
export { AccessPanel };
|
|
122
|
+
//# sourceMappingURL=AccessPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AccessPanel.js","sources":["../../../../Issues/IssueView/AccessPanel.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { DialogButtons, DialogResult, useConfirmationDialog, useDialog } from '@cratis/arc.react/dialogs';\nimport { Button } from '@cratis/components/Common';\nimport { toastCommandResult } from '@cratis/components/Notifications';\nimport { IssueConversation, IssueState, RevokeAccess } from '@cratis/showrunner.usher';\nimport { useId, useState } from 'react';\nimport { format } from '../../Labels/index.js';\nimport { useUsherContext } from '../../Provider/UsherContext.js';\nimport { formatTime } from '../../Reporting/AccessChoice.js';\nimport { AccessStatus } from '../accessStatus.js';\nimport { useAccessStatus } from '../useAccessStatus.js';\nimport { GrantAccessDialog } from './GrantAccessDialog.js';\nimport { SupportSessions } from './SupportSessions.js';\n\n/**\n * Props for {@link AccessPanel}.\n */\nexport interface AccessPanelProps {\n /** The issue. */\n issue: IssueConversation;\n}\n\n/**\n * Shows whether support may sign in as the reporter, lets them grant or revoke it, highlights support's pending\n * request, and lists the sessions in which support signed in.\n */\nexport const AccessPanel = ({ issue }: AccessPanelProps) => {\n const { labels, locale } = useUsherContext();\n const headingId = useId();\n const [GrantDialog, showGrantDialog] = useDialog(GrantAccessDialog);\n const [confirm] = useConfirmationDialog();\n const [revokeAccess] = RevokeAccess.use();\n const [requestDismissed, setRequestDismissed] = useState(false);\n const [status] = useAccessStatus(issue.access);\n const isWithdrawn = issue.state === IssueState.withdrawn;\n const showsRequest = status === AccessStatus.requested && !requestDismissed && !isWithdrawn;\n const validUntil = issue.access?.validUntil instanceof Date ? issue.access.validUntil : new Date(issue.access?.validUntil);\n\n const heading = status === AccessStatus.granted\n ? labels.accessPanel.grantedHeading\n : showsRequest ? labels.accessPanel.requestedHeading : labels.accessPanel.notGrantedHeading;\n\n const revoke = async () => {\n const answer = await confirm(labels.accessPanel.revokeTitle, labels.accessPanel.revokeMessage, DialogButtons.YesNo);\n if (answer !== DialogResult.Yes) {\n return;\n }\n\n revokeAccess.issueId = issue.id;\n toastCommandResult(await revokeAccess.execute(), { showSuccess: false });\n };\n\n const grant = () => void showGrantDialog({ issueId: issue.id });\n\n return (\n <section className='usher-panel' data-highlighted={showsRequest || undefined} aria-labelledby={headingId}>\n <h4 id={headingId} className='usher-panel__heading'>{heading}</h4>\n {status === AccessStatus.granted && (\n <>\n <p className='usher-panel__text'>{format(labels.accessPanel.grantedUntil, { time: formatTime(validUntil, locale) })}</p>\n <Button variant='outline' tone='critical' size='small' label={labels.accessPanel.revoke} onClick={() => void revoke()} />\n </>\n )}\n {showsRequest && (\n <>\n <p className='usher-panel__text'>{format(labels.accessPanel.requestReason, { reason: issue.access.request.reason })}</p>\n <div className='usher-panel__actions'>\n <Button variant='solid' tone='accent' size='small' label={labels.accessPanel.grant} onClick={grant} />\n <Button variant='ghost' size='small' label={labels.accessPanel.notNow} onClick={() => setRequestDismissed(true)} />\n </div>\n </>\n )}\n {status !== AccessStatus.granted && !showsRequest && (\n <>\n <p className='usher-panel__text'>{labels.accessPanel.notGranted}</p>\n {!isWithdrawn && <Button variant='outline' size='small' label={labels.accessPanel.grant} onClick={grant} />}\n </>\n )}\n <SupportSessions sessions={issue.access?.sessions ?? []} entries={issue.entries ?? []} />\n <GrantDialog />\n </section>\n );\n};\n"],"names":["AccessPanel","issue","labels","locale","useUsherContext","headingId","useId","GrantDialog","showGrantDialog","useDialog","GrantAccessDialog","confirm","useConfirmationDialog","revokeAccess","RevokeAccess","use","requestDismissed","setRequestDismissed","useState","status","useAccessStatus","access","isWithdrawn","state","IssueState","withdrawn","showsRequest","AccessStatus","requested","validUntil","Date","heading","granted","accessPanel","grantedHeading","requestedHeading","notGrantedHeading","revoke","answer","revokeTitle","revokeMessage","DialogButtons","YesNo","DialogResult","Yes","issueId","id","toastCommandResult","execute","showSuccess","grant","_jsxs","section","className","data-highlighted","undefined","aria-labelledby","_jsx","h4","_Fragment","p","format","grantedUntil","time","formatTime","Button","variant","tone","size","label","onClick","requestReason","reason","request","div","notNow","notGranted","SupportSessions","sessions","entries"],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Guid } from '@cratis/fundamentals';
|
|
2
|
+
export interface GrantAccessDialogProps {
|
|
3
|
+
issueId: Guid;
|
|
4
|
+
}
|
|
5
|
+
export declare const GrantAccessDialog: ({ issueId }: GrantAccessDialogProps) => import("react").JSX.Element;
|
|
6
|
+
//# sourceMappingURL=GrantAccessDialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GrantAccessDialog.d.ts","sourceRoot":"","sources":["../../../../Issues/IssueView/GrantAccessDialog.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAU5C,MAAM,WAAW,sBAAsB;IAEnC,OAAO,EAAE,IAAI,CAAC;CACjB;AAKD,eAAO,MAAM,iBAAiB,GAAI,aAAa,sBAAsB,gCA+BpE,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { CommandDialog } from '@cratis/components/CommandDialog';
|
|
3
|
+
import { DropdownField } from '@cratis/components/CommandForm';
|
|
4
|
+
import { DialogInitialFocus } from '@cratis/components/Dialogs';
|
|
5
|
+
import { AccessDuration, GrantAccess } from '@cratis/showrunner.usher';
|
|
6
|
+
import { useId, useState } from 'react';
|
|
7
|
+
import { useUsherLabels } from '../../Provider/UsherContext.js';
|
|
8
|
+
import { AccessNotice } from '../../Reporting/AccessNotice.js';
|
|
9
|
+
import { durationOptions } from '../../Reporting/durationOptions.js';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Lets the reporter grant support access to sign in as them on an issue for a while, stating until when.
|
|
13
|
+
*/ const GrantAccessDialog = ({ issueId })=>{
|
|
14
|
+
const labels = useUsherLabels();
|
|
15
|
+
const noticeId = useId();
|
|
16
|
+
const [duration, setDuration] = useState(AccessDuration.oneDay);
|
|
17
|
+
return /*#__PURE__*/ jsx(CommandDialog, {
|
|
18
|
+
command: GrantAccess,
|
|
19
|
+
title: labels.accessPanel.grantTitle,
|
|
20
|
+
okLabel: labels.accessPanel.grantConfirm,
|
|
21
|
+
cancelLabel: labels.common.cancel,
|
|
22
|
+
closeAriaLabel: labels.common.close,
|
|
23
|
+
initialFocus: DialogInitialFocus.Content,
|
|
24
|
+
initialValues: {
|
|
25
|
+
issueId,
|
|
26
|
+
accessDuration: AccessDuration.oneDay
|
|
27
|
+
},
|
|
28
|
+
onFieldChange: (_command, fieldName, _oldValue, newValue)=>{
|
|
29
|
+
if (fieldName === 'accessDuration') {
|
|
30
|
+
setDuration(Number(newValue));
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
children: /*#__PURE__*/ jsxs("div", {
|
|
34
|
+
className: "usher-report-form",
|
|
35
|
+
children: [
|
|
36
|
+
/*#__PURE__*/ jsx(DropdownField, {
|
|
37
|
+
value: (command)=>command.accessDuration,
|
|
38
|
+
title: labels.access.duration,
|
|
39
|
+
"aria-describedby": noticeId,
|
|
40
|
+
options: durationOptions(labels),
|
|
41
|
+
optionValue: "value",
|
|
42
|
+
optionLabel: "label"
|
|
43
|
+
}),
|
|
44
|
+
/*#__PURE__*/ jsx(AccessNotice, {
|
|
45
|
+
id: noticeId,
|
|
46
|
+
duration: duration
|
|
47
|
+
})
|
|
48
|
+
]
|
|
49
|
+
})
|
|
50
|
+
});
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export { GrantAccessDialog };
|
|
54
|
+
//# sourceMappingURL=GrantAccessDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GrantAccessDialog.js","sources":["../../../../Issues/IssueView/GrantAccessDialog.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { CommandDialog } from '@cratis/components/CommandDialog';\nimport { DropdownField } from '@cratis/components/CommandForm';\nimport { DialogInitialFocus } from '@cratis/components/Dialogs';\nimport { Guid } from '@cratis/fundamentals';\nimport { AccessDuration, GrantAccess } from '@cratis/showrunner.usher';\nimport { useId, useState } from 'react';\nimport { useUsherLabels } from '../../Provider/UsherContext.js';\nimport { AccessNotice } from '../../Reporting/AccessNotice.js';\nimport { durationOptions } from '../../Reporting/durationOptions.js';\n\n/**\n * Props for {@link GrantAccessDialog}.\n */\nexport interface GrantAccessDialogProps {\n /** The issue. */\n issueId: Guid;\n}\n\n/**\n * Lets the reporter grant support access to sign in as them on an issue for a while, stating until when.\n */\nexport const GrantAccessDialog = ({ issueId }: GrantAccessDialogProps) => {\n const labels = useUsherLabels();\n const noticeId = useId();\n const [duration, setDuration] = useState(AccessDuration.oneDay);\n\n return (\n <CommandDialog<GrantAccess>\n command={GrantAccess}\n title={labels.accessPanel.grantTitle}\n okLabel={labels.accessPanel.grantConfirm}\n cancelLabel={labels.common.cancel}\n closeAriaLabel={labels.common.close}\n initialFocus={DialogInitialFocus.Content}\n initialValues={{ issueId, accessDuration: AccessDuration.oneDay }}\n onFieldChange={(_command, fieldName, _oldValue, newValue) => {\n if (fieldName === 'accessDuration') {\n setDuration(Number(newValue) as AccessDuration);\n }\n }}>\n <div className='usher-report-form'>\n <DropdownField<GrantAccess>\n value={command => command.accessDuration}\n title={labels.access.duration}\n aria-describedby={noticeId}\n options={durationOptions(labels)}\n optionValue='value'\n optionLabel='label' />\n <AccessNotice id={noticeId} duration={duration} />\n </div>\n </CommandDialog>\n );\n};\n"],"names":["GrantAccessDialog","issueId","labels","useUsherLabels","noticeId","useId","duration","setDuration","useState","AccessDuration","oneDay","_jsx","CommandDialog","command","GrantAccess","title","accessPanel","grantTitle","okLabel","grantConfirm","cancelLabel","common","cancel","closeAriaLabel","close","initialFocus","DialogInitialFocus","Content","initialValues","accessDuration","onFieldChange","_command","fieldName","_oldValue","newValue","Number","_jsxs","div","className","DropdownField","value","access","aria-describedby","options","durationOptions","optionValue","optionLabel","AccessNotice","id"],"mappings":";;;;;;;;;;AAqBA;;AAEC,IACM,MAAMA,iBAAAA,GAAoB,CAAC,EAAEC,OAAO,EAA0B,GAAA;AACjE,IAAA,MAAMC,MAAAA,GAASC,cAAAA,EAAAA;AACf,IAAA,MAAMC,QAAAA,GAAWC,KAAAA,EAAAA;AACjB,IAAA,MAAM,CAACC,QAAAA,EAAUC,WAAAA,CAAY,GAAGC,QAAAA,CAASC,eAAeC,MAAM,CAAA;AAE9D,IAAA,qBACIC,GAAA,CAACC,aAAAA,EAAAA;QACGC,OAAAA,EAASC,WAAAA;QACTC,KAAAA,EAAOb,MAAAA,CAAOc,WAAW,CAACC,UAAU;QACpCC,OAAAA,EAAShB,MAAAA,CAAOc,WAAW,CAACG,YAAY;QACxCC,WAAAA,EAAalB,MAAAA,CAAOmB,MAAM,CAACC,MAAM;QACjCC,cAAAA,EAAgBrB,MAAAA,CAAOmB,MAAM,CAACG,KAAK;AACnCC,QAAAA,YAAAA,EAAcC,mBAAmBC,OAAO;QACxCC,aAAAA,EAAe;AAAE3B,YAAAA,OAAAA;AAAS4B,YAAAA,cAAAA,EAAgBpB,eAAeC;AAAO,SAAA;QAChEoB,aAAAA,EAAe,CAACC,QAAAA,EAAUC,SAAAA,EAAWC,SAAAA,EAAWC,QAAAA,GAAAA;AAC5C,YAAA,IAAIF,cAAc,gBAAA,EAAkB;AAChCzB,gBAAAA,WAAAA,CAAY4B,MAAAA,CAAOD,QAAAA,CAAAA,CAAAA;AACvB,YAAA;AACJ,QAAA,CAAA;AACA,QAAA,QAAA,gBAAAE,IAAA,CAACC,KAAAA,EAAAA;YAAIC,SAAAA,EAAU,mBAAA;;8BACX3B,GAAA,CAAC4B,aAAAA,EAAAA;oBACGC,KAAAA,EAAO3B,CAAAA,OAAAA,GAAWA,OAAAA,CAAQgB,cAAc;oBACxCd,KAAAA,EAAOb,MAAAA,CAAOuC,MAAM,CAACnC,QAAQ;oBAC7BoC,kBAAAA,EAAkBtC,QAAAA;AAClBuC,oBAAAA,OAAAA,EAASC,eAAAA,CAAgB1C,MAAAA,CAAAA;oBACzB2C,WAAAA,EAAY,OAAA;oBACZC,WAAAA,EAAY;;8BAChBnC,GAAA,CAACoC,YAAAA,EAAAA;oBAAaC,EAAAA,EAAI5C,QAAAA;oBAAUE,QAAAA,EAAUA;;;;;AAItD;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IssueConversation } from '@cratis/showrunner.usher';
|
|
2
|
+
export interface IdentityPanelProps {
|
|
3
|
+
issue: IssueConversation;
|
|
4
|
+
}
|
|
5
|
+
export declare const IdentityPanel: ({ issue }: IdentityPanelProps) => import("react").JSX.Element;
|
|
6
|
+
//# sourceMappingURL=IdentityPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IdentityPanel.d.ts","sourceRoot":"","sources":["../../../../Issues/IssueView/IdentityPanel.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAc,MAAM,0BAA0B,CAAC;AAQzE,MAAM,WAAW,kBAAkB;IAE/B,KAAK,EAAE,iBAAiB,CAAC;CAC5B;AAKD,eAAO,MAAM,aAAa,GAAI,WAAW,kBAAkB,gCAgB1D,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useDialog } from '@cratis/arc.react/dialogs';
|
|
3
|
+
import { Button } from '@cratis/components/Common';
|
|
4
|
+
import { IssueState } from '@cratis/showrunner.usher';
|
|
5
|
+
import { useId } from 'react';
|
|
6
|
+
import { useUsherLabels } from '../../Provider/UsherContext.js';
|
|
7
|
+
import { ShareIdentityDialog } from './ShareIdentityDialog.js';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Shows whether support knows who the reporter is, and lets them share it when it does not.
|
|
11
|
+
*/ const IdentityPanel = ({ issue })=>{
|
|
12
|
+
const labels = useUsherLabels();
|
|
13
|
+
const headingId = useId();
|
|
14
|
+
const [ShareDialog, showShareDialog] = useDialog(ShareIdentityDialog);
|
|
15
|
+
const canShare = !issue.identityShared && issue.state !== IssueState.withdrawn;
|
|
16
|
+
return /*#__PURE__*/ jsxs("section", {
|
|
17
|
+
className: "usher-panel",
|
|
18
|
+
"aria-labelledby": headingId,
|
|
19
|
+
children: [
|
|
20
|
+
/*#__PURE__*/ jsx("h4", {
|
|
21
|
+
id: headingId,
|
|
22
|
+
className: "usher-panel__heading",
|
|
23
|
+
children: labels.identity.heading
|
|
24
|
+
}),
|
|
25
|
+
/*#__PURE__*/ jsx("p", {
|
|
26
|
+
className: "usher-panel__text",
|
|
27
|
+
children: issue.identityShared ? labels.identity.known : labels.identity.unknown
|
|
28
|
+
}),
|
|
29
|
+
canShare && /*#__PURE__*/ jsx(Button, {
|
|
30
|
+
variant: "outline",
|
|
31
|
+
size: "small",
|
|
32
|
+
label: labels.identity.share,
|
|
33
|
+
onClick: ()=>void showShareDialog({
|
|
34
|
+
issueId: issue.id
|
|
35
|
+
})
|
|
36
|
+
}),
|
|
37
|
+
/*#__PURE__*/ jsx(ShareDialog, {})
|
|
38
|
+
]
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export { IdentityPanel };
|
|
43
|
+
//# sourceMappingURL=IdentityPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IdentityPanel.js","sources":["../../../../Issues/IssueView/IdentityPanel.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { useDialog } from '@cratis/arc.react/dialogs';\nimport { Button } from '@cratis/components/Common';\nimport { IssueConversation, IssueState } from '@cratis/showrunner.usher';\nimport { useId } from 'react';\nimport { useUsherLabels } from '../../Provider/UsherContext.js';\nimport { ShareIdentityDialog } from './ShareIdentityDialog.js';\n\n/**\n * Props for {@link IdentityPanel}.\n */\nexport interface IdentityPanelProps {\n /** The issue. */\n issue: IssueConversation;\n}\n\n/**\n * Shows whether support knows who the reporter is, and lets them share it when it does not.\n */\nexport const IdentityPanel = ({ issue }: IdentityPanelProps) => {\n const labels = useUsherLabels();\n const headingId = useId();\n const [ShareDialog, showShareDialog] = useDialog(ShareIdentityDialog);\n const canShare = !issue.identityShared && issue.state !== IssueState.withdrawn;\n\n return (\n <section className='usher-panel' aria-labelledby={headingId}>\n <h4 id={headingId} className='usher-panel__heading'>{labels.identity.heading}</h4>\n <p className='usher-panel__text'>{issue.identityShared ? labels.identity.known : labels.identity.unknown}</p>\n {canShare && (\n <Button variant='outline' size='small' label={labels.identity.share} onClick={() => void showShareDialog({ issueId: issue.id })} />\n )}\n <ShareDialog />\n </section>\n );\n};\n"],"names":["IdentityPanel","issue","labels","useUsherLabels","headingId","useId","ShareDialog","showShareDialog","useDialog","ShareIdentityDialog","canShare","identityShared","state","IssueState","withdrawn","_jsxs","section","className","aria-labelledby","_jsx","h4","id","identity","heading","p","known","unknown","Button","variant","size","label","share","onClick","issueId"],"mappings":";;;;;;;;AAkBA;;AAEC,IACM,MAAMA,aAAAA,GAAgB,CAAC,EAAEC,KAAK,EAAsB,GAAA;AACvD,IAAA,MAAMC,MAAAA,GAASC,cAAAA,EAAAA;AACf,IAAA,MAAMC,SAAAA,GAAYC,KAAAA,EAAAA;AAClB,IAAA,MAAM,CAACC,WAAAA,EAAaC,eAAAA,CAAgB,GAAGC,SAAAA,CAAUC,mBAAAA,CAAAA;IACjD,MAAMC,QAAAA,GAAW,CAACT,KAAAA,CAAMU,cAAc,IAAIV,KAAAA,CAAMW,KAAK,KAAKC,UAAAA,CAAWC,SAAS;AAE9E,IAAA,qBACIC,IAAA,CAACC,SAAAA,EAAAA;QAAQC,SAAAA,EAAU,aAAA;QAAcC,iBAAAA,EAAiBd,SAAAA;;0BAC9Ce,GAAA,CAACC,IAAAA,EAAAA;gBAAGC,EAAAA,EAAIjB,SAAAA;gBAAWa,SAAAA,EAAU,sBAAA;0BAAwBf,MAAAA,CAAOoB,QAAQ,CAACC;;0BACrEJ,GAAA,CAACK,GAAAA,EAAAA;gBAAEP,SAAAA,EAAU,mBAAA;0BAAqBhB,KAAAA,CAAMU,cAAc,GAAGT,MAAAA,CAAOoB,QAAQ,CAACG,KAAK,GAAGvB,MAAAA,CAAOoB,QAAQ,CAACI;;AAChGhB,YAAAA,QAAAA,kBACGS,GAAA,CAACQ,MAAAA,EAAAA;gBAAOC,OAAAA,EAAQ,SAAA;gBAAUC,IAAAA,EAAK,OAAA;gBAAQC,KAAAA,EAAO5B,MAAAA,CAAOoB,QAAQ,CAACS,KAAK;gBAAEC,OAAAA,EAAS,IAAM,KAAKzB,eAAAA,CAAgB;AAAE0B,wBAAAA,OAAAA,EAAShC,MAAMoB;AAAG,qBAAA;;0BAEjIF,GAAA,CAACb,WAAAA,EAAAA,EAAAA;;;AAGb;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IssueConversation } from '@cratis/showrunner.usher';
|
|
2
|
+
export interface IssueActionsProps {
|
|
3
|
+
issue: IssueConversation;
|
|
4
|
+
}
|
|
5
|
+
export declare const IssueActions: ({ issue }: IssueActionsProps) => import("react").JSX.Element | null;
|
|
6
|
+
//# sourceMappingURL=IssueActions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IssueActions.d.ts","sourceRoot":"","sources":["../../../../Issues/IssueView/IssueActions.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAA6B,MAAM,0BAA0B,CAAC;AAQxF,MAAM,WAAW,iBAAiB;IAE9B,KAAK,EAAE,iBAAiB,CAAC;CAC5B;AAKD,eAAO,MAAM,YAAY,GAAI,WAAW,iBAAiB,uCA6BxD,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useDialog, useConfirmationDialog, DialogButtons, DialogResult } from '@cratis/arc.react/dialogs';
|
|
3
|
+
import { Button } from '@cratis/components/Common';
|
|
4
|
+
import { toastCommandResult } from '@cratis/components/Notifications';
|
|
5
|
+
import { WithdrawIssue, IssueState } from '@cratis/showrunner.usher';
|
|
6
|
+
import { useUsherLabels } from '../../Provider/UsherContext.js';
|
|
7
|
+
import { isClosed } from '../issueStates.js';
|
|
8
|
+
import { ReopenIssueDialog } from './ReopenIssueDialog.js';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* What the reporter can do with an issue: reopen it once resolved, and withdraw it while it is open.
|
|
12
|
+
*/ const IssueActions = ({ issue })=>{
|
|
13
|
+
const labels = useUsherLabels();
|
|
14
|
+
const [ReopenDialog, showReopenDialog] = useDialog(ReopenIssueDialog);
|
|
15
|
+
const [confirm] = useConfirmationDialog();
|
|
16
|
+
const [withdrawIssue] = WithdrawIssue.use();
|
|
17
|
+
const canReopen = issue.state === IssueState.resolved;
|
|
18
|
+
const canWithdraw = !isClosed(issue.state);
|
|
19
|
+
const withdraw = async ()=>{
|
|
20
|
+
const answer = await confirm(labels.actions.withdrawTitle, labels.actions.withdrawMessage, DialogButtons.YesNo);
|
|
21
|
+
if (answer !== DialogResult.Yes) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
withdrawIssue.issueId = issue.id;
|
|
25
|
+
toastCommandResult(await withdrawIssue.execute(), {
|
|
26
|
+
showSuccess: false
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
if (!canReopen && !canWithdraw) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
return /*#__PURE__*/ jsxs("div", {
|
|
33
|
+
className: "usher-issue-actions",
|
|
34
|
+
children: [
|
|
35
|
+
canReopen && /*#__PURE__*/ jsx(Button, {
|
|
36
|
+
variant: "outline",
|
|
37
|
+
size: "small",
|
|
38
|
+
label: labels.actions.reopen,
|
|
39
|
+
onClick: ()=>void showReopenDialog({
|
|
40
|
+
issueId: issue.id
|
|
41
|
+
})
|
|
42
|
+
}),
|
|
43
|
+
canWithdraw && /*#__PURE__*/ jsx(Button, {
|
|
44
|
+
variant: "ghost",
|
|
45
|
+
tone: "critical",
|
|
46
|
+
size: "small",
|
|
47
|
+
label: labels.actions.withdraw,
|
|
48
|
+
onClick: ()=>void withdraw()
|
|
49
|
+
}),
|
|
50
|
+
/*#__PURE__*/ jsx(ReopenDialog, {})
|
|
51
|
+
]
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export { IssueActions };
|
|
56
|
+
//# sourceMappingURL=IssueActions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IssueActions.js","sources":["../../../../Issues/IssueView/IssueActions.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { DialogButtons, DialogResult, useConfirmationDialog, useDialog } from '@cratis/arc.react/dialogs';\nimport { Button } from '@cratis/components/Common';\nimport { toastCommandResult } from '@cratis/components/Notifications';\nimport { IssueConversation, IssueState, WithdrawIssue } from '@cratis/showrunner.usher';\nimport { useUsherLabels } from '../../Provider/UsherContext.js';\nimport { isClosed } from '../issueStates.js';\nimport { ReopenIssueDialog } from './ReopenIssueDialog.js';\n\n/**\n * Props for {@link IssueActions}.\n */\nexport interface IssueActionsProps {\n /** The issue. */\n issue: IssueConversation;\n}\n\n/**\n * What the reporter can do with an issue: reopen it once resolved, and withdraw it while it is open.\n */\nexport const IssueActions = ({ issue }: IssueActionsProps) => {\n const labels = useUsherLabels();\n const [ReopenDialog, showReopenDialog] = useDialog(ReopenIssueDialog);\n const [confirm] = useConfirmationDialog();\n const [withdrawIssue] = WithdrawIssue.use();\n const canReopen = issue.state === IssueState.resolved;\n const canWithdraw = !isClosed(issue.state);\n\n const withdraw = async () => {\n const answer = await confirm(labels.actions.withdrawTitle, labels.actions.withdrawMessage, DialogButtons.YesNo);\n if (answer !== DialogResult.Yes) {\n return;\n }\n\n withdrawIssue.issueId = issue.id;\n toastCommandResult(await withdrawIssue.execute(), { showSuccess: false });\n };\n\n if (!canReopen && !canWithdraw) {\n return null;\n }\n\n return (\n <div className='usher-issue-actions'>\n {canReopen && <Button variant='outline' size='small' label={labels.actions.reopen} onClick={() => void showReopenDialog({ issueId: issue.id })} />}\n {canWithdraw && <Button variant='ghost' tone='critical' size='small' label={labels.actions.withdraw} onClick={() => void withdraw()} />}\n <ReopenDialog />\n </div>\n );\n};\n"],"names":["IssueActions","issue","labels","useUsherLabels","ReopenDialog","showReopenDialog","useDialog","ReopenIssueDialog","confirm","useConfirmationDialog","withdrawIssue","WithdrawIssue","use","canReopen","state","IssueState","resolved","canWithdraw","isClosed","withdraw","answer","actions","withdrawTitle","withdrawMessage","DialogButtons","YesNo","DialogResult","Yes","issueId","id","toastCommandResult","execute","showSuccess","_jsxs","div","className","_jsx","Button","variant","size","label","reopen","onClick","tone"],"mappings":";;;;;;;;;AAmBA;;AAEC,IACM,MAAMA,YAAAA,GAAe,CAAC,EAAEC,KAAK,EAAqB,GAAA;AACrD,IAAA,MAAMC,MAAAA,GAASC,cAAAA,EAAAA;AACf,IAAA,MAAM,CAACC,YAAAA,EAAcC,gBAAAA,CAAiB,GAAGC,SAAAA,CAAUC,iBAAAA,CAAAA;IACnD,MAAM,CAACC,QAAQ,GAAGC,qBAAAA,EAAAA;AAClB,IAAA,MAAM,CAACC,aAAAA,CAAc,GAAGC,aAAAA,CAAcC,GAAG,EAAA;AACzC,IAAA,MAAMC,SAAAA,GAAYZ,KAAAA,CAAMa,KAAK,KAAKC,WAAWC,QAAQ;AACrD,IAAA,MAAMC,WAAAA,GAAc,CAACC,QAAAA,CAASjB,KAAAA,CAAMa,KAAK,CAAA;AAEzC,IAAA,MAAMK,QAAAA,GAAW,UAAA;AACb,QAAA,MAAMC,MAAAA,GAAS,MAAMZ,OAAAA,CAAQN,MAAAA,CAAOmB,OAAO,CAACC,aAAa,EAAEpB,MAAAA,CAAOmB,OAAO,CAACE,eAAe,EAAEC,cAAcC,KAAK,CAAA;QAC9G,IAAIL,MAAAA,KAAWM,YAAAA,CAAaC,GAAG,EAAE;AAC7B,YAAA;AACJ,QAAA;QAEAjB,aAAAA,CAAckB,OAAO,GAAG3B,KAAAA,CAAM4B,EAAE;QAChCC,kBAAAA,CAAmB,MAAMpB,aAAAA,CAAcqB,OAAO,EAAA,EAAI;YAAEC,WAAAA,EAAa;AAAM,SAAA,CAAA;AAC3E,IAAA,CAAA;IAEA,IAAI,CAACnB,SAAAA,IAAa,CAACI,WAAAA,EAAa;QAC5B,OAAO,IAAA;AACX,IAAA;AAEA,IAAA,qBACIgB,IAAA,CAACC,KAAAA,EAAAA;QAAIC,SAAAA,EAAU,qBAAA;;AACVtB,YAAAA,SAAAA,kBAAauB,GAAA,CAACC,MAAAA,EAAAA;gBAAOC,OAAAA,EAAQ,SAAA;gBAAUC,IAAAA,EAAK,OAAA;gBAAQC,KAAAA,EAAOtC,MAAAA,CAAOmB,OAAO,CAACoB,MAAM;gBAAEC,OAAAA,EAAS,IAAM,KAAKrC,gBAAAA,CAAiB;AAAEuB,wBAAAA,OAAAA,EAAS3B,MAAM4B;AAAG,qBAAA;;AAC3IZ,YAAAA,WAAAA,kBAAemB,GAAA,CAACC,MAAAA,EAAAA;gBAAOC,OAAAA,EAAQ,OAAA;gBAAQK,IAAAA,EAAK,UAAA;gBAAWJ,IAAAA,EAAK,OAAA;gBAAQC,KAAAA,EAAOtC,MAAAA,CAAOmB,OAAO,CAACF,QAAQ;AAAEuB,gBAAAA,OAAAA,EAAS,IAAM,KAAKvB,QAAAA;;0BACzHiB,GAAA,CAAChC,YAAAA,EAAAA,EAAAA;;;AAGb;;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IssueConversation } from '@cratis/showrunner.usher';
|
|
2
|
+
export interface IssueConversationPanelProps {
|
|
3
|
+
issue: IssueConversation;
|
|
4
|
+
}
|
|
5
|
+
export declare const IssueConversationPanel: ({ issue }: IssueConversationPanelProps) => import("react").JSX.Element;
|
|
6
|
+
//# sourceMappingURL=IssueConversationPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IssueConversationPanel.d.ts","sourceRoot":"","sources":["../../../../Issues/IssueView/IssueConversationPanel.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAqD,iBAAiB,EAAc,MAAM,0BAA0B,CAAC;AAQ5H,MAAM,WAAW,2BAA2B;IAExC,KAAK,EAAE,iBAAiB,CAAC;CAC5B;AAMD,eAAO,MAAM,sBAAsB,GAAI,WAAW,2BAA2B,gCAiE5E,CAAC"}
|