@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,56 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var CommandDialog = require('@cratis/components/CommandDialog');
|
|
5
|
+
var CommandForm = require('@cratis/components/CommandForm');
|
|
6
|
+
var Dialogs = require('@cratis/components/Dialogs');
|
|
7
|
+
var showrunner_usher = require('@cratis/showrunner.usher');
|
|
8
|
+
var react = require('react');
|
|
9
|
+
var UsherContext = require('../../Provider/UsherContext.js');
|
|
10
|
+
var AccessNotice = require('../../Reporting/AccessNotice.js');
|
|
11
|
+
var durationOptions = require('../../Reporting/durationOptions.js');
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Lets the reporter grant support access to sign in as them on an issue for a while, stating until when.
|
|
15
|
+
*/ const GrantAccessDialog = ({ issueId })=>{
|
|
16
|
+
const labels = UsherContext.useUsherLabels();
|
|
17
|
+
const noticeId = react.useId();
|
|
18
|
+
const [duration, setDuration] = react.useState(showrunner_usher.AccessDuration.oneDay);
|
|
19
|
+
return /*#__PURE__*/ jsxRuntime.jsx(CommandDialog.CommandDialog, {
|
|
20
|
+
command: showrunner_usher.GrantAccess,
|
|
21
|
+
title: labels.accessPanel.grantTitle,
|
|
22
|
+
okLabel: labels.accessPanel.grantConfirm,
|
|
23
|
+
cancelLabel: labels.common.cancel,
|
|
24
|
+
closeAriaLabel: labels.common.close,
|
|
25
|
+
initialFocus: Dialogs.DialogInitialFocus.Content,
|
|
26
|
+
initialValues: {
|
|
27
|
+
issueId,
|
|
28
|
+
accessDuration: showrunner_usher.AccessDuration.oneDay
|
|
29
|
+
},
|
|
30
|
+
onFieldChange: (_command, fieldName, _oldValue, newValue)=>{
|
|
31
|
+
if (fieldName === 'accessDuration') {
|
|
32
|
+
setDuration(Number(newValue));
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
children: /*#__PURE__*/ jsxRuntime.jsxs("div", {
|
|
36
|
+
className: "usher-report-form",
|
|
37
|
+
children: [
|
|
38
|
+
/*#__PURE__*/ jsxRuntime.jsx(CommandForm.DropdownField, {
|
|
39
|
+
value: (command)=>command.accessDuration,
|
|
40
|
+
title: labels.access.duration,
|
|
41
|
+
"aria-describedby": noticeId,
|
|
42
|
+
options: durationOptions.durationOptions(labels),
|
|
43
|
+
optionValue: "value",
|
|
44
|
+
optionLabel: "label"
|
|
45
|
+
}),
|
|
46
|
+
/*#__PURE__*/ jsxRuntime.jsx(AccessNotice.AccessNotice, {
|
|
47
|
+
id: noticeId,
|
|
48
|
+
duration: duration
|
|
49
|
+
})
|
|
50
|
+
]
|
|
51
|
+
})
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
exports.GrantAccessDialog = GrantAccessDialog;
|
|
56
|
+
//# 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,2BAAAA,EAAAA;AACf,IAAA,MAAMC,QAAAA,GAAWC,WAAAA,EAAAA;AACjB,IAAA,MAAM,CAACC,QAAAA,EAAUC,WAAAA,CAAY,GAAGC,cAAAA,CAASC,gCAAeC,MAAM,CAAA;AAE9D,IAAA,qBACIC,cAAA,CAACC,2BAAAA,EAAAA;QACGC,OAAAA,EAASC,4BAAAA;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,2BAAmBC,OAAO;QACxCC,aAAAA,EAAe;AAAE3B,YAAAA,OAAAA;AAAS4B,YAAAA,cAAAA,EAAgBpB,gCAAeC;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,eAAA,CAACC,KAAAA,EAAAA;YAAIC,SAAAA,EAAU,mBAAA;;8BACX3B,cAAA,CAAC4B,yBAAAA,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,+BAAAA,CAAgB1C,MAAAA,CAAAA;oBACzB2C,WAAAA,EAAY,OAAA;oBACZC,WAAAA,EAAY;;8BAChBnC,cAAA,CAACoC,yBAAAA,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,45 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var dialogs = require('@cratis/arc.react/dialogs');
|
|
5
|
+
var Common = require('@cratis/components/Common');
|
|
6
|
+
var showrunner_usher = require('@cratis/showrunner.usher');
|
|
7
|
+
var react = require('react');
|
|
8
|
+
var UsherContext = require('../../Provider/UsherContext.js');
|
|
9
|
+
var ShareIdentityDialog = require('./ShareIdentityDialog.js');
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Shows whether support knows who the reporter is, and lets them share it when it does not.
|
|
13
|
+
*/ const IdentityPanel = ({ issue })=>{
|
|
14
|
+
const labels = UsherContext.useUsherLabels();
|
|
15
|
+
const headingId = react.useId();
|
|
16
|
+
const [ShareDialog, showShareDialog] = dialogs.useDialog(ShareIdentityDialog.ShareIdentityDialog);
|
|
17
|
+
const canShare = !issue.identityShared && issue.state !== showrunner_usher.IssueState.withdrawn;
|
|
18
|
+
return /*#__PURE__*/ jsxRuntime.jsxs("section", {
|
|
19
|
+
className: "usher-panel",
|
|
20
|
+
"aria-labelledby": headingId,
|
|
21
|
+
children: [
|
|
22
|
+
/*#__PURE__*/ jsxRuntime.jsx("h4", {
|
|
23
|
+
id: headingId,
|
|
24
|
+
className: "usher-panel__heading",
|
|
25
|
+
children: labels.identity.heading
|
|
26
|
+
}),
|
|
27
|
+
/*#__PURE__*/ jsxRuntime.jsx("p", {
|
|
28
|
+
className: "usher-panel__text",
|
|
29
|
+
children: issue.identityShared ? labels.identity.known : labels.identity.unknown
|
|
30
|
+
}),
|
|
31
|
+
canShare && /*#__PURE__*/ jsxRuntime.jsx(Common.Button, {
|
|
32
|
+
variant: "outline",
|
|
33
|
+
size: "small",
|
|
34
|
+
label: labels.identity.share,
|
|
35
|
+
onClick: ()=>void showShareDialog({
|
|
36
|
+
issueId: issue.id
|
|
37
|
+
})
|
|
38
|
+
}),
|
|
39
|
+
/*#__PURE__*/ jsxRuntime.jsx(ShareDialog, {})
|
|
40
|
+
]
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
exports.IdentityPanel = IdentityPanel;
|
|
45
|
+
//# 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,2BAAAA,EAAAA;AACf,IAAA,MAAMC,SAAAA,GAAYC,WAAAA,EAAAA;AAClB,IAAA,MAAM,CAACC,WAAAA,EAAaC,eAAAA,CAAgB,GAAGC,iBAAAA,CAAUC,uCAAAA,CAAAA;IACjD,MAAMC,QAAAA,GAAW,CAACT,KAAAA,CAAMU,cAAc,IAAIV,KAAAA,CAAMW,KAAK,KAAKC,2BAAAA,CAAWC,SAAS;AAE9E,IAAA,qBACIC,eAAA,CAACC,SAAAA,EAAAA;QAAQC,SAAAA,EAAU,aAAA;QAAcC,iBAAAA,EAAiBd,SAAAA;;0BAC9Ce,cAAA,CAACC,IAAAA,EAAAA;gBAAGC,EAAAA,EAAIjB,SAAAA;gBAAWa,SAAAA,EAAU,sBAAA;0BAAwBf,MAAAA,CAAOoB,QAAQ,CAACC;;0BACrEJ,cAAA,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,cAAA,CAACQ,aAAAA,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,cAAA,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,58 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var dialogs = require('@cratis/arc.react/dialogs');
|
|
5
|
+
var Common = require('@cratis/components/Common');
|
|
6
|
+
var Notifications = require('@cratis/components/Notifications');
|
|
7
|
+
var showrunner_usher = require('@cratis/showrunner.usher');
|
|
8
|
+
var UsherContext = require('../../Provider/UsherContext.js');
|
|
9
|
+
var issueStates = require('../issueStates.js');
|
|
10
|
+
var ReopenIssueDialog = require('./ReopenIssueDialog.js');
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* What the reporter can do with an issue: reopen it once resolved, and withdraw it while it is open.
|
|
14
|
+
*/ const IssueActions = ({ issue })=>{
|
|
15
|
+
const labels = UsherContext.useUsherLabels();
|
|
16
|
+
const [ReopenDialog, showReopenDialog] = dialogs.useDialog(ReopenIssueDialog.ReopenIssueDialog);
|
|
17
|
+
const [confirm] = dialogs.useConfirmationDialog();
|
|
18
|
+
const [withdrawIssue] = showrunner_usher.WithdrawIssue.use();
|
|
19
|
+
const canReopen = issue.state === showrunner_usher.IssueState.resolved;
|
|
20
|
+
const canWithdraw = !issueStates.isClosed(issue.state);
|
|
21
|
+
const withdraw = async ()=>{
|
|
22
|
+
const answer = await confirm(labels.actions.withdrawTitle, labels.actions.withdrawMessage, dialogs.DialogButtons.YesNo);
|
|
23
|
+
if (answer !== dialogs.DialogResult.Yes) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
withdrawIssue.issueId = issue.id;
|
|
27
|
+
Notifications.toastCommandResult(await withdrawIssue.execute(), {
|
|
28
|
+
showSuccess: false
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
if (!canReopen && !canWithdraw) {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
return /*#__PURE__*/ jsxRuntime.jsxs("div", {
|
|
35
|
+
className: "usher-issue-actions",
|
|
36
|
+
children: [
|
|
37
|
+
canReopen && /*#__PURE__*/ jsxRuntime.jsx(Common.Button, {
|
|
38
|
+
variant: "outline",
|
|
39
|
+
size: "small",
|
|
40
|
+
label: labels.actions.reopen,
|
|
41
|
+
onClick: ()=>void showReopenDialog({
|
|
42
|
+
issueId: issue.id
|
|
43
|
+
})
|
|
44
|
+
}),
|
|
45
|
+
canWithdraw && /*#__PURE__*/ jsxRuntime.jsx(Common.Button, {
|
|
46
|
+
variant: "ghost",
|
|
47
|
+
tone: "critical",
|
|
48
|
+
size: "small",
|
|
49
|
+
label: labels.actions.withdraw,
|
|
50
|
+
onClick: ()=>void withdraw()
|
|
51
|
+
}),
|
|
52
|
+
/*#__PURE__*/ jsxRuntime.jsx(ReopenDialog, {})
|
|
53
|
+
]
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
exports.IssueActions = IssueActions;
|
|
58
|
+
//# 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,2BAAAA,EAAAA;AACf,IAAA,MAAM,CAACC,YAAAA,EAAcC,gBAAAA,CAAiB,GAAGC,iBAAAA,CAAUC,mCAAAA,CAAAA;IACnD,MAAM,CAACC,QAAQ,GAAGC,6BAAAA,EAAAA;AAClB,IAAA,MAAM,CAACC,aAAAA,CAAc,GAAGC,8BAAAA,CAAcC,GAAG,EAAA;AACzC,IAAA,MAAMC,SAAAA,GAAYZ,KAAAA,CAAMa,KAAK,KAAKC,4BAAWC,QAAQ;AACrD,IAAA,MAAMC,WAAAA,GAAc,CAACC,oBAAAA,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,sBAAcC,KAAK,CAAA;QAC9G,IAAIL,MAAAA,KAAWM,oBAAAA,CAAaC,GAAG,EAAE;AAC7B,YAAA;AACJ,QAAA;QAEAjB,aAAAA,CAAckB,OAAO,GAAG3B,KAAAA,CAAM4B,EAAE;QAChCC,gCAAAA,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,eAAA,CAACC,KAAAA,EAAAA;QAAIC,SAAAA,EAAU,qBAAA;;AACVtB,YAAAA,SAAAA,kBAAauB,cAAA,CAACC,aAAAA,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,cAAA,CAACC,aAAAA,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,cAAA,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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var Chat = require('@cratis/components/Chat');
|
|
5
|
+
var Display = require('@cratis/components/Display');
|
|
6
|
+
var Notifications = require('@cratis/components/Notifications');
|
|
7
|
+
var showrunner_usher = require('@cratis/showrunner.usher');
|
|
8
|
+
var react = require('react');
|
|
9
|
+
var UsherContext = require('../../Provider/UsherContext.js');
|
|
10
|
+
var conversationMessages = require('../conversationMessages.js');
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* The conversation on an issue. A message the reporter sends answers support's open question, or adds details when
|
|
14
|
+
* there is none. Once the reporter withdrew the issue, the composer is disabled: nothing more can be added to it.
|
|
15
|
+
*/ const IssueConversationPanel = ({ issue })=>{
|
|
16
|
+
const labels = UsherContext.useUsherLabels();
|
|
17
|
+
const [addDetails] = showrunner_usher.AddDetails.use();
|
|
18
|
+
const [answerQuestion] = showrunner_usher.AnswerQuestion.use();
|
|
19
|
+
const messages = react.useMemo(()=>conversationMessages.conversationMessages(issue.id, issue.entries ?? [], labels), [
|
|
20
|
+
issue.id,
|
|
21
|
+
issue.entries,
|
|
22
|
+
labels
|
|
23
|
+
]);
|
|
24
|
+
const openQuestionId = issue.openQuestion?.questionId;
|
|
25
|
+
const isWithdrawn = issue.state === showrunner_usher.IssueState.withdrawn;
|
|
26
|
+
const send = async (body)=>{
|
|
27
|
+
if (isWithdrawn) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
if (conversationMessages.isOpenQuestion(openQuestionId)) {
|
|
31
|
+
answerQuestion.issueId = issue.id;
|
|
32
|
+
answerQuestion.questionId = openQuestionId;
|
|
33
|
+
answerQuestion.answer = body;
|
|
34
|
+
Notifications.toastCommandResult(await answerQuestion.execute(), {
|
|
35
|
+
showSuccess: false
|
|
36
|
+
});
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
addDetails.issueId = issue.id;
|
|
40
|
+
addDetails.details = body;
|
|
41
|
+
Notifications.toastCommandResult(await addDetails.execute(), {
|
|
42
|
+
showSuccess: false
|
|
43
|
+
});
|
|
44
|
+
};
|
|
45
|
+
const renderMessageExtra = (message)=>{
|
|
46
|
+
if (message.kind !== showrunner_usher.ConversationEntryKind.questionAsked) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
const isOpen = conversationMessages.isOpenQuestion(openQuestionId) && openQuestionId.equals(message.questionId);
|
|
50
|
+
return /*#__PURE__*/ jsxRuntime.jsx("span", {
|
|
51
|
+
className: "usher-conversation__question-state",
|
|
52
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(Display.Tag, {
|
|
53
|
+
value: isOpen ? labels.issue.waitingForAnswer : labels.issue.answered,
|
|
54
|
+
severity: isOpen ? 'warn' : 'success'
|
|
55
|
+
})
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
return /*#__PURE__*/ jsxRuntime.jsxs("section", {
|
|
59
|
+
className: "usher-conversation",
|
|
60
|
+
"data-closed": isWithdrawn || undefined,
|
|
61
|
+
"aria-label": issue.title,
|
|
62
|
+
children: [
|
|
63
|
+
/*#__PURE__*/ jsxRuntime.jsx("fieldset", {
|
|
64
|
+
className: "usher-conversation__fieldset",
|
|
65
|
+
disabled: isWithdrawn,
|
|
66
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(Chat.ChatConversation, {
|
|
67
|
+
messages: messages,
|
|
68
|
+
onSendMessage: (body)=>void send(body),
|
|
69
|
+
authorOf: (authorId)=>conversationMessages.authorOf(authorId, labels),
|
|
70
|
+
renderMessageExtra: renderMessageExtra,
|
|
71
|
+
quickReply: false,
|
|
72
|
+
labels: {
|
|
73
|
+
empty: labels.conversation.empty,
|
|
74
|
+
timestamps: {
|
|
75
|
+
justNow: labels.conversation.justNow,
|
|
76
|
+
minutesAgo: labels.conversation.minutesAgo,
|
|
77
|
+
hoursAgo: labels.conversation.hoursAgo
|
|
78
|
+
},
|
|
79
|
+
composer: {
|
|
80
|
+
placeholder: isWithdrawn ? labels.issue.withdrawnPlaceholder : labels.issue.composerPlaceholder,
|
|
81
|
+
send: labels.conversation.send,
|
|
82
|
+
sendMessage: labels.conversation.send
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
})
|
|
86
|
+
}),
|
|
87
|
+
isWithdrawn && /*#__PURE__*/ jsxRuntime.jsx(Display.Message, {
|
|
88
|
+
severity: "secondary",
|
|
89
|
+
text: labels.issue.withdrawnNotice,
|
|
90
|
+
live: false
|
|
91
|
+
})
|
|
92
|
+
]
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
exports.IssueConversationPanel = IssueConversationPanel;
|
|
97
|
+
//# sourceMappingURL=IssueConversationPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IssueConversationPanel.js","sources":["../../../../Issues/IssueView/IssueConversationPanel.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 { ChatConversation } from '@cratis/components/Chat';\nimport { Message, Tag } from '@cratis/components/Display';\nimport { toastCommandResult } from '@cratis/components/Notifications';\nimport { AddDetails, AnswerQuestion, ConversationEntryKind, IssueConversation, IssueState } from '@cratis/showrunner.usher';\nimport { useMemo } from 'react';\nimport { useUsherLabels } from '../../Provider/UsherContext.js';\nimport { authorOf, ConversationMessage, conversationMessages, isOpenQuestion } from '../conversationMessages.js';\n\n/**\n * Props for {@link IssueConversationPanel}.\n */\nexport interface IssueConversationPanelProps {\n /** The issue. */\n issue: IssueConversation;\n}\n\n/**\n * The conversation on an issue. A message the reporter sends answers support's open question, or adds details when\n * there is none. Once the reporter withdrew the issue, the composer is disabled: nothing more can be added to it.\n */\nexport const IssueConversationPanel = ({ issue }: IssueConversationPanelProps) => {\n const labels = useUsherLabels();\n const [addDetails] = AddDetails.use();\n const [answerQuestion] = AnswerQuestion.use();\n const messages = useMemo(() => conversationMessages(issue.id, issue.entries ?? [], labels), [issue.id, issue.entries, labels]);\n const openQuestionId = issue.openQuestion?.questionId;\n const isWithdrawn = issue.state === IssueState.withdrawn;\n\n const send = async (body: string) => {\n if (isWithdrawn) {\n return;\n }\n\n if (isOpenQuestion(openQuestionId)) {\n answerQuestion.issueId = issue.id;\n answerQuestion.questionId = openQuestionId;\n answerQuestion.answer = body;\n toastCommandResult(await answerQuestion.execute(), { showSuccess: false });\n return;\n }\n\n addDetails.issueId = issue.id;\n addDetails.details = body;\n toastCommandResult(await addDetails.execute(), { showSuccess: false });\n };\n\n const renderMessageExtra = (message: ConversationMessage) => {\n if (message.kind !== ConversationEntryKind.questionAsked) {\n return undefined;\n }\n\n const isOpen = isOpenQuestion(openQuestionId) && openQuestionId.equals(message.questionId);\n return (\n <span className='usher-conversation__question-state'>\n <Tag value={isOpen ? labels.issue.waitingForAnswer : labels.issue.answered} severity={isOpen ? 'warn' : 'success'} />\n </span>\n );\n };\n\n return (\n <section className='usher-conversation' data-closed={isWithdrawn || undefined} aria-label={issue.title}>\n <fieldset className='usher-conversation__fieldset' disabled={isWithdrawn}>\n <ChatConversation<ConversationMessage>\n messages={messages}\n onSendMessage={body => void send(body)}\n authorOf={authorId => authorOf(authorId, labels)}\n renderMessageExtra={renderMessageExtra}\n quickReply={false}\n labels={{\n empty: labels.conversation.empty,\n timestamps: {\n justNow: labels.conversation.justNow,\n minutesAgo: labels.conversation.minutesAgo,\n hoursAgo: labels.conversation.hoursAgo\n },\n composer: {\n placeholder: isWithdrawn ? labels.issue.withdrawnPlaceholder : labels.issue.composerPlaceholder,\n send: labels.conversation.send,\n sendMessage: labels.conversation.send\n }\n }} />\n </fieldset>\n {isWithdrawn && <Message severity='secondary' text={labels.issue.withdrawnNotice} live={false} />}\n </section>\n );\n};\n"],"names":["IssueConversationPanel","issue","labels","useUsherLabels","addDetails","AddDetails","use","answerQuestion","AnswerQuestion","messages","useMemo","conversationMessages","id","entries","openQuestionId","openQuestion","questionId","isWithdrawn","state","IssueState","withdrawn","send","body","isOpenQuestion","issueId","answer","toastCommandResult","execute","showSuccess","details","renderMessageExtra","message","kind","ConversationEntryKind","questionAsked","undefined","isOpen","equals","_jsx","span","className","Tag","value","waitingForAnswer","answered","severity","_jsxs","section","data-closed","aria-label","title","fieldset","disabled","ChatConversation","onSendMessage","authorOf","authorId","quickReply","empty","conversation","timestamps","justNow","minutesAgo","hoursAgo","composer","placeholder","withdrawnPlaceholder","composerPlaceholder","sendMessage","Message","text","withdrawnNotice","live"],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IssueConversation } from '@cratis/showrunner.usher';
|
|
2
|
+
export interface IssueHeaderProps {
|
|
3
|
+
issue: IssueConversation;
|
|
4
|
+
onBack?: () => void;
|
|
5
|
+
}
|
|
6
|
+
export declare const IssueHeader: ({ issue, onBack }: IssueHeaderProps) => import("react").JSX.Element;
|
|
7
|
+
//# sourceMappingURL=IssueHeader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IssueHeader.d.ts","sourceRoot":"","sources":["../../../../Issues/IssueView/IssueHeader.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAa7D,MAAM,WAAW,gBAAgB;IAE7B,KAAK,EAAE,iBAAiB,CAAC;IAGzB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAKD,eAAO,MAAM,WAAW,GAAI,mBAAmB,gBAAgB,gCAuC9D,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var Common = require('@cratis/components/Common');
|
|
5
|
+
var Display = require('@cratis/components/Display');
|
|
6
|
+
var format = require('../../Labels/format.js');
|
|
7
|
+
var UsherContext = require('../../Provider/UsherContext.js');
|
|
8
|
+
var AccessChoice = require('../../Reporting/AccessChoice.js');
|
|
9
|
+
var formatLocation = require('../../Reporting/formatLocation.js');
|
|
10
|
+
var Icons = require('../../Icons.js');
|
|
11
|
+
var issueStates = require('../issueStates.js');
|
|
12
|
+
var MyIssuesList = require('../MyIssuesList.js');
|
|
13
|
+
var webAddress = require('../webAddress.js');
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* The header of an issue: its title and state, when and where it was reported, and what it is linked to.
|
|
17
|
+
*/ const IssueHeader = ({ issue, onBack })=>{
|
|
18
|
+
const { labels, locale } = UsherContext.useUsherContext();
|
|
19
|
+
const badge = issueStates.stateBadgeFor(issue.state, labels);
|
|
20
|
+
const reportedAt = issue.reportedAt instanceof Date ? issue.reportedAt : new Date(issue.reportedAt);
|
|
21
|
+
const location = formatLocation.formatLocation(issue.location, labels.common.locationSeparator, labels.common.unknownLocation);
|
|
22
|
+
const workItem = issue.workItem;
|
|
23
|
+
const hasWorkItem = (workItem?.reference ?? '').length > 0;
|
|
24
|
+
return /*#__PURE__*/ jsxRuntime.jsxs("header", {
|
|
25
|
+
className: "usher-issue-header",
|
|
26
|
+
children: [
|
|
27
|
+
onBack && /*#__PURE__*/ jsxRuntime.jsx(Common.Button, {
|
|
28
|
+
variant: "ghost",
|
|
29
|
+
size: "small",
|
|
30
|
+
icon: /*#__PURE__*/ jsxRuntime.jsx(Icons.BackIcon, {}),
|
|
31
|
+
onClick: onBack,
|
|
32
|
+
label: labels.issue.back
|
|
33
|
+
}),
|
|
34
|
+
/*#__PURE__*/ jsxRuntime.jsxs("div", {
|
|
35
|
+
className: "usher-issue-header__title-row",
|
|
36
|
+
children: [
|
|
37
|
+
/*#__PURE__*/ jsxRuntime.jsx("h3", {
|
|
38
|
+
className: "usher-issue-header__title",
|
|
39
|
+
children: issue.title
|
|
40
|
+
}),
|
|
41
|
+
/*#__PURE__*/ jsxRuntime.jsx(Display.Tag, {
|
|
42
|
+
value: badge.label,
|
|
43
|
+
severity: badge.severity
|
|
44
|
+
})
|
|
45
|
+
]
|
|
46
|
+
}),
|
|
47
|
+
/*#__PURE__*/ jsxRuntime.jsxs("p", {
|
|
48
|
+
className: "usher-issue-header__meta",
|
|
49
|
+
children: [
|
|
50
|
+
format.format(labels.issue.reported, {
|
|
51
|
+
date: AccessChoice.formatTime(reportedAt, locale)
|
|
52
|
+
}),
|
|
53
|
+
" · ",
|
|
54
|
+
location
|
|
55
|
+
]
|
|
56
|
+
}),
|
|
57
|
+
(issue.knownIssueTitle?.length > 0 || hasWorkItem) && /*#__PURE__*/ jsxRuntime.jsxs("p", {
|
|
58
|
+
className: "usher-issue-header__links",
|
|
59
|
+
children: [
|
|
60
|
+
issue.knownIssueTitle?.length > 0 && /*#__PURE__*/ jsxRuntime.jsxs("span", {
|
|
61
|
+
children: [
|
|
62
|
+
labels.issue.knownIssue,
|
|
63
|
+
" ",
|
|
64
|
+
/*#__PURE__*/ jsxRuntime.jsx("strong", {
|
|
65
|
+
children: issue.knownIssueTitle
|
|
66
|
+
})
|
|
67
|
+
]
|
|
68
|
+
}),
|
|
69
|
+
hasWorkItem && /*#__PURE__*/ jsxRuntime.jsxs("span", {
|
|
70
|
+
children: [
|
|
71
|
+
labels.issue.trackedIn,
|
|
72
|
+
' ',
|
|
73
|
+
webAddress.isWebAddress(workItem.url) ? /*#__PURE__*/ jsxRuntime.jsx("a", {
|
|
74
|
+
href: workItem.url,
|
|
75
|
+
target: "_blank",
|
|
76
|
+
rel: "noreferrer",
|
|
77
|
+
children: workItem.reference
|
|
78
|
+
}) : /*#__PURE__*/ jsxRuntime.jsx("strong", {
|
|
79
|
+
children: workItem.reference
|
|
80
|
+
}),
|
|
81
|
+
' · ',
|
|
82
|
+
MyIssuesList.isFixReleased(issue) ? format.format(labels.issue.fixedIn, {
|
|
83
|
+
version: issue.fixedInVersion
|
|
84
|
+
}) : labels.issue.notReleased
|
|
85
|
+
]
|
|
86
|
+
})
|
|
87
|
+
]
|
|
88
|
+
})
|
|
89
|
+
]
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
exports.IssueHeader = IssueHeader;
|
|
94
|
+
//# sourceMappingURL=IssueHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IssueHeader.js","sources":["../../../../Issues/IssueView/IssueHeader.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 { Button } from '@cratis/components/Common';\nimport { Tag } from '@cratis/components/Display';\nimport { IssueConversation } from '@cratis/showrunner.usher';\nimport { format } from '../../Labels/index.js';\nimport { useUsherContext } from '../../Provider/UsherContext.js';\nimport { formatTime } from '../../Reporting/AccessChoice.js';\nimport { formatLocation } from '../../Reporting/formatLocation.js';\nimport { BackIcon } from '../../Icons.js';\nimport { stateBadgeFor } from '../issueStates.js';\nimport { isFixReleased } from '../MyIssuesList.js';\nimport { isWebAddress } from '../webAddress.js';\n\n/**\n * Props for {@link IssueHeader}.\n */\nexport interface IssueHeaderProps {\n /** The issue. */\n issue: IssueConversation;\n\n /** Goes back to the list of issues; no back button when not given. */\n onBack?: () => void;\n}\n\n/**\n * The header of an issue: its title and state, when and where it was reported, and what it is linked to.\n */\nexport const IssueHeader = ({ issue, onBack }: IssueHeaderProps) => {\n const { labels, locale } = useUsherContext();\n const badge = stateBadgeFor(issue.state, labels);\n const reportedAt = issue.reportedAt instanceof Date ? issue.reportedAt : new Date(issue.reportedAt);\n const location = formatLocation(issue.location, labels.common.locationSeparator, labels.common.unknownLocation);\n const workItem = issue.workItem;\n const hasWorkItem = (workItem?.reference ?? '').length > 0;\n\n return (\n <header className='usher-issue-header'>\n {onBack && (\n <Button variant='ghost' size='small' icon={<BackIcon />} onClick={onBack} label={labels.issue.back} />\n )}\n <div className='usher-issue-header__title-row'>\n <h3 className='usher-issue-header__title'>{issue.title}</h3>\n <Tag value={badge.label} severity={badge.severity} />\n </div>\n <p className='usher-issue-header__meta'>\n {format(labels.issue.reported, { date: formatTime(reportedAt, locale) })} · {location}\n </p>\n {(issue.knownIssueTitle?.length > 0 || hasWorkItem) && (\n <p className='usher-issue-header__links'>\n {issue.knownIssueTitle?.length > 0 && (\n <span>{labels.issue.knownIssue} <strong>{issue.knownIssueTitle}</strong></span>\n )}\n {hasWorkItem && (\n <span>\n {labels.issue.trackedIn}{' '}\n {isWebAddress(workItem.url)\n ? <a href={workItem.url} target='_blank' rel='noreferrer'>{workItem.reference}</a>\n : <strong>{workItem.reference}</strong>}\n {' · '}\n {isFixReleased(issue) ? format(labels.issue.fixedIn, { version: issue.fixedInVersion }) : labels.issue.notReleased}\n </span>\n )}\n </p>\n )}\n </header>\n );\n};\n"],"names":["IssueHeader","issue","onBack","labels","locale","useUsherContext","badge","stateBadgeFor","state","reportedAt","Date","location","formatLocation","common","locationSeparator","unknownLocation","workItem","hasWorkItem","reference","length","_jsxs","header","className","_jsx","Button","variant","size","icon","BackIcon","onClick","label","back","div","h3","title","Tag","value","severity","p","format","reported","date","formatTime","knownIssueTitle","span","knownIssue","strong","trackedIn","isWebAddress","url","a","href","target","rel","isFixReleased","fixedIn","version","fixedInVersion","notReleased"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IssueView.d.ts","sourceRoot":"","sources":["../../../../Issues/IssueView/IssueView.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAgB5C,MAAM,WAAW,cAAc;IAE3B,OAAO,EAAE,IAAI,CAAC;IAGd,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAOD,eAAO,MAAM,SAAS,GAAI,OAAO,cAAc,gCAI9C,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var Display = require('@cratis/components/Display');
|
|
5
|
+
var showrunner_usher = require('@cratis/showrunner.usher');
|
|
6
|
+
var UsherBoundary = require('../../Provider/UsherBoundary.js');
|
|
7
|
+
var UsherContext = require('../../Provider/UsherContext.js');
|
|
8
|
+
var conversationMessages = require('../conversationMessages.js');
|
|
9
|
+
var AccessPanel = require('./AccessPanel.js');
|
|
10
|
+
var IdentityPanel = require('./IdentityPanel.js');
|
|
11
|
+
var IssueActions = require('./IssueActions.js');
|
|
12
|
+
var IssueConversationPanel = require('./IssueConversationPanel.js');
|
|
13
|
+
var IssueHeader = require('./IssueHeader.js');
|
|
14
|
+
var QuestionBanner = require('./QuestionBanner.js');
|
|
15
|
+
var StatusStrip = require('./StatusStrip.js');
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* One of the signed-in reporter's issues: its state, the conversation with support, who support knows the reporter
|
|
19
|
+
* is, support's access, and what the reporter can do with it. It stays current as support works on the issue.
|
|
20
|
+
* Usable on its own, such as on a page of the solution, or inside the my issues side sheet.
|
|
21
|
+
*/ const IssueView = (props)=>/*#__PURE__*/ jsxRuntime.jsx(UsherBoundary.UsherBoundary, {
|
|
22
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(IssueViewContent, {
|
|
23
|
+
...props
|
|
24
|
+
})
|
|
25
|
+
});
|
|
26
|
+
const IssueViewContent = ({ issueId, onBack })=>{
|
|
27
|
+
const labels = UsherContext.useUsherLabels();
|
|
28
|
+
const [result] = showrunner_usher.ForIssue.use({
|
|
29
|
+
issueId
|
|
30
|
+
});
|
|
31
|
+
// The query answers with the issue or with nothing: an issue the reporter did not report, or one support's session
|
|
32
|
+
// is not for, is never sent.
|
|
33
|
+
const issue = result.data?.[0];
|
|
34
|
+
const isLoaded = result.hasData && issue?.id !== undefined;
|
|
35
|
+
if (!isLoaded) {
|
|
36
|
+
return /*#__PURE__*/ jsxRuntime.jsx("div", {
|
|
37
|
+
className: "usher-issue-view",
|
|
38
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(Display.Message, {
|
|
39
|
+
severity: result.isPerforming ? 'info' : 'secondary',
|
|
40
|
+
text: result.isPerforming ? labels.issue.loading : labels.issue.notFound
|
|
41
|
+
})
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
const openQuestion = issue.openQuestion;
|
|
45
|
+
return /*#__PURE__*/ jsxRuntime.jsxs("div", {
|
|
46
|
+
className: "usher-issue-view",
|
|
47
|
+
children: [
|
|
48
|
+
/*#__PURE__*/ jsxRuntime.jsx(IssueHeader.IssueHeader, {
|
|
49
|
+
issue: issue,
|
|
50
|
+
onBack: onBack
|
|
51
|
+
}),
|
|
52
|
+
/*#__PURE__*/ jsxRuntime.jsx(StatusStrip.StatusStrip, {
|
|
53
|
+
state: issue.state
|
|
54
|
+
}),
|
|
55
|
+
conversationMessages.isOpenQuestion(openQuestion?.questionId) && /*#__PURE__*/ jsxRuntime.jsx(QuestionBanner.QuestionBanner, {
|
|
56
|
+
question: openQuestion.question
|
|
57
|
+
}),
|
|
58
|
+
/*#__PURE__*/ jsxRuntime.jsxs("div", {
|
|
59
|
+
className: "usher-issue-view__body",
|
|
60
|
+
children: [
|
|
61
|
+
/*#__PURE__*/ jsxRuntime.jsx(IssueConversationPanel.IssueConversationPanel, {
|
|
62
|
+
issue: issue
|
|
63
|
+
}),
|
|
64
|
+
/*#__PURE__*/ jsxRuntime.jsxs("aside", {
|
|
65
|
+
className: "usher-issue-view__side",
|
|
66
|
+
children: [
|
|
67
|
+
/*#__PURE__*/ jsxRuntime.jsx(IdentityPanel.IdentityPanel, {
|
|
68
|
+
issue: issue
|
|
69
|
+
}),
|
|
70
|
+
/*#__PURE__*/ jsxRuntime.jsx(AccessPanel.AccessPanel, {
|
|
71
|
+
issue: issue
|
|
72
|
+
}),
|
|
73
|
+
/*#__PURE__*/ jsxRuntime.jsx(IssueActions.IssueActions, {
|
|
74
|
+
issue: issue
|
|
75
|
+
})
|
|
76
|
+
]
|
|
77
|
+
})
|
|
78
|
+
]
|
|
79
|
+
})
|
|
80
|
+
]
|
|
81
|
+
});
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
exports.IssueView = IssueView;
|
|
85
|
+
//# sourceMappingURL=IssueView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IssueView.js","sources":["../../../../Issues/IssueView/IssueView.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 { Message } from '@cratis/components/Display';\nimport { Guid } from '@cratis/fundamentals';\nimport { ForIssue } from '@cratis/showrunner.usher';\nimport { UsherBoundary } from '../../Provider/UsherBoundary.js';\nimport { useUsherLabels } from '../../Provider/UsherContext.js';\nimport { isOpenQuestion } from '../conversationMessages.js';\nimport { AccessPanel } from './AccessPanel.js';\nimport { IdentityPanel } from './IdentityPanel.js';\nimport { IssueActions } from './IssueActions.js';\nimport { IssueConversationPanel } from './IssueConversationPanel.js';\nimport { IssueHeader } from './IssueHeader.js';\nimport { QuestionBanner } from './QuestionBanner.js';\nimport { StatusStrip } from './StatusStrip.js';\n\n/**\n * Props for {@link IssueView}.\n */\nexport interface IssueViewProps {\n /** The issue to show. */\n issueId: Guid;\n\n /** Goes back to the list of issues; no back button when not given. */\n onBack?: () => void;\n}\n\n/**\n * One of the signed-in reporter's issues: its state, the conversation with support, who support knows the reporter\n * is, support's access, and what the reporter can do with it. It stays current as support works on the issue.\n * Usable on its own, such as on a page of the solution, or inside the my issues side sheet.\n */\nexport const IssueView = (props: IssueViewProps) => (\n <UsherBoundary>\n <IssueViewContent {...props} />\n </UsherBoundary>\n);\n\nconst IssueViewContent = ({ issueId, onBack }: IssueViewProps) => {\n const labels = useUsherLabels();\n const [result] = ForIssue.use({ issueId });\n\n // The query answers with the issue or with nothing: an issue the reporter did not report, or one support's session\n // is not for, is never sent.\n const issue = result.data?.[0];\n const isLoaded = result.hasData && issue?.id !== undefined;\n\n if (!isLoaded) {\n return (\n <div className='usher-issue-view'>\n <Message severity={result.isPerforming ? 'info' : 'secondary'} text={result.isPerforming ? labels.issue.loading : labels.issue.notFound} />\n </div>\n );\n }\n\n const openQuestion = issue.openQuestion;\n\n return (\n <div className='usher-issue-view'>\n <IssueHeader issue={issue} onBack={onBack} />\n <StatusStrip state={issue.state} />\n {isOpenQuestion(openQuestion?.questionId) && <QuestionBanner question={openQuestion.question} />}\n <div className='usher-issue-view__body'>\n <IssueConversationPanel issue={issue} />\n <aside className='usher-issue-view__side'>\n <IdentityPanel issue={issue} />\n <AccessPanel issue={issue} />\n <IssueActions issue={issue} />\n </aside>\n </div>\n </div>\n );\n};\n"],"names":["IssueView","props","_jsx","UsherBoundary","IssueViewContent","issueId","onBack","labels","useUsherLabels","result","ForIssue","use","issue","data","isLoaded","hasData","id","undefined","div","className","Message","severity","isPerforming","text","loading","notFound","openQuestion","_jsxs","IssueHeader","StatusStrip","state","isOpenQuestion","questionId","QuestionBanner","question","IssueConversationPanel","aside","IdentityPanel","AccessPanel","IssueActions"],"mappings":";;;;;;;;;;;;;;;;AA4BA;;;;AAIC,IACM,MAAMA,SAAAA,GAAY,CAACC,sBACtBC,cAAA,CAACC,2BAAAA,EAAAA;AACG,QAAA,QAAA,gBAAAD,cAAA,CAACE,gBAAAA,EAAAA;AAAkB,YAAA,GAAGH;;AAE5B,KAAA;AAEF,MAAMG,mBAAmB,CAAC,EAAEC,OAAO,EAAEC,MAAM,EAAkB,GAAA;AACzD,IAAA,MAAMC,MAAAA,GAASC,2BAAAA,EAAAA;AACf,IAAA,MAAM,CAACC,MAAAA,CAAO,GAAGC,yBAAAA,CAASC,GAAG,CAAC;AAAEN,QAAAA;AAAQ,KAAA,CAAA;;;AAIxC,IAAA,MAAMO,KAAAA,GAAQH,MAAAA,CAAOI,IAAI,GAAG,CAAA,CAAE;AAC9B,IAAA,MAAMC,QAAAA,GAAWL,MAAAA,CAAOM,OAAO,IAAIH,OAAOI,EAAAA,KAAOC,SAAAA;AAEjD,IAAA,IAAI,CAACH,QAAAA,EAAU;AACX,QAAA,qBACIZ,cAAA,CAACgB,KAAAA,EAAAA;YAAIC,SAAAA,EAAU,kBAAA;AACX,YAAA,QAAA,gBAAAjB,cAAA,CAACkB,eAAAA,EAAAA;gBAAQC,QAAAA,EAAUZ,MAAAA,CAAOa,YAAY,GAAG,MAAA,GAAS,WAAA;gBAAaC,IAAAA,EAAMd,MAAAA,CAAOa,YAAY,GAAGf,MAAAA,CAAOK,KAAK,CAACY,OAAO,GAAGjB,MAAAA,CAAOK,KAAK,CAACa;;;AAG3I,IAAA;IAEA,MAAMC,YAAAA,GAAed,MAAMc,YAAY;AAEvC,IAAA,qBACIC,eAAA,CAACT,KAAAA,EAAAA;QAAIC,SAAAA,EAAU,kBAAA;;0BACXjB,cAAA,CAAC0B,uBAAAA,EAAAA;gBAAYhB,KAAAA,EAAOA,KAAAA;gBAAON,MAAAA,EAAQA;;0BACnCJ,cAAA,CAAC2B,uBAAAA,EAAAA;AAAYC,gBAAAA,KAAAA,EAAOlB,MAAMkB;;YACzBC,mCAAAA,CAAeL,YAAAA,EAAcM,6BAAe9B,cAAA,CAAC+B,6BAAAA,EAAAA;AAAeC,gBAAAA,QAAAA,EAAUR,aAAaQ;;0BACpFP,eAAA,CAACT,KAAAA,EAAAA;gBAAIC,SAAAA,EAAU,wBAAA;;kCACXjB,cAAA,CAACiC,6CAAAA,EAAAA;wBAAuBvB,KAAAA,EAAOA;;kCAC/Be,eAAA,CAACS,OAAAA,EAAAA;wBAAMjB,SAAAA,EAAU,wBAAA;;0CACbjB,cAAA,CAACmC,2BAAAA,EAAAA;gCAAczB,KAAAA,EAAOA;;0CACtBV,cAAA,CAACoC,uBAAAA,EAAAA;gCAAY1B,KAAAA,EAAOA;;0CACpBV,cAAA,CAACqC,yBAAAA,EAAAA;gCAAa3B,KAAAA,EAAOA;;;;;;;;AAKzC,CAAA;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QuestionBanner.d.ts","sourceRoot":"","sources":["../../../../Issues/IssueView/QuestionBanner.tsx"],"names":[],"mappings":"AAUA,MAAM,WAAW,mBAAmB;IAEhC,QAAQ,EAAE,MAAM,CAAC;CACpB;AAKD,eAAO,MAAM,cAAc,GAAI,cAAc,mBAAmB,gCAQ/D,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var Display = require('@cratis/components/Display');
|
|
5
|
+
var format = require('../../Labels/format.js');
|
|
6
|
+
var UsherContext = require('../../Provider/UsherContext.js');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Tells the reporter that support waits for an answer, and that their next message answers it.
|
|
10
|
+
*/ const QuestionBanner = ({ question })=>{
|
|
11
|
+
const labels = UsherContext.useUsherLabels();
|
|
12
|
+
return /*#__PURE__*/ jsxRuntime.jsx("div", {
|
|
13
|
+
className: "usher-question-banner",
|
|
14
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(Display.Message, {
|
|
15
|
+
severity: "warn",
|
|
16
|
+
text: format.format(labels.issue.questionBanner, {
|
|
17
|
+
question
|
|
18
|
+
})
|
|
19
|
+
})
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
exports.QuestionBanner = QuestionBanner;
|
|
24
|
+
//# sourceMappingURL=QuestionBanner.js.map
|