@cratis/showrunner.usher.react 0.0.0-bootstrap.0 → 0.0.0-stage
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/README.md +2 -71
- package/package.json +4 -83
- package/Buttons/MyIssuesButton.tsx +0 -78
- package/Buttons/ReportButton.tsx +0 -51
- package/Buttons/buttonModels.ts +0 -55
- package/Buttons/index.ts +0 -6
- package/Correlation/CorrelationTracker.ts +0 -51
- package/Correlation/index.ts +0 -5
- package/Correlation/withCorrelationIdHeader.ts +0 -44
- package/Icons.tsx +0 -29
- package/Issues/IssueView/AccessPanel.tsx +0 -85
- package/Issues/IssueView/GrantAccessDialog.tsx +0 -56
- package/Issues/IssueView/IdentityPanel.tsx +0 -38
- package/Issues/IssueView/IssueActions.tsx +0 -52
- package/Issues/IssueView/IssueConversationPanel.tsx +0 -89
- package/Issues/IssueView/IssueHeader.tsx +0 -69
- package/Issues/IssueView/IssueView.tsx +0 -74
- package/Issues/IssueView/QuestionBanner.tsx +0 -27
- package/Issues/IssueView/ReopenIssueDialog.tsx +0 -37
- package/Issues/IssueView/ShareIdentityDialog.tsx +0 -37
- package/Issues/IssueView/StatusStrip.tsx +0 -42
- package/Issues/IssueView/SupportSessions.tsx +0 -59
- package/Issues/IssueView/index.ts +0 -15
- package/Issues/MyIssues/IssueList.tsx +0 -78
- package/Issues/MyIssues/MyIssuesDialog.tsx +0 -64
- package/Issues/MyIssues/MyIssuesNavigation.ts +0 -61
- package/Issues/MyIssues/index.ts +0 -6
- package/Issues/MyIssuesList.ts +0 -33
- package/Issues/accessStatus.ts +0 -68
- package/Issues/conversationMessages.ts +0 -136
- package/Issues/index.ts +0 -12
- package/Issues/issueStates.ts +0 -69
- package/Issues/sessionActivity.ts +0 -43
- package/Issues/useAccessStatus.ts +0 -24
- package/Issues/webAddress.ts +0 -22
- package/Labels/UsherLabels.ts +0 -365
- package/Labels/defaultUsherLabels.ts +0 -178
- package/Labels/format.ts +0 -13
- package/Labels/index.ts +0 -7
- package/Labels/resolveLabels.ts +0 -36
- package/Provider/UsherBoundary.tsx +0 -30
- package/Provider/UsherContext.ts +0 -109
- package/Provider/UsherProvider.tsx +0 -134
- package/Provider/index.ts +0 -7
- package/Provider/useUsher.ts +0 -72
- package/Reporting/AccessChoice.ts +0 -107
- package/Reporting/AccessFields.tsx +0 -74
- package/Reporting/AccessNotice.tsx +0 -33
- package/Reporting/ReportErrorDialog.tsx +0 -94
- package/Reporting/ReportIssueDialog.tsx +0 -80
- package/Reporting/ReportLimits.ts +0 -24
- package/Reporting/ReportSent.ts +0 -12
- package/Reporting/SentWithReport.tsx +0 -37
- package/Reporting/TechnicalDetails.tsx +0 -60
- package/Reporting/durationOptions.ts +0 -31
- package/Reporting/formatLocation.ts +0 -27
- package/Reporting/index.ts +0 -16
- package/Reporting/reportValues.ts +0 -150
- package/Reporting/useAccessChoice.ts +0 -53
- package/dist/cjs/Buttons/MyIssuesButton.d.ts +0 -14
- package/dist/cjs/Buttons/MyIssuesButton.d.ts.map +0 -1
- package/dist/cjs/Buttons/MyIssuesButton.js +0 -76
- package/dist/cjs/Buttons/MyIssuesButton.js.map +0 -1
- package/dist/cjs/Buttons/ReportButton.d.ts +0 -8
- package/dist/cjs/Buttons/ReportButton.d.ts.map +0 -1
- package/dist/cjs/Buttons/ReportButton.js +0 -34
- package/dist/cjs/Buttons/ReportButton.js.map +0 -1
- package/dist/cjs/Buttons/buttonModels.d.ts +0 -10
- package/dist/cjs/Buttons/buttonModels.d.ts.map +0 -1
- package/dist/cjs/Buttons/buttonModels.js +0 -44
- package/dist/cjs/Buttons/buttonModels.js.map +0 -1
- package/dist/cjs/Buttons/index.d.ts +0 -4
- package/dist/cjs/Buttons/index.d.ts.map +0 -1
- package/dist/cjs/Correlation/CorrelationTracker.d.ts +0 -10
- package/dist/cjs/Correlation/CorrelationTracker.d.ts.map +0 -1
- package/dist/cjs/Correlation/CorrelationTracker.js +0 -50
- package/dist/cjs/Correlation/CorrelationTracker.js.map +0 -1
- package/dist/cjs/Correlation/index.d.ts +0 -3
- package/dist/cjs/Correlation/index.d.ts.map +0 -1
- package/dist/cjs/Correlation/withCorrelationIdHeader.d.ts +0 -6
- package/dist/cjs/Correlation/withCorrelationIdHeader.d.ts.map +0 -1
- package/dist/cjs/Correlation/withCorrelationIdHeader.js +0 -39
- package/dist/cjs/Correlation/withCorrelationIdHeader.js.map +0 -1
- package/dist/cjs/Icons.d.ts +0 -4
- package/dist/cjs/Icons.d.ts.map +0 -1
- package/dist/cjs/Icons.js +0 -53
- package/dist/cjs/Icons.js.map +0 -1
- package/dist/cjs/Issues/IssueView/AccessPanel.d.ts +0 -6
- package/dist/cjs/Issues/IssueView/AccessPanel.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/AccessPanel.js +0 -124
- package/dist/cjs/Issues/IssueView/AccessPanel.js.map +0 -1
- package/dist/cjs/Issues/IssueView/GrantAccessDialog.d.ts +0 -6
- package/dist/cjs/Issues/IssueView/GrantAccessDialog.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/GrantAccessDialog.js +0 -56
- package/dist/cjs/Issues/IssueView/GrantAccessDialog.js.map +0 -1
- package/dist/cjs/Issues/IssueView/IdentityPanel.d.ts +0 -6
- package/dist/cjs/Issues/IssueView/IdentityPanel.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/IdentityPanel.js +0 -45
- package/dist/cjs/Issues/IssueView/IdentityPanel.js.map +0 -1
- package/dist/cjs/Issues/IssueView/IssueActions.d.ts +0 -6
- package/dist/cjs/Issues/IssueView/IssueActions.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/IssueActions.js +0 -58
- package/dist/cjs/Issues/IssueView/IssueActions.js.map +0 -1
- package/dist/cjs/Issues/IssueView/IssueConversationPanel.d.ts +0 -6
- package/dist/cjs/Issues/IssueView/IssueConversationPanel.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/IssueConversationPanel.js +0 -97
- package/dist/cjs/Issues/IssueView/IssueConversationPanel.js.map +0 -1
- package/dist/cjs/Issues/IssueView/IssueHeader.d.ts +0 -7
- package/dist/cjs/Issues/IssueView/IssueHeader.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/IssueHeader.js +0 -94
- package/dist/cjs/Issues/IssueView/IssueHeader.js.map +0 -1
- package/dist/cjs/Issues/IssueView/IssueView.d.ts +0 -7
- package/dist/cjs/Issues/IssueView/IssueView.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/IssueView.js +0 -85
- package/dist/cjs/Issues/IssueView/IssueView.js.map +0 -1
- package/dist/cjs/Issues/IssueView/QuestionBanner.d.ts +0 -5
- package/dist/cjs/Issues/IssueView/QuestionBanner.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/QuestionBanner.js +0 -24
- package/dist/cjs/Issues/IssueView/QuestionBanner.js.map +0 -1
- package/dist/cjs/Issues/IssueView/ReopenIssueDialog.d.ts +0 -6
- package/dist/cjs/Issues/IssueView/ReopenIssueDialog.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/ReopenIssueDialog.js +0 -34
- package/dist/cjs/Issues/IssueView/ReopenIssueDialog.js.map +0 -1
- package/dist/cjs/Issues/IssueView/ShareIdentityDialog.d.ts +0 -6
- package/dist/cjs/Issues/IssueView/ShareIdentityDialog.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/ShareIdentityDialog.js +0 -32
- package/dist/cjs/Issues/IssueView/ShareIdentityDialog.js.map +0 -1
- package/dist/cjs/Issues/IssueView/StatusStrip.d.ts +0 -6
- package/dist/cjs/Issues/IssueView/StatusStrip.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/StatusStrip.js +0 -31
- package/dist/cjs/Issues/IssueView/StatusStrip.js.map +0 -1
- package/dist/cjs/Issues/IssueView/SupportSessions.d.ts +0 -7
- package/dist/cjs/Issues/IssueView/SupportSessions.d.ts.map +0 -1
- package/dist/cjs/Issues/IssueView/SupportSessions.js +0 -62
- package/dist/cjs/Issues/IssueView/SupportSessions.js.map +0 -1
- package/dist/cjs/Issues/IssueView/index.d.ts +0 -13
- package/dist/cjs/Issues/IssueView/index.d.ts.map +0 -1
- package/dist/cjs/Issues/MyIssues/IssueList.d.ts +0 -7
- package/dist/cjs/Issues/MyIssues/IssueList.d.ts.map +0 -1
- package/dist/cjs/Issues/MyIssues/IssueList.js +0 -92
- package/dist/cjs/Issues/MyIssues/IssueList.js.map +0 -1
- package/dist/cjs/Issues/MyIssues/MyIssuesDialog.d.ts +0 -7
- package/dist/cjs/Issues/MyIssues/MyIssuesDialog.d.ts.map +0 -1
- package/dist/cjs/Issues/MyIssues/MyIssuesDialog.js +0 -79
- package/dist/cjs/Issues/MyIssues/MyIssuesDialog.js.map +0 -1
- package/dist/cjs/Issues/MyIssues/MyIssuesNavigation.d.ts +0 -21
- package/dist/cjs/Issues/MyIssues/MyIssuesNavigation.d.ts.map +0 -1
- package/dist/cjs/Issues/MyIssues/MyIssuesNavigation.js +0 -52
- package/dist/cjs/Issues/MyIssues/MyIssuesNavigation.js.map +0 -1
- package/dist/cjs/Issues/MyIssues/index.d.ts +0 -4
- package/dist/cjs/Issues/MyIssues/index.d.ts.map +0 -1
- package/dist/cjs/Issues/MyIssuesList.d.ts +0 -7
- package/dist/cjs/Issues/MyIssuesList.d.ts.map +0 -1
- package/dist/cjs/Issues/MyIssuesList.js +0 -33
- package/dist/cjs/Issues/MyIssuesList.js.map +0 -1
- package/dist/cjs/Issues/accessStatus.d.ts +0 -13
- package/dist/cjs/Issues/accessStatus.d.ts.map +0 -1
- package/dist/cjs/Issues/accessStatus.js +0 -60
- package/dist/cjs/Issues/accessStatus.js.map +0 -1
- package/dist/cjs/Issues/conversationMessages.d.ts +0 -14
- package/dist/cjs/Issues/conversationMessages.d.ts.map +0 -1
- package/dist/cjs/Issues/conversationMessages.js +0 -131
- package/dist/cjs/Issues/conversationMessages.js.map +0 -1
- package/dist/cjs/Issues/index.d.ts +0 -10
- package/dist/cjs/Issues/index.d.ts.map +0 -1
- package/dist/cjs/Issues/issueStates.d.ts +0 -12
- package/dist/cjs/Issues/issueStates.d.ts.map +0 -1
- package/dist/cjs/Issues/issueStates.js +0 -86
- package/dist/cjs/Issues/issueStates.js.map +0 -1
- package/dist/cjs/Issues/sessionActivity.d.ts +0 -8
- package/dist/cjs/Issues/sessionActivity.d.ts.map +0 -1
- package/dist/cjs/Issues/sessionActivity.js +0 -39
- package/dist/cjs/Issues/sessionActivity.js.map +0 -1
- package/dist/cjs/Issues/useAccessStatus.d.ts +0 -4
- package/dist/cjs/Issues/useAccessStatus.d.ts.map +0 -1
- package/dist/cjs/Issues/useAccessStatus.js +0 -30
- package/dist/cjs/Issues/useAccessStatus.js.map +0 -1
- package/dist/cjs/Issues/webAddress.d.ts +0 -2
- package/dist/cjs/Issues/webAddress.d.ts.map +0 -1
- package/dist/cjs/Issues/webAddress.js +0 -24
- package/dist/cjs/Issues/webAddress.js.map +0 -1
- package/dist/cjs/Labels/UsherLabels.d.ts +0 -177
- package/dist/cjs/Labels/UsherLabels.d.ts.map +0 -1
- package/dist/cjs/Labels/defaultUsherLabels.d.ts +0 -3
- package/dist/cjs/Labels/defaultUsherLabels.d.ts.map +0 -1
- package/dist/cjs/Labels/defaultUsherLabels.js +0 -179
- package/dist/cjs/Labels/defaultUsherLabels.js.map +0 -1
- package/dist/cjs/Labels/format.d.ts +0 -2
- package/dist/cjs/Labels/format.d.ts.map +0 -1
- package/dist/cjs/Labels/format.js +0 -15
- package/dist/cjs/Labels/format.js.map +0 -1
- package/dist/cjs/Labels/index.d.ts +0 -5
- package/dist/cjs/Labels/index.d.ts.map +0 -1
- package/dist/cjs/Labels/resolveLabels.d.ts +0 -3
- package/dist/cjs/Labels/resolveLabels.d.ts.map +0 -1
- package/dist/cjs/Labels/resolveLabels.js +0 -35
- package/dist/cjs/Labels/resolveLabels.js.map +0 -1
- package/dist/cjs/Provider/UsherBoundary.d.ts +0 -6
- package/dist/cjs/Provider/UsherBoundary.d.ts.map +0 -1
- package/dist/cjs/Provider/UsherBoundary.js +0 -24
- package/dist/cjs/Provider/UsherBoundary.js.map +0 -1
- package/dist/cjs/Provider/UsherContext.d.ts +0 -24
- package/dist/cjs/Provider/UsherContext.d.ts.map +0 -1
- package/dist/cjs/Provider/UsherContext.js +0 -41
- package/dist/cjs/Provider/UsherContext.js.map +0 -1
- package/dist/cjs/Provider/UsherProvider.d.ts +0 -14
- package/dist/cjs/Provider/UsherProvider.d.ts.map +0 -1
- package/dist/cjs/Provider/UsherProvider.js +0 -122
- package/dist/cjs/Provider/UsherProvider.js.map +0 -1
- package/dist/cjs/Provider/index.d.ts +0 -5
- package/dist/cjs/Provider/index.d.ts.map +0 -1
- package/dist/cjs/Provider/useUsher.d.ts +0 -13
- package/dist/cjs/Provider/useUsher.d.ts.map +0 -1
- package/dist/cjs/Provider/useUsher.js +0 -31
- package/dist/cjs/Provider/useUsher.js.map +0 -1
- package/dist/cjs/Reporting/AccessChoice.d.ts +0 -13
- package/dist/cjs/Reporting/AccessChoice.d.ts.map +0 -1
- package/dist/cjs/Reporting/AccessChoice.js +0 -113
- package/dist/cjs/Reporting/AccessChoice.js.map +0 -1
- package/dist/cjs/Reporting/AccessFields.d.ts +0 -12
- package/dist/cjs/Reporting/AccessFields.d.ts.map +0 -1
- package/dist/cjs/Reporting/AccessFields.js +0 -79
- package/dist/cjs/Reporting/AccessFields.js.map +0 -1
- package/dist/cjs/Reporting/AccessNotice.d.ts +0 -7
- package/dist/cjs/Reporting/AccessNotice.d.ts.map +0 -1
- package/dist/cjs/Reporting/AccessNotice.js +0 -28
- package/dist/cjs/Reporting/AccessNotice.js.map +0 -1
- package/dist/cjs/Reporting/ReportErrorDialog.d.ts +0 -9
- package/dist/cjs/Reporting/ReportErrorDialog.d.ts.map +0 -1
- package/dist/cjs/Reporting/ReportErrorDialog.js +0 -87
- package/dist/cjs/Reporting/ReportErrorDialog.js.map +0 -1
- package/dist/cjs/Reporting/ReportIssueDialog.d.ts +0 -8
- package/dist/cjs/Reporting/ReportIssueDialog.d.ts.map +0 -1
- package/dist/cjs/Reporting/ReportIssueDialog.js +0 -81
- package/dist/cjs/Reporting/ReportIssueDialog.js.map +0 -1
- package/dist/cjs/Reporting/ReportLimits.d.ts +0 -8
- package/dist/cjs/Reporting/ReportLimits.d.ts.map +0 -1
- package/dist/cjs/Reporting/ReportLimits.js +0 -19
- package/dist/cjs/Reporting/ReportLimits.js.map +0 -1
- package/dist/cjs/Reporting/ReportSent.d.ts +0 -5
- package/dist/cjs/Reporting/ReportSent.d.ts.map +0 -1
- package/dist/cjs/Reporting/SentWithReport.d.ts +0 -7
- package/dist/cjs/Reporting/SentWithReport.d.ts.map +0 -1
- package/dist/cjs/Reporting/SentWithReport.js +0 -40
- package/dist/cjs/Reporting/SentWithReport.js.map +0 -1
- package/dist/cjs/Reporting/TechnicalDetails.d.ts +0 -9
- package/dist/cjs/Reporting/TechnicalDetails.d.ts.map +0 -1
- package/dist/cjs/Reporting/TechnicalDetails.js +0 -75
- package/dist/cjs/Reporting/TechnicalDetails.js.map +0 -1
- package/dist/cjs/Reporting/durationOptions.d.ts +0 -9
- package/dist/cjs/Reporting/durationOptions.d.ts.map +0 -1
- package/dist/cjs/Reporting/durationOptions.js +0 -29
- package/dist/cjs/Reporting/durationOptions.js.map +0 -1
- package/dist/cjs/Reporting/formatLocation.d.ts +0 -7
- package/dist/cjs/Reporting/formatLocation.d.ts.map +0 -1
- package/dist/cjs/Reporting/formatLocation.js +0 -23
- package/dist/cjs/Reporting/formatLocation.js.map +0 -1
- package/dist/cjs/Reporting/index.d.ts +0 -14
- package/dist/cjs/Reporting/index.d.ts.map +0 -1
- package/dist/cjs/Reporting/reportValues.d.ts +0 -22
- package/dist/cjs/Reporting/reportValues.d.ts.map +0 -1
- package/dist/cjs/Reporting/reportValues.js +0 -124
- package/dist/cjs/Reporting/reportValues.js.map +0 -1
- package/dist/cjs/Reporting/useAccessChoice.d.ts +0 -13
- package/dist/cjs/Reporting/useAccessChoice.d.ts.map +0 -1
- package/dist/cjs/Reporting/useAccessChoice.js +0 -41
- package/dist/cjs/Reporting/useAccessChoice.js.map +0 -1
- package/dist/cjs/index.d.ts +0 -8
- package/dist/cjs/index.d.ts.map +0 -1
- package/dist/cjs/index.js +0 -133
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/package.json +0 -3
- package/dist/esm/Buttons/MyIssuesButton.d.ts +0 -14
- package/dist/esm/Buttons/MyIssuesButton.d.ts.map +0 -1
- package/dist/esm/Buttons/MyIssuesButton.js +0 -73
- package/dist/esm/Buttons/MyIssuesButton.js.map +0 -1
- package/dist/esm/Buttons/ReportButton.d.ts +0 -8
- package/dist/esm/Buttons/ReportButton.d.ts.map +0 -1
- package/dist/esm/Buttons/ReportButton.js +0 -32
- package/dist/esm/Buttons/ReportButton.js.map +0 -1
- package/dist/esm/Buttons/buttonModels.d.ts +0 -10
- package/dist/esm/Buttons/buttonModels.d.ts.map +0 -1
- package/dist/esm/Buttons/buttonModels.js +0 -41
- package/dist/esm/Buttons/buttonModels.js.map +0 -1
- package/dist/esm/Buttons/index.d.ts +0 -4
- package/dist/esm/Buttons/index.d.ts.map +0 -1
- package/dist/esm/Buttons/index.js +0 -4
- package/dist/esm/Buttons/index.js.map +0 -1
- package/dist/esm/Correlation/CorrelationTracker.d.ts +0 -10
- package/dist/esm/Correlation/CorrelationTracker.d.ts.map +0 -1
- package/dist/esm/Correlation/CorrelationTracker.js +0 -48
- package/dist/esm/Correlation/CorrelationTracker.js.map +0 -1
- package/dist/esm/Correlation/index.d.ts +0 -3
- package/dist/esm/Correlation/index.d.ts.map +0 -1
- package/dist/esm/Correlation/index.js +0 -3
- package/dist/esm/Correlation/index.js.map +0 -1
- package/dist/esm/Correlation/withCorrelationIdHeader.d.ts +0 -6
- package/dist/esm/Correlation/withCorrelationIdHeader.d.ts.map +0 -1
- package/dist/esm/Correlation/withCorrelationIdHeader.js +0 -36
- package/dist/esm/Correlation/withCorrelationIdHeader.js.map +0 -1
- package/dist/esm/Icons.d.ts +0 -4
- package/dist/esm/Icons.d.ts.map +0 -1
- package/dist/esm/Icons.js +0 -49
- package/dist/esm/Icons.js.map +0 -1
- package/dist/esm/Issues/IssueView/AccessPanel.d.ts +0 -6
- package/dist/esm/Issues/IssueView/AccessPanel.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/AccessPanel.js +0 -122
- package/dist/esm/Issues/IssueView/AccessPanel.js.map +0 -1
- package/dist/esm/Issues/IssueView/GrantAccessDialog.d.ts +0 -6
- package/dist/esm/Issues/IssueView/GrantAccessDialog.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/GrantAccessDialog.js +0 -54
- package/dist/esm/Issues/IssueView/GrantAccessDialog.js.map +0 -1
- package/dist/esm/Issues/IssueView/IdentityPanel.d.ts +0 -6
- package/dist/esm/Issues/IssueView/IdentityPanel.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/IdentityPanel.js +0 -43
- package/dist/esm/Issues/IssueView/IdentityPanel.js.map +0 -1
- package/dist/esm/Issues/IssueView/IssueActions.d.ts +0 -6
- package/dist/esm/Issues/IssueView/IssueActions.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/IssueActions.js +0 -56
- package/dist/esm/Issues/IssueView/IssueActions.js.map +0 -1
- package/dist/esm/Issues/IssueView/IssueConversationPanel.d.ts +0 -6
- package/dist/esm/Issues/IssueView/IssueConversationPanel.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/IssueConversationPanel.js +0 -95
- package/dist/esm/Issues/IssueView/IssueConversationPanel.js.map +0 -1
- package/dist/esm/Issues/IssueView/IssueHeader.d.ts +0 -7
- package/dist/esm/Issues/IssueView/IssueHeader.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/IssueHeader.js +0 -92
- package/dist/esm/Issues/IssueView/IssueHeader.js.map +0 -1
- package/dist/esm/Issues/IssueView/IssueView.d.ts +0 -7
- package/dist/esm/Issues/IssueView/IssueView.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/IssueView.js +0 -83
- package/dist/esm/Issues/IssueView/IssueView.js.map +0 -1
- package/dist/esm/Issues/IssueView/QuestionBanner.d.ts +0 -5
- package/dist/esm/Issues/IssueView/QuestionBanner.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/QuestionBanner.js +0 -22
- package/dist/esm/Issues/IssueView/QuestionBanner.js.map +0 -1
- package/dist/esm/Issues/IssueView/ReopenIssueDialog.d.ts +0 -6
- package/dist/esm/Issues/IssueView/ReopenIssueDialog.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/ReopenIssueDialog.js +0 -32
- package/dist/esm/Issues/IssueView/ReopenIssueDialog.js.map +0 -1
- package/dist/esm/Issues/IssueView/ShareIdentityDialog.d.ts +0 -6
- package/dist/esm/Issues/IssueView/ShareIdentityDialog.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/ShareIdentityDialog.js +0 -30
- package/dist/esm/Issues/IssueView/ShareIdentityDialog.js.map +0 -1
- package/dist/esm/Issues/IssueView/StatusStrip.d.ts +0 -6
- package/dist/esm/Issues/IssueView/StatusStrip.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/StatusStrip.js +0 -29
- package/dist/esm/Issues/IssueView/StatusStrip.js.map +0 -1
- package/dist/esm/Issues/IssueView/SupportSessions.d.ts +0 -7
- package/dist/esm/Issues/IssueView/SupportSessions.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/SupportSessions.js +0 -60
- package/dist/esm/Issues/IssueView/SupportSessions.js.map +0 -1
- package/dist/esm/Issues/IssueView/index.d.ts +0 -13
- package/dist/esm/Issues/IssueView/index.d.ts.map +0 -1
- package/dist/esm/Issues/IssueView/index.js +0 -13
- package/dist/esm/Issues/IssueView/index.js.map +0 -1
- package/dist/esm/Issues/MyIssues/IssueList.d.ts +0 -7
- package/dist/esm/Issues/MyIssues/IssueList.d.ts.map +0 -1
- package/dist/esm/Issues/MyIssues/IssueList.js +0 -90
- package/dist/esm/Issues/MyIssues/IssueList.js.map +0 -1
- package/dist/esm/Issues/MyIssues/MyIssuesDialog.d.ts +0 -7
- package/dist/esm/Issues/MyIssues/MyIssuesDialog.d.ts.map +0 -1
- package/dist/esm/Issues/MyIssues/MyIssuesDialog.js +0 -77
- package/dist/esm/Issues/MyIssues/MyIssuesDialog.js.map +0 -1
- package/dist/esm/Issues/MyIssues/MyIssuesNavigation.d.ts +0 -21
- package/dist/esm/Issues/MyIssues/MyIssuesNavigation.d.ts.map +0 -1
- package/dist/esm/Issues/MyIssues/MyIssuesNavigation.js +0 -49
- package/dist/esm/Issues/MyIssues/MyIssuesNavigation.js.map +0 -1
- package/dist/esm/Issues/MyIssues/index.d.ts +0 -4
- package/dist/esm/Issues/MyIssues/index.d.ts.map +0 -1
- package/dist/esm/Issues/MyIssues/index.js +0 -4
- package/dist/esm/Issues/MyIssues/index.js.map +0 -1
- package/dist/esm/Issues/MyIssuesList.d.ts +0 -7
- package/dist/esm/Issues/MyIssuesList.d.ts.map +0 -1
- package/dist/esm/Issues/MyIssuesList.js +0 -29
- package/dist/esm/Issues/MyIssuesList.js.map +0 -1
- package/dist/esm/Issues/accessStatus.d.ts +0 -13
- package/dist/esm/Issues/accessStatus.d.ts.map +0 -1
- package/dist/esm/Issues/accessStatus.js +0 -54
- package/dist/esm/Issues/accessStatus.js.map +0 -1
- package/dist/esm/Issues/conversationMessages.d.ts +0 -14
- package/dist/esm/Issues/conversationMessages.d.ts.map +0 -1
- package/dist/esm/Issues/conversationMessages.js +0 -125
- package/dist/esm/Issues/conversationMessages.js.map +0 -1
- package/dist/esm/Issues/index.d.ts +0 -10
- package/dist/esm/Issues/index.d.ts.map +0 -1
- package/dist/esm/Issues/index.js +0 -10
- package/dist/esm/Issues/index.js.map +0 -1
- package/dist/esm/Issues/issueStates.d.ts +0 -12
- package/dist/esm/Issues/issueStates.d.ts.map +0 -1
- package/dist/esm/Issues/issueStates.js +0 -81
- package/dist/esm/Issues/issueStates.js.map +0 -1
- package/dist/esm/Issues/sessionActivity.d.ts +0 -8
- package/dist/esm/Issues/sessionActivity.d.ts.map +0 -1
- package/dist/esm/Issues/sessionActivity.js +0 -37
- package/dist/esm/Issues/sessionActivity.js.map +0 -1
- package/dist/esm/Issues/useAccessStatus.d.ts +0 -4
- package/dist/esm/Issues/useAccessStatus.d.ts.map +0 -1
- package/dist/esm/Issues/useAccessStatus.js +0 -28
- package/dist/esm/Issues/useAccessStatus.js.map +0 -1
- package/dist/esm/Issues/webAddress.d.ts +0 -2
- package/dist/esm/Issues/webAddress.d.ts.map +0 -1
- package/dist/esm/Issues/webAddress.js +0 -22
- package/dist/esm/Issues/webAddress.js.map +0 -1
- package/dist/esm/Labels/UsherLabels.d.ts +0 -177
- package/dist/esm/Labels/UsherLabels.d.ts.map +0 -1
- package/dist/esm/Labels/UsherLabels.js +0 -2
- package/dist/esm/Labels/UsherLabels.js.map +0 -1
- package/dist/esm/Labels/defaultUsherLabels.d.ts +0 -3
- package/dist/esm/Labels/defaultUsherLabels.d.ts.map +0 -1
- package/dist/esm/Labels/defaultUsherLabels.js +0 -177
- package/dist/esm/Labels/defaultUsherLabels.js.map +0 -1
- package/dist/esm/Labels/format.d.ts +0 -2
- package/dist/esm/Labels/format.d.ts.map +0 -1
- package/dist/esm/Labels/format.js +0 -13
- package/dist/esm/Labels/format.js.map +0 -1
- package/dist/esm/Labels/index.d.ts +0 -5
- package/dist/esm/Labels/index.d.ts.map +0 -1
- package/dist/esm/Labels/index.js +0 -5
- package/dist/esm/Labels/index.js.map +0 -1
- package/dist/esm/Labels/resolveLabels.d.ts +0 -3
- package/dist/esm/Labels/resolveLabels.d.ts.map +0 -1
- package/dist/esm/Labels/resolveLabels.js +0 -33
- package/dist/esm/Labels/resolveLabels.js.map +0 -1
- package/dist/esm/Provider/UsherBoundary.d.ts +0 -6
- package/dist/esm/Provider/UsherBoundary.d.ts.map +0 -1
- package/dist/esm/Provider/UsherBoundary.js +0 -22
- package/dist/esm/Provider/UsherBoundary.js.map +0 -1
- package/dist/esm/Provider/UsherContext.d.ts +0 -24
- package/dist/esm/Provider/UsherContext.d.ts.map +0 -1
- package/dist/esm/Provider/UsherContext.js +0 -36
- package/dist/esm/Provider/UsherContext.js.map +0 -1
- package/dist/esm/Provider/UsherProvider.d.ts +0 -14
- package/dist/esm/Provider/UsherProvider.d.ts.map +0 -1
- package/dist/esm/Provider/UsherProvider.js +0 -120
- package/dist/esm/Provider/UsherProvider.js.map +0 -1
- package/dist/esm/Provider/index.d.ts +0 -5
- package/dist/esm/Provider/index.d.ts.map +0 -1
- package/dist/esm/Provider/index.js +0 -5
- package/dist/esm/Provider/index.js.map +0 -1
- package/dist/esm/Provider/useUsher.d.ts +0 -13
- package/dist/esm/Provider/useUsher.d.ts.map +0 -1
- package/dist/esm/Provider/useUsher.js +0 -29
- package/dist/esm/Provider/useUsher.js.map +0 -1
- package/dist/esm/Reporting/AccessChoice.d.ts +0 -13
- package/dist/esm/Reporting/AccessChoice.d.ts.map +0 -1
- package/dist/esm/Reporting/AccessChoice.js +0 -106
- package/dist/esm/Reporting/AccessChoice.js.map +0 -1
- package/dist/esm/Reporting/AccessFields.d.ts +0 -12
- package/dist/esm/Reporting/AccessFields.d.ts.map +0 -1
- package/dist/esm/Reporting/AccessFields.js +0 -77
- package/dist/esm/Reporting/AccessFields.js.map +0 -1
- package/dist/esm/Reporting/AccessNotice.d.ts +0 -7
- package/dist/esm/Reporting/AccessNotice.d.ts.map +0 -1
- package/dist/esm/Reporting/AccessNotice.js +0 -26
- package/dist/esm/Reporting/AccessNotice.js.map +0 -1
- package/dist/esm/Reporting/ReportErrorDialog.d.ts +0 -9
- package/dist/esm/Reporting/ReportErrorDialog.d.ts.map +0 -1
- package/dist/esm/Reporting/ReportErrorDialog.js +0 -85
- package/dist/esm/Reporting/ReportErrorDialog.js.map +0 -1
- package/dist/esm/Reporting/ReportIssueDialog.d.ts +0 -8
- package/dist/esm/Reporting/ReportIssueDialog.d.ts.map +0 -1
- package/dist/esm/Reporting/ReportIssueDialog.js +0 -79
- package/dist/esm/Reporting/ReportIssueDialog.js.map +0 -1
- package/dist/esm/Reporting/ReportLimits.d.ts +0 -8
- package/dist/esm/Reporting/ReportLimits.d.ts.map +0 -1
- package/dist/esm/Reporting/ReportLimits.js +0 -17
- package/dist/esm/Reporting/ReportLimits.js.map +0 -1
- package/dist/esm/Reporting/ReportSent.d.ts +0 -5
- package/dist/esm/Reporting/ReportSent.d.ts.map +0 -1
- package/dist/esm/Reporting/ReportSent.js +0 -2
- package/dist/esm/Reporting/ReportSent.js.map +0 -1
- package/dist/esm/Reporting/SentWithReport.d.ts +0 -7
- package/dist/esm/Reporting/SentWithReport.d.ts.map +0 -1
- package/dist/esm/Reporting/SentWithReport.js +0 -38
- package/dist/esm/Reporting/SentWithReport.js.map +0 -1
- package/dist/esm/Reporting/TechnicalDetails.d.ts +0 -9
- package/dist/esm/Reporting/TechnicalDetails.d.ts.map +0 -1
- package/dist/esm/Reporting/TechnicalDetails.js +0 -73
- package/dist/esm/Reporting/TechnicalDetails.js.map +0 -1
- package/dist/esm/Reporting/durationOptions.d.ts +0 -9
- package/dist/esm/Reporting/durationOptions.d.ts.map +0 -1
- package/dist/esm/Reporting/durationOptions.js +0 -27
- package/dist/esm/Reporting/durationOptions.js.map +0 -1
- package/dist/esm/Reporting/formatLocation.d.ts +0 -7
- package/dist/esm/Reporting/formatLocation.d.ts.map +0 -1
- package/dist/esm/Reporting/formatLocation.js +0 -21
- package/dist/esm/Reporting/formatLocation.js.map +0 -1
- package/dist/esm/Reporting/index.d.ts +0 -14
- package/dist/esm/Reporting/index.d.ts.map +0 -1
- package/dist/esm/Reporting/index.js +0 -14
- package/dist/esm/Reporting/index.js.map +0 -1
- package/dist/esm/Reporting/reportValues.d.ts +0 -22
- package/dist/esm/Reporting/reportValues.d.ts.map +0 -1
- package/dist/esm/Reporting/reportValues.js +0 -116
- package/dist/esm/Reporting/reportValues.js.map +0 -1
- package/dist/esm/Reporting/useAccessChoice.d.ts +0 -13
- package/dist/esm/Reporting/useAccessChoice.d.ts.map +0 -1
- package/dist/esm/Reporting/useAccessChoice.js +0 -39
- package/dist/esm/Reporting/useAccessChoice.js.map +0 -1
- package/dist/esm/index.d.ts +0 -8
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/index.js +0 -48
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/package.json +0 -3
- package/index.ts +0 -10
- package/styles.css +0 -320
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
-
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
-
|
|
4
|
-
import { Button, Switch } from '@cratis/components/Common';
|
|
5
|
-
import { Dialog, DialogInitialFocus } from '@cratis/components/Dialogs';
|
|
6
|
-
import { Guid } from '@cratis/fundamentals';
|
|
7
|
-
import { useReducer } from 'react';
|
|
8
|
-
import { BugIcon } from '../../Icons.js';
|
|
9
|
-
import { UsherBoundary } from '../../Provider/UsherBoundary.js';
|
|
10
|
-
import { useUsherLabels } from '../../Provider/UsherContext.js';
|
|
11
|
-
import { IssueView } from '../IssueView/IssueView.js';
|
|
12
|
-
import { IssueList } from './IssueList.js';
|
|
13
|
-
import { navigate, startNavigation } from './MyIssuesNavigation.js';
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Props for {@link MyIssuesDialog}.
|
|
17
|
-
*/
|
|
18
|
-
export interface MyIssuesDialogProps {
|
|
19
|
-
/** The issue to open on; the list of issues when not given. */
|
|
20
|
-
issueId?: Guid;
|
|
21
|
-
|
|
22
|
-
/** Opens the report a problem dialog; no report button when not given. */
|
|
23
|
-
onReportIssue?: () => void;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* The my issues side sheet: the signed-in reporter's issues, and one issue at a time with its conversation. Open it
|
|
28
|
-
* with `useDialog`.
|
|
29
|
-
*/
|
|
30
|
-
export const MyIssuesDialog = ({ issueId, onReportIssue }: MyIssuesDialogProps) => {
|
|
31
|
-
const labels = useUsherLabels();
|
|
32
|
-
const [navigation, dispatch] = useReducer(navigate, issueId, startNavigation);
|
|
33
|
-
if (navigation.requestedIssueId !== issueId) {
|
|
34
|
-
dispatch({ type: 'requested', issueId });
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return (
|
|
38
|
-
<Dialog
|
|
39
|
-
title={labels.myIssues.title}
|
|
40
|
-
subtitle={labels.myIssues.description}
|
|
41
|
-
placement='end'
|
|
42
|
-
width='720px'
|
|
43
|
-
buttons={null}
|
|
44
|
-
dismissable
|
|
45
|
-
initialFocus={DialogInitialFocus.Content}
|
|
46
|
-
closeAriaLabel={labels.common.close}>
|
|
47
|
-
<UsherBoundary>
|
|
48
|
-
{navigation.openIssueId
|
|
49
|
-
? <IssueView issueId={navigation.openIssueId} onBack={() => dispatch({ type: 'back' })} />
|
|
50
|
-
: (
|
|
51
|
-
<div className='usher-my-issues'>
|
|
52
|
-
<div className='usher-my-issues__toolbar'>
|
|
53
|
-
{onReportIssue && (
|
|
54
|
-
<Button variant='solid' tone='accent' size='small' icon={<BugIcon />} label={labels.myIssues.reportProblem} onClick={onReportIssue} />
|
|
55
|
-
)}
|
|
56
|
-
<Switch label={labels.myIssues.showClosed} checked={navigation.showClosed} onChange={showClosed => dispatch({ type: 'showClosedChanged', showClosed })} />
|
|
57
|
-
</div>
|
|
58
|
-
<IssueList showClosed={navigation.showClosed} onOpen={issue => dispatch({ type: 'opened', issueId: issue.id })} />
|
|
59
|
-
</div>
|
|
60
|
-
)}
|
|
61
|
-
</UsherBoundary>
|
|
62
|
-
</Dialog>
|
|
63
|
-
);
|
|
64
|
-
};
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
-
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
-
|
|
4
|
-
import { Guid } from '@cratis/fundamentals';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Where the my issues side sheet is: the list, or one issue.
|
|
8
|
-
*/
|
|
9
|
-
export interface MyIssuesNavigation {
|
|
10
|
-
/** The issue shown; the list when not set. */
|
|
11
|
-
readonly openIssueId?: Guid;
|
|
12
|
-
|
|
13
|
-
/** The issue the side sheet was last asked to open on, so a new request moves to it. */
|
|
14
|
-
readonly requestedIssueId?: Guid;
|
|
15
|
-
|
|
16
|
-
/** Whether the list shows closed issues too. */
|
|
17
|
-
readonly showClosed: boolean;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Something that moves the my issues side sheet.
|
|
22
|
-
*/
|
|
23
|
-
export type MyIssuesNavigationAction =
|
|
24
|
-
| { readonly type: 'requested'; readonly issueId?: Guid }
|
|
25
|
-
| { readonly type: 'opened'; readonly issueId: Guid }
|
|
26
|
-
| { readonly type: 'back' }
|
|
27
|
-
| { readonly type: 'showClosedChanged'; readonly showClosed: boolean };
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Gets where the side sheet starts: on the issue asked for, or on the list of open issues.
|
|
31
|
-
* @param issueId The issue to open on; the list when not given.
|
|
32
|
-
* @returns The {@link MyIssuesNavigation}.
|
|
33
|
-
*/
|
|
34
|
-
export function startNavigation(issueId?: Guid): MyIssuesNavigation {
|
|
35
|
-
return { openIssueId: issueId, requestedIssueId: issueId, showClosed: false };
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Moves the side sheet.
|
|
40
|
-
* @param navigation Where the side sheet is.
|
|
41
|
-
* @param action What moves it.
|
|
42
|
-
* @returns Where it is after.
|
|
43
|
-
*/
|
|
44
|
-
export function navigate(navigation: MyIssuesNavigation, action: MyIssuesNavigationAction): MyIssuesNavigation {
|
|
45
|
-
switch (action.type) {
|
|
46
|
-
case 'requested':
|
|
47
|
-
return sameIssue(navigation.requestedIssueId, action.issueId)
|
|
48
|
-
? navigation
|
|
49
|
-
: { ...navigation, openIssueId: action.issueId, requestedIssueId: action.issueId };
|
|
50
|
-
case 'opened':
|
|
51
|
-
return { ...navigation, openIssueId: action.issueId };
|
|
52
|
-
case 'back':
|
|
53
|
-
return { ...navigation, openIssueId: undefined };
|
|
54
|
-
case 'showClosedChanged':
|
|
55
|
-
return { ...navigation, showClosed: action.showClosed };
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
function sameIssue(left?: Guid, right?: Guid): boolean {
|
|
60
|
-
return left === right || (left !== undefined && right !== undefined && left.equals(right));
|
|
61
|
-
}
|
package/Issues/MyIssues/index.ts
DELETED
package/Issues/MyIssuesList.ts
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
-
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
-
|
|
4
|
-
import { ReportedIssue } from '@cratis/showrunner.usher';
|
|
5
|
-
import { isClosed } from './issueStates.js';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Counts the issues support waits for the reporter on.
|
|
9
|
-
* @param issues The reporter's issues.
|
|
10
|
-
* @returns How many issues support waits for the reporter on.
|
|
11
|
-
*/
|
|
12
|
-
export function waitingCount(issues: ReportedIssue[]): number {
|
|
13
|
-
return issues.filter(issue => issue.waitingOnReporter).length;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Gets the issues to list.
|
|
18
|
-
* @param issues The reporter's issues, most recent activity first.
|
|
19
|
-
* @param showClosed Whether to list closed issues too.
|
|
20
|
-
* @returns The issues to list, in the order given.
|
|
21
|
-
*/
|
|
22
|
-
export function visibleIssues(issues: ReportedIssue[], showClosed: boolean): ReportedIssue[] {
|
|
23
|
-
return showClosed ? issues : issues.filter(issue => !isClosed(issue.state));
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Checks whether a release has the fix for an issue.
|
|
28
|
-
* @param issue The issue.
|
|
29
|
-
* @returns True when a release has the fix.
|
|
30
|
-
*/
|
|
31
|
-
export function isFixReleased(issue: { fixedInVersion: string }): boolean {
|
|
32
|
-
return typeof issue.fixedInVersion === 'string' && issue.fixedInVersion.length > 0;
|
|
33
|
-
}
|
package/Issues/accessStatus.ts
DELETED
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
-
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
-
|
|
4
|
-
import { AccessState, IssueAccess } from '@cratis/showrunner.usher';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Whether support may sign in as the reporter on an issue, as the access panel shows it.
|
|
8
|
-
*/
|
|
9
|
-
export enum AccessStatus {
|
|
10
|
-
/** Support may not sign in, and does not ask to. */
|
|
11
|
-
notGranted = 'notGranted',
|
|
12
|
-
|
|
13
|
-
/** Support asks to sign in. */
|
|
14
|
-
requested = 'requested',
|
|
15
|
-
|
|
16
|
-
/** Support may sign in until the grant ends. */
|
|
17
|
-
granted = 'granted'
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Decides whether support may sign in as the reporter, against the clock: a grant that has passed its end is over,
|
|
22
|
-
* even before the backend records that it lapsed.
|
|
23
|
-
* @param access The {@link IssueAccess}; nothing when the issue has none yet.
|
|
24
|
-
* @param now What time it is.
|
|
25
|
-
* @returns The {@link AccessStatus}.
|
|
26
|
-
*/
|
|
27
|
-
export function accessStatusOf(access: IssueAccess | undefined, now: Date): AccessStatus {
|
|
28
|
-
if (!access) {
|
|
29
|
-
return AccessStatus.notGranted;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const validUntil = access.validUntil instanceof Date ? access.validUntil : new Date(access.validUntil);
|
|
33
|
-
if (access.state === AccessState.granted && validUntil.getTime() > now.getTime()) {
|
|
34
|
-
return AccessStatus.granted;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
return access.request?.pending ? AccessStatus.requested : AccessStatus.notGranted;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* The longest the access panel waits before it decides the status again, so it stays right even when the clock jumps.
|
|
42
|
-
*/
|
|
43
|
-
export const AccessStatusRefreshInterval = 60_000;
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Gets how long until the status changes by itself: a live grant ends at its end. Nothing else changes the status
|
|
47
|
-
* without a new fact from the backend.
|
|
48
|
-
* @param access The {@link IssueAccess}; nothing when the issue has none yet.
|
|
49
|
-
* @param now What time it is.
|
|
50
|
-
* @returns How many milliseconds until the status is decided again, at most {@link AccessStatusRefreshInterval}.
|
|
51
|
-
*/
|
|
52
|
-
export function nextAccessStatusCheckIn(access: IssueAccess | undefined, now: Date): number {
|
|
53
|
-
if (accessStatusOf(access, now) !== AccessStatus.granted) {
|
|
54
|
-
return AccessStatusRefreshInterval;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
const validUntil = access!.validUntil instanceof Date ? access!.validUntil : new Date(access!.validUntil);
|
|
58
|
-
return Math.min(Math.max(validUntil.getTime() - now.getTime(), 0), AccessStatusRefreshInterval);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Checks whether a support session is still running.
|
|
63
|
-
* @param session The session.
|
|
64
|
-
* @returns True while it runs.
|
|
65
|
-
*/
|
|
66
|
-
export function isSessionRunning(session: { ended: boolean }): boolean {
|
|
67
|
-
return !session.ended;
|
|
68
|
-
}
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
-
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
-
|
|
4
|
-
import { ChatAuthor, ChatAuthorKind, ChatIdentifier, ChatMessage } from '@cratis/components/Chat';
|
|
5
|
-
import { Guid } from '@cratis/fundamentals';
|
|
6
|
-
import { ConversationAuthorKind, ConversationEntry, ConversationEntryKind } from '@cratis/showrunner.usher';
|
|
7
|
-
import { ConversationEventLabels, format, UsherLabels } from '../Labels/index.js';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* A message in the conversation on an issue, as the chat shows it.
|
|
11
|
-
*/
|
|
12
|
-
export interface ConversationMessage extends ChatMessage {
|
|
13
|
-
/** What the entry records. */
|
|
14
|
-
readonly kind: ConversationEntryKind;
|
|
15
|
-
|
|
16
|
-
/** The question a question or an answer is about; empty for other entries. */
|
|
17
|
-
readonly questionId: Guid;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const textKinds = new Set<ConversationEntryKind>([
|
|
21
|
-
ConversationEntryKind.errorReported,
|
|
22
|
-
ConversationEntryKind.issueDescribed,
|
|
23
|
-
ConversationEntryKind.detailsAdded,
|
|
24
|
-
ConversationEntryKind.questionAsked,
|
|
25
|
-
ConversationEntryKind.questionAnswered,
|
|
26
|
-
ConversationEntryKind.replied
|
|
27
|
-
]);
|
|
28
|
-
|
|
29
|
-
const eventLabelKeys: Partial<Record<ConversationEntryKind, keyof ConversationEventLabels>> = {
|
|
30
|
-
[ConversationEntryKind.identityShared]: 'identityShared',
|
|
31
|
-
[ConversationEntryKind.accessGranted]: 'accessGranted',
|
|
32
|
-
[ConversationEntryKind.accessRevoked]: 'accessRevoked',
|
|
33
|
-
[ConversationEntryKind.accessLapsed]: 'accessLapsed',
|
|
34
|
-
[ConversationEntryKind.accessRequested]: 'accessRequested',
|
|
35
|
-
[ConversationEntryKind.supportSignedIn]: 'supportSignedIn',
|
|
36
|
-
[ConversationEntryKind.supportSessionEnded]: 'supportSessionEnded',
|
|
37
|
-
[ConversationEntryKind.triaged]: 'triaged',
|
|
38
|
-
[ConversationEntryKind.accepted]: 'accepted',
|
|
39
|
-
[ConversationEntryKind.declinedToFix]: 'declinedToFix',
|
|
40
|
-
[ConversationEntryKind.workStarted]: 'workStarted',
|
|
41
|
-
[ConversationEntryKind.resolved]: 'resolved',
|
|
42
|
-
[ConversationEntryKind.reopened]: 'reopened',
|
|
43
|
-
[ConversationEntryKind.withdrawn]: 'withdrawn',
|
|
44
|
-
[ConversationEntryKind.linkedToKnownIssue]: 'linkedToKnownIssue',
|
|
45
|
-
[ConversationEntryKind.unlinkedFromKnownIssue]: 'unlinkedFromKnownIssue',
|
|
46
|
-
[ConversationEntryKind.linkedToWorkItem]: 'linkedToWorkItem',
|
|
47
|
-
[ConversationEntryKind.unlinkedFromWorkItem]: 'unlinkedFromWorkItem',
|
|
48
|
-
[ConversationEntryKind.fixReleased]: 'fixReleased'
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
const authorKindNames: Record<ConversationAuthorKind, string> = {
|
|
52
|
-
[ConversationAuthorKind.reporter]: 'reporter',
|
|
53
|
-
[ConversationAuthorKind.support]: 'support',
|
|
54
|
-
[ConversationAuthorKind.agent]: 'agent',
|
|
55
|
-
[ConversationAuthorKind.system]: 'system'
|
|
56
|
-
};
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Gets the author id a conversation entry is shown under: who it is from and, for support and agents, their name.
|
|
60
|
-
* @param authorKind Who the entry is from.
|
|
61
|
-
* @param authorName The name of the support person or agent; empty when the desk hides it.
|
|
62
|
-
* @returns The author id.
|
|
63
|
-
*/
|
|
64
|
-
export function authorIdFor(authorKind: ConversationAuthorKind, authorName: string): string {
|
|
65
|
-
const kind = authorKindNames[authorKind] ?? authorKindNames[ConversationAuthorKind.system];
|
|
66
|
-
return authorKind === ConversationAuthorKind.support || authorKind === ConversationAuthorKind.agent
|
|
67
|
-
? `${kind}:${authorName ?? ''}`
|
|
68
|
-
: kind;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Resolves an author id of the conversation to who the chat shows.
|
|
73
|
-
* @param authorId The author id, as {@link authorIdFor} gives it.
|
|
74
|
-
* @param labels The labels to show.
|
|
75
|
-
* @returns The {@link ChatAuthor}.
|
|
76
|
-
*/
|
|
77
|
-
export function authorOf(authorId: ChatIdentifier, labels: UsherLabels): ChatAuthor {
|
|
78
|
-
const id = authorId.toString();
|
|
79
|
-
const separator = id.indexOf(':');
|
|
80
|
-
const kind = separator >= 0 ? id.substring(0, separator) : id;
|
|
81
|
-
const name = separator >= 0 ? id.substring(separator + 1) : '';
|
|
82
|
-
|
|
83
|
-
switch (kind) {
|
|
84
|
-
case 'reporter':
|
|
85
|
-
return { name: labels.conversation.you, kind: ChatAuthorKind.User };
|
|
86
|
-
case 'support':
|
|
87
|
-
return { name: name.length > 0 ? name : labels.conversation.support, kind: ChatAuthorKind.User };
|
|
88
|
-
case 'agent':
|
|
89
|
-
return { name: name.length > 0 ? name : labels.conversation.support, kind: ChatAuthorKind.Agent };
|
|
90
|
-
default:
|
|
91
|
-
return { name: labels.conversation.update, kind: ChatAuthorKind.Agent };
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Gets what the chat shows for an entry: its text for what someone wrote, and a sentence for what happened.
|
|
97
|
-
* @param entry The {@link ConversationEntry}.
|
|
98
|
-
* @param labels The labels to show.
|
|
99
|
-
* @returns The body of the message.
|
|
100
|
-
*/
|
|
101
|
-
export function bodyOf(entry: ConversationEntry, labels: UsherLabels): string {
|
|
102
|
-
if (textKinds.has(entry.kind)) {
|
|
103
|
-
return entry.text;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
const key = eventLabelKeys[entry.kind];
|
|
107
|
-
return key ? format(labels.conversation.events[key], { text: entry.text ?? '' }) : entry.text;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Converts the entries of the conversation on an issue to the messages the chat shows.
|
|
112
|
-
* @param issueId The issue.
|
|
113
|
-
* @param entries The entries, oldest first.
|
|
114
|
-
* @param labels The labels to show.
|
|
115
|
-
* @returns The {@link ConversationMessage} for every entry, oldest first.
|
|
116
|
-
*/
|
|
117
|
-
export function conversationMessages(issueId: Guid, entries: ConversationEntry[], labels: UsherLabels): ConversationMessage[] {
|
|
118
|
-
return entries.map(entry => ({
|
|
119
|
-
id: `${entry.entryId}`,
|
|
120
|
-
topicId: issueId,
|
|
121
|
-
authorId: authorIdFor(entry.authorKind, entry.authorName),
|
|
122
|
-
body: bodyOf(entry, labels),
|
|
123
|
-
timestamp: entry.at instanceof Date ? entry.at : new Date(entry.at),
|
|
124
|
-
kind: entry.kind,
|
|
125
|
-
questionId: entry.questionId ?? Guid.empty
|
|
126
|
-
}));
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* Checks whether a question is open: there is one, and the reporter has not answered it.
|
|
131
|
-
* @param questionId The question; empty when there is none.
|
|
132
|
-
* @returns True when there is a question to answer.
|
|
133
|
-
*/
|
|
134
|
-
export function isOpenQuestion(questionId: Guid | undefined): questionId is Guid {
|
|
135
|
-
return questionId !== undefined && !Guid.empty.equals(questionId);
|
|
136
|
-
}
|
package/Issues/index.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
-
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
-
|
|
4
|
-
export * from './accessStatus.js';
|
|
5
|
-
export * from './conversationMessages.js';
|
|
6
|
-
export * from './issueStates.js';
|
|
7
|
-
export * from './IssueView/index.js';
|
|
8
|
-
export * from './MyIssues/index.js';
|
|
9
|
-
export * from './MyIssuesList.js';
|
|
10
|
-
export * from './webAddress.js';
|
|
11
|
-
export * from './useAccessStatus.js';
|
|
12
|
-
export * from './sessionActivity.js';
|
package/Issues/issueStates.ts
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
-
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
-
|
|
4
|
-
import { TagSeverity } from '@cratis/components/Display';
|
|
5
|
-
import { IssueState } from '@cratis/showrunner.usher';
|
|
6
|
-
import { UsherLabels } from '../Labels/index.js';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* How the state of an issue is shown.
|
|
10
|
-
*/
|
|
11
|
-
export interface StateBadge {
|
|
12
|
-
/** The text. */
|
|
13
|
-
readonly label: string;
|
|
14
|
-
|
|
15
|
-
/** The severity of the tag that shows it. */
|
|
16
|
-
readonly severity: TagSeverity;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Gets how the state of an issue is shown.
|
|
21
|
-
* @param state The {@link IssueState}.
|
|
22
|
-
* @param labels The labels to show.
|
|
23
|
-
* @returns The {@link StateBadge}.
|
|
24
|
-
*/
|
|
25
|
-
export function stateBadgeFor(state: IssueState, labels: UsherLabels): StateBadge {
|
|
26
|
-
switch (state) {
|
|
27
|
-
case IssueState.reported:
|
|
28
|
-
return { label: labels.states.reported, severity: 'secondary' };
|
|
29
|
-
case IssueState.triaged:
|
|
30
|
-
return { label: labels.states.triaged, severity: 'info' };
|
|
31
|
-
case IssueState.accepted:
|
|
32
|
-
return { label: labels.states.accepted, severity: 'info' };
|
|
33
|
-
case IssueState.inProgress:
|
|
34
|
-
return { label: labels.states.inProgress, severity: 'warn' };
|
|
35
|
-
case IssueState.resolved:
|
|
36
|
-
return { label: labels.states.resolved, severity: 'success' };
|
|
37
|
-
case IssueState.wontFix:
|
|
38
|
-
return { label: labels.states.wontFix, severity: 'contrast' };
|
|
39
|
-
case IssueState.withdrawn:
|
|
40
|
-
return { label: labels.states.withdrawn, severity: 'secondary' };
|
|
41
|
-
default:
|
|
42
|
-
return { label: labels.states.reported, severity: 'secondary' };
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Checks whether an issue is closed: resolved, won't fix or withdrawn.
|
|
48
|
-
* @param state The {@link IssueState}.
|
|
49
|
-
* @returns True when closed.
|
|
50
|
-
*/
|
|
51
|
-
export function isClosed(state: IssueState): boolean {
|
|
52
|
-
return state === IssueState.resolved || state === IssueState.wontFix || state === IssueState.withdrawn;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* The steps of the status strip of an issue, in order.
|
|
57
|
-
*/
|
|
58
|
-
export const statusSteps: IssueState[] = [IssueState.reported, IssueState.triaged, IssueState.accepted, IssueState.inProgress, IssueState.resolved];
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Gets how far along the status strip an issue is.
|
|
62
|
-
* @param state The {@link IssueState}.
|
|
63
|
-
* @returns The index of the step reached; the last step for an issue support will not fix or the reporter
|
|
64
|
-
* withdrew, as nothing more happens on it.
|
|
65
|
-
*/
|
|
66
|
-
export function statusStepOf(state: IssueState): number {
|
|
67
|
-
const index = statusSteps.indexOf(state);
|
|
68
|
-
return index >= 0 ? index : statusSteps.length - 1;
|
|
69
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
-
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
-
|
|
4
|
-
import { ConversationEntry, ConversationEntryKind, SupportSession } from '@cratis/showrunner.usher';
|
|
5
|
-
import { format, SessionActionLabels } from '../Labels/index.js';
|
|
6
|
-
|
|
7
|
-
const actionLabelKeys: Partial<Record<ConversationEntryKind, keyof SessionActionLabels>> = {
|
|
8
|
-
[ConversationEntryKind.detailsAdded]: 'detailsAdded',
|
|
9
|
-
[ConversationEntryKind.questionAnswered]: 'questionAnswered',
|
|
10
|
-
[ConversationEntryKind.identityShared]: 'identityShared',
|
|
11
|
-
[ConversationEntryKind.reopened]: 'reopened',
|
|
12
|
-
[ConversationEntryKind.withdrawn]: 'withdrawn',
|
|
13
|
-
[ConversationEntryKind.accessRevoked]: 'accessRevoked'
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* What support did while signed in as the reporter in one session.
|
|
18
|
-
*/
|
|
19
|
-
export interface SessionActivity {
|
|
20
|
-
/** The entry the action is. */
|
|
21
|
-
readonly entryId: string;
|
|
22
|
-
|
|
23
|
-
/** What was done, as the reporter is told. */
|
|
24
|
-
readonly text: string;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Gets what support did as the reporter in a session, oldest first: the entries the backend credits to the session,
|
|
29
|
-
* without the session's own start and end.
|
|
30
|
-
* @param session The {@link SupportSession}.
|
|
31
|
-
* @param entries The entries of the conversation.
|
|
32
|
-
* @param labels The {@link SessionActionLabels}.
|
|
33
|
-
* @returns The {@link SessionActivity} of the session.
|
|
34
|
-
*/
|
|
35
|
-
export function sessionActivityOf(session: SupportSession, entries: ConversationEntry[], labels: SessionActionLabels): SessionActivity[] {
|
|
36
|
-
const sessionId = session.sessionId.toString();
|
|
37
|
-
return entries
|
|
38
|
-
.filter(entry => (entry.session ?? '').toString() === sessionId)
|
|
39
|
-
.flatMap(entry => {
|
|
40
|
-
const key = actionLabelKeys[entry.kind];
|
|
41
|
-
return key ? [{ entryId: entry.entryId.toString(), text: format(labels[key], { text: entry.text ?? '' }) }] : [];
|
|
42
|
-
});
|
|
43
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
-
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
-
|
|
4
|
-
import { IssueAccess } from '@cratis/showrunner.usher';
|
|
5
|
-
import { useEffect, useState } from 'react';
|
|
6
|
-
import { AccessStatus, accessStatusOf, nextAccessStatusCheckIn } from './accessStatus.js';
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Decides whether support may sign in as the reporter, and decides again when a grant reaches its end, or at the
|
|
10
|
-
* latest once a minute, so a grant that runs out while the view is open is shown as over
|
|
11
|
-
* without waiting for the backend to record the lapse.
|
|
12
|
-
* @param access The {@link IssueAccess}; nothing when the issue has none yet.
|
|
13
|
-
* @returns The {@link AccessStatus} now, and the time it was decided at.
|
|
14
|
-
*/
|
|
15
|
-
export function useAccessStatus(access: IssueAccess | undefined): [AccessStatus, Date] {
|
|
16
|
-
const [now, setNow] = useState(() => new Date());
|
|
17
|
-
|
|
18
|
-
useEffect(() => {
|
|
19
|
-
const timer = setTimeout(() => setNow(new Date()), nextAccessStatusCheckIn(access, new Date()));
|
|
20
|
-
return () => clearTimeout(timer);
|
|
21
|
-
}, [access, now]);
|
|
22
|
-
|
|
23
|
-
return [accessStatusOf(access, now), now];
|
|
24
|
-
}
|
package/Issues/webAddress.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
// Copyright (c) Cratis. All rights reserved.
|
|
2
|
-
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Gets whether an address is an absolute `https` or `http` address, the only kind offered to the reporter as a link.
|
|
6
|
-
* Usher already records any other address from a desk as no address; this keeps a link from ever pointing at a
|
|
7
|
-
* `javascript:` or `data:` address should one reach the view some other way.
|
|
8
|
-
* @param address The address.
|
|
9
|
-
* @returns True when it is a web address.
|
|
10
|
-
*/
|
|
11
|
-
export function isWebAddress(address: string | undefined): boolean {
|
|
12
|
-
if (!address) {
|
|
13
|
-
return false;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
try {
|
|
17
|
-
const { protocol } = new URL(address);
|
|
18
|
-
return protocol === 'https:' || protocol === 'http:';
|
|
19
|
-
} catch {
|
|
20
|
-
return false;
|
|
21
|
-
}
|
|
22
|
-
}
|