@memberjunction/ng-dashboards 6.2.0-edge.6 → 6.2.0-edge.7
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 +23 -16
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +2 -2
- package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
- package/dist/AI/components/analytics/realtime/realtime-management.component.d.ts.map +1 -1
- package/dist/AI/components/analytics/realtime/realtime-management.component.js +3 -1
- package/dist/AI/components/analytics/realtime/realtime-management.component.js.map +1 -1
- package/dist/AI/components/analytics/realtime/realtime-overview.component.d.ts +1 -1
- package/dist/AI/components/analytics/realtime/realtime-overview.component.js +3 -3
- package/dist/AI/components/analytics/realtime/realtime-overview.component.js.map +1 -1
- package/dist/AI/components/analytics/realtime/realtime-session-data.d.ts +6 -4
- package/dist/AI/components/analytics/realtime/realtime-session-data.d.ts.map +1 -1
- package/dist/AI/components/analytics/realtime/realtime-session-data.js +8 -2
- package/dist/AI/components/analytics/realtime/realtime-session-data.js.map +1 -1
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +6 -6
- package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
- package/dist/AI/components/autotagging/components/classify-item-grid.component.js +1 -1
- package/dist/AI/components/autotagging/components/classify-item-grid.component.js.map +1 -1
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js +1 -0
- package/dist/AI/components/autotagging/components/classify-org-context-editor.component.js.map +1 -1
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js +1 -0
- package/dist/AI/components/autotagging/dialogs/source-type-form.dialog.component.js.map +1 -1
- package/dist/AI/components/autotagging/tabs/sources-tab.component.d.ts.map +1 -1
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js +1 -0
- package/dist/AI/components/autotagging/tabs/sources-tab.component.js.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +1 -0
- package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
- package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js +2 -2
- package/dist/AI/components/tags/tags-resource.component.d.ts.map +1 -1
- package/dist/AI/components/tags/tags-resource.component.js +3 -2
- package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
- package/dist/AI/components/vectors/vector-management-resource.component.js +12 -6
- package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
- package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
- package/dist/AI/services/ai-instrumentation.service.js +4 -2
- package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
- package/dist/Actions/action-result-code.d.ts +80 -0
- package/dist/Actions/action-result-code.d.ts.map +1 -0
- package/dist/Actions/action-result-code.js +163 -0
- package/dist/Actions/action-result-code.js.map +1 -0
- package/dist/Actions/components/actions-overview.component.d.ts +8 -0
- package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
- package/dist/Actions/components/actions-overview.component.js +12 -9
- package/dist/Actions/components/actions-overview.component.js.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.d.ts +29 -9
- package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
- package/dist/Actions/components/execution-monitoring.component.js +65 -42
- package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
- package/dist/Actions/components/explorer/action-card.component.d.ts.map +1 -1
- package/dist/Actions/components/explorer/action-card.component.js +5 -4
- package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts +92 -130
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.d.ts.map +1 -1
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.js +189 -274
- package/dist/ChiefOfStaff/chief-of-staff-agent-context.js.map +1 -1
- package/dist/ChiefOfStaff/chief-of-staff-approvals.component.d.ts +29 -0
- package/dist/ChiefOfStaff/chief-of-staff-approvals.component.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-approvals.component.js +666 -0
- package/dist/ChiefOfStaff/chief-of-staff-approvals.component.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-governance.component.d.ts +56 -0
- package/dist/ChiefOfStaff/chief-of-staff-governance.component.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-governance.component.js +515 -0
- package/dist/ChiefOfStaff/chief-of-staff-governance.component.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-live-refresh.d.ts +14 -0
- package/dist/ChiefOfStaff/chief-of-staff-live-refresh.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-live-refresh.js +39 -0
- package/dist/ChiefOfStaff/chief-of-staff-live-refresh.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-overview.component.d.ts +17 -0
- package/dist/ChiefOfStaff/chief-of-staff-overview.component.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-overview.component.js +485 -0
- package/dist/ChiefOfStaff/chief-of-staff-overview.component.js.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-page-base.d.ts +139 -0
- package/dist/ChiefOfStaff/chief-of-staff-page-base.d.ts.map +1 -0
- package/dist/ChiefOfStaff/chief-of-staff-page-base.js +602 -0
- package/dist/ChiefOfStaff/chief-of-staff-page-base.js.map +1 -0
- package/dist/ChiefOfStaff/index.d.ts +4 -1
- package/dist/ChiefOfStaff/index.d.ts.map +1 -1
- package/dist/ChiefOfStaff/index.js +4 -1
- package/dist/ChiefOfStaff/index.js.map +1 -1
- package/dist/Communication/communication-monitor-resource.component.js +3 -3
- package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
- package/dist/Communication/communication-runs-resource.component.js +3 -3
- package/dist/Communication/communication-runs-resource.component.js.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
- package/dist/ComponentStudio/component-studio-dashboard.component.js +1 -0
- package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.d.ts.map +1 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js +2 -1
- package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
- package/dist/ComponentStudio/services/component-version.service.d.ts.map +1 -1
- package/dist/ComponentStudio/services/component-version.service.js +3 -0
- package/dist/ComponentStudio/services/component-version.service.js.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +21 -2
- package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
- package/dist/DataExplorer/data-explorer-dashboard.component.js +32 -5
- package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
- package/dist/DevTools/graphql-console.component.js +2 -2
- package/dist/DevTools/lazy-module-status.component.js +2 -2
- package/dist/FormBuilder/form-builder-resource.component.d.ts.map +1 -1
- package/dist/FormBuilder/form-builder-resource.component.js +5 -0
- package/dist/FormBuilder/form-builder-resource.component.js.map +1 -1
- package/dist/Integration/components/connections/connections.component.js +2 -2
- package/dist/Integration/services/integration-data.service.d.ts +1 -1
- package/dist/Integration/services/integration-data.service.d.ts.map +1 -1
- package/dist/Integration/services/integration-data.service.js +4 -3
- package/dist/Integration/services/integration-data.service.js.map +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js +1 -1
- package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js +1 -1
- package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
- package/dist/LoginStudio/login-studio-resource.component.d.ts.map +1 -1
- package/dist/LoginStudio/login-studio-resource.component.js +1 -0
- package/dist/LoginStudio/login-studio-resource.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-experiments.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-experiments.component.js +1 -0
- package/dist/PredictiveStudio/components/ps-experiments.component.js.map +1 -1
- package/dist/PredictiveStudio/components/ps-pipeline-wizard.component.js +2 -2
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.js +3 -0
- package/dist/PredictiveStudio/components/ps-predictions-grid.component.js.map +1 -1
- package/dist/PredictiveStudio/engine/predictive-studio.engine.d.ts.map +1 -1
- package/dist/PredictiveStudio/engine/predictive-studio.engine.js +1 -0
- package/dist/PredictiveStudio/engine/predictive-studio.engine.js.map +1 -1
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.d.ts.map +1 -1
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js +1 -0
- package/dist/PredictiveStudio/resources/ps-predictions-resource.component.js.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.d.ts +26 -0
- package/dist/QueryBrowser/query-browser-resource.component.d.ts.map +1 -1
- package/dist/QueryBrowser/query-browser-resource.component.js +375 -252
- package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
- package/dist/UserRoutines/user-routines-resource.component.d.ts +8 -1
- package/dist/UserRoutines/user-routines-resource.component.d.ts.map +1 -1
- package/dist/UserRoutines/user-routines-resource.component.js +22 -4
- package/dist/UserRoutines/user-routines-resource.component.js.map +1 -1
- package/dist/VersionHistory/components/diff-resource.component.d.ts.map +1 -1
- package/dist/VersionHistory/components/diff-resource.component.js +1 -0
- package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
- package/dist/VideoStudio/components/vs-archetype-editor.component.d.ts +162 -0
- package/dist/VideoStudio/components/vs-archetype-editor.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-archetype-editor.component.js +1105 -0
- package/dist/VideoStudio/components/vs-archetype-editor.component.js.map +1 -0
- package/dist/VideoStudio/components/vs-audio-options.component.d.ts +27 -0
- package/dist/VideoStudio/components/vs-audio-options.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-audio-options.component.js +119 -0
- package/dist/VideoStudio/components/vs-audio-options.component.js.map +1 -0
- package/dist/VideoStudio/components/vs-copilot-panel.component.d.ts +105 -0
- package/dist/VideoStudio/components/vs-copilot-panel.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-copilot-panel.component.js +560 -0
- package/dist/VideoStudio/components/vs-copilot-panel.component.js.map +1 -0
- package/dist/VideoStudio/components/vs-production-brief.component.d.ts +163 -0
- package/dist/VideoStudio/components/vs-production-brief.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-production-brief.component.js +1054 -0
- package/dist/VideoStudio/components/vs-production-brief.component.js.map +1 -0
- package/dist/VideoStudio/components/vs-setup-health-card.component.d.ts +43 -0
- package/dist/VideoStudio/components/vs-setup-health-card.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-setup-health-card.component.js +412 -0
- package/dist/VideoStudio/components/vs-setup-health-card.component.js.map +1 -0
- package/dist/VideoStudio/components/vs-studio-slide-in.component.d.ts +73 -0
- package/dist/VideoStudio/components/vs-studio-slide-in.component.d.ts.map +1 -0
- package/dist/VideoStudio/components/vs-studio-slide-in.component.js +271 -0
- package/dist/VideoStudio/components/vs-studio-slide-in.component.js.map +1 -0
- package/dist/VideoStudio/index.d.ts +12 -0
- package/dist/VideoStudio/index.d.ts.map +1 -0
- package/dist/VideoStudio/index.js +12 -0
- package/dist/VideoStudio/index.js.map +1 -0
- package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.d.ts +118 -0
- package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.d.ts.map +1 -0
- package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.js +964 -0
- package/dist/VideoStudio/resources/video-studio-archetypes-resource.component.js.map +1 -0
- package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.d.ts +70 -0
- package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.d.ts.map +1 -0
- package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.js +600 -0
- package/dist/VideoStudio/resources/video-studio-brand-kits-resource.component.js.map +1 -0
- package/dist/VideoStudio/resources/video-studio-productions-resource.component.d.ts +182 -0
- package/dist/VideoStudio/resources/video-studio-productions-resource.component.d.ts.map +1 -0
- package/dist/VideoStudio/resources/video-studio-productions-resource.component.js +1481 -0
- package/dist/VideoStudio/resources/video-studio-productions-resource.component.js.map +1 -0
- package/dist/VideoStudio/services/vs-studio-slide-in-state.service.d.ts +102 -0
- package/dist/VideoStudio/services/vs-studio-slide-in-state.service.d.ts.map +1 -0
- package/dist/VideoStudio/services/vs-studio-slide-in-state.service.js +240 -0
- package/dist/VideoStudio/services/vs-studio-slide-in-state.service.js.map +1 -0
- package/dist/VideoStudio/video-studio-agent-context.d.ts +495 -0
- package/dist/VideoStudio/video-studio-agent-context.d.ts.map +1 -0
- package/dist/VideoStudio/video-studio-agent-context.js +992 -0
- package/dist/VideoStudio/video-studio-agent-context.js.map +1 -0
- package/dist/ai-dashboards.module.d.ts +25 -22
- package/dist/ai-dashboards.module.d.ts.map +1 -1
- package/dist/ai-dashboards.module.js +23 -7
- package/dist/ai-dashboards.module.js.map +1 -1
- package/dist/module.d.ts +13 -12
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +7 -0
- package/dist/module.js.map +1 -1
- package/dist/public-api.d.ts +7 -1
- package/dist/public-api.d.ts.map +1 -1
- package/dist/public-api.js +9 -2
- package/dist/public-api.js.map +1 -1
- package/dist/shared/action-scheduled-job.d.ts.map +1 -1
- package/dist/shared/action-scheduled-job.js +2 -0
- package/dist/shared/action-scheduled-job.js.map +1 -1
- package/dist/video-studio-dashboards.module.d.ts +40 -0
- package/dist/video-studio-dashboards.module.d.ts.map +1 -0
- package/dist/video-studio-dashboards.module.js +159 -0
- package/dist/video-studio-dashboards.module.js.map +1 -0
- package/package.json +77 -71
- package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.d.ts +0 -195
- package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.d.ts.map +0 -1
- package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.js +0 -2910
- package/dist/ChiefOfStaff/chief-of-staff-dashboard.component.js.map +0 -1
|
@@ -0,0 +1,666 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
8
|
+
import { RegisterClass } from '@memberjunction/global';
|
|
9
|
+
import { BaseResourceComponent } from '@memberjunction/ng-shared';
|
|
10
|
+
import { IsApprovalRequest, IsSpentOneShotRoutine, ValidateSearchQueryParam } from './chief-of-staff-agent-context';
|
|
11
|
+
import { BaseChiefOfStaffPage } from './chief-of-staff-page-base';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
import * as i1 from "@memberjunction/ng-conversations";
|
|
14
|
+
import * as i2 from "@memberjunction/ng-shared-generic";
|
|
15
|
+
import * as i3 from "@memberjunction/ng-agent-requests";
|
|
16
|
+
import * as i4 from "@memberjunction/ng-ui-components";
|
|
17
|
+
import * as i5 from "@angular/common";
|
|
18
|
+
const _forTrack0 = ($index, $item) => $item.ID;
|
|
19
|
+
function ChiefOfStaffApprovalsComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
20
|
+
i0.ɵɵelement(0, "mj-stat-badge", 2);
|
|
21
|
+
} if (rf & 2) {
|
|
22
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
23
|
+
i0.ɵɵproperty("Count", ctx_r0.Metrics.PendingApprovalCount);
|
|
24
|
+
} }
|
|
25
|
+
function ChiefOfStaffApprovalsComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
26
|
+
i0.ɵɵelement(0, "mj-stat-badge", 3);
|
|
27
|
+
} if (rf & 2) {
|
|
28
|
+
i0.ɵɵproperty("Count", 0);
|
|
29
|
+
} }
|
|
30
|
+
function ChiefOfStaffApprovalsComponent_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
31
|
+
const _r2 = i0.ɵɵgetCurrentView();
|
|
32
|
+
i0.ɵɵelementStart(0, "div", 14)(1, "div", 15);
|
|
33
|
+
i0.ɵɵelement(2, "i", 16);
|
|
34
|
+
i0.ɵɵelementStart(3, "span");
|
|
35
|
+
i0.ɵɵtext(4);
|
|
36
|
+
i0.ɵɵelementEnd()();
|
|
37
|
+
i0.ɵɵelementStart(5, "button", 17);
|
|
38
|
+
i0.ɵɵlistener("click", function ChiefOfStaffApprovalsComponent_Conditional_10_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.DismissBanner()); });
|
|
39
|
+
i0.ɵɵelement(6, "i", 18);
|
|
40
|
+
i0.ɵɵelementEnd()();
|
|
41
|
+
} if (rf & 2) {
|
|
42
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
43
|
+
i0.ɵɵclassProp("cos-banner--success", ctx_r0.FeedbackBanner.Type === "success")("cos-banner--error", ctx_r0.FeedbackBanner.Type === "error");
|
|
44
|
+
i0.ɵɵadvance(2);
|
|
45
|
+
i0.ɵɵclassProp("fa-circle-check", ctx_r0.FeedbackBanner.Type === "success")("fa-circle-exclamation", ctx_r0.FeedbackBanner.Type === "error");
|
|
46
|
+
i0.ɵɵadvance(2);
|
|
47
|
+
i0.ɵɵtextInterpolate(ctx_r0.FeedbackBanner.Message);
|
|
48
|
+
} }
|
|
49
|
+
function ChiefOfStaffApprovalsComponent_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
50
|
+
i0.ɵɵelementStart(0, "div", 9);
|
|
51
|
+
i0.ɵɵelement(1, "mj-loading", 19);
|
|
52
|
+
i0.ɵɵelementEnd();
|
|
53
|
+
} }
|
|
54
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_9_Template(rf, ctx) { if (rf & 1) {
|
|
55
|
+
i0.ɵɵelement(0, "mj-empty-state", 25);
|
|
56
|
+
} }
|
|
57
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
58
|
+
i0.ɵɵelementStart(0, "span", 35);
|
|
59
|
+
i0.ɵɵelement(1, "i", 47);
|
|
60
|
+
i0.ɵɵtext(2);
|
|
61
|
+
i0.ɵɵelementEnd();
|
|
62
|
+
} if (rf & 2) {
|
|
63
|
+
const req_r4 = i0.ɵɵnextContext().$implicit;
|
|
64
|
+
i0.ɵɵadvance(2);
|
|
65
|
+
i0.ɵɵtextInterpolate1(" ", req_r4.RequestType);
|
|
66
|
+
} }
|
|
67
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Conditional_8_Template(rf, ctx) { if (rf & 1) {
|
|
68
|
+
i0.ɵɵelementStart(0, "span", 37);
|
|
69
|
+
i0.ɵɵtext(1, " Expired ");
|
|
70
|
+
i0.ɵɵelementEnd();
|
|
71
|
+
} }
|
|
72
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Conditional_25_ng_template_2_Template(rf, ctx) { if (rf & 1) {
|
|
73
|
+
i0.ɵɵelement(0, "i", 53);
|
|
74
|
+
i0.ɵɵtext(1);
|
|
75
|
+
} if (rf & 2) {
|
|
76
|
+
i0.ɵɵnextContext(2);
|
|
77
|
+
const openDraft_r5 = i0.ɵɵreadContextLet(24);
|
|
78
|
+
i0.ɵɵadvance();
|
|
79
|
+
i0.ɵɵtextInterpolate1(" Email draft to ", openDraft_r5.To);
|
|
80
|
+
} }
|
|
81
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Conditional_25_ng_template_3_Template(rf, ctx) { if (rf & 1) {
|
|
82
|
+
const _r6 = i0.ɵɵgetCurrentView();
|
|
83
|
+
i0.ɵɵelementStart(0, "button", 54);
|
|
84
|
+
i0.ɵɵlistener("click", function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Conditional_25_ng_template_3_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r6); const req_r4 = i0.ɵɵnextContext(2).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.CopyEmailDraft(req_r4, $event)); });
|
|
85
|
+
i0.ɵɵelement(1, "i", 55);
|
|
86
|
+
i0.ɵɵtext(2, " Copy ");
|
|
87
|
+
i0.ɵɵelementEnd();
|
|
88
|
+
} }
|
|
89
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Conditional_25_ng_template_4_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
90
|
+
i0.ɵɵelementStart(0, "div")(1, "strong");
|
|
91
|
+
i0.ɵɵtext(2, "CC:");
|
|
92
|
+
i0.ɵɵelementEnd();
|
|
93
|
+
i0.ɵɵtext(3);
|
|
94
|
+
i0.ɵɵelementEnd();
|
|
95
|
+
} if (rf & 2) {
|
|
96
|
+
i0.ɵɵnextContext(3);
|
|
97
|
+
const openDraft_r5 = i0.ɵɵreadContextLet(24);
|
|
98
|
+
i0.ɵɵadvance(3);
|
|
99
|
+
i0.ɵɵtextInterpolate1(" ", openDraft_r5.CC.join(", "));
|
|
100
|
+
} }
|
|
101
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Conditional_25_ng_template_4_Conditional_6_Template(rf, ctx) { if (rf & 1) {
|
|
102
|
+
i0.ɵɵelementStart(0, "div")(1, "strong");
|
|
103
|
+
i0.ɵɵtext(2, "From:");
|
|
104
|
+
i0.ɵɵelementEnd();
|
|
105
|
+
i0.ɵɵtext(3);
|
|
106
|
+
i0.ɵɵelementEnd();
|
|
107
|
+
} if (rf & 2) {
|
|
108
|
+
i0.ɵɵnextContext(3);
|
|
109
|
+
const openDraft_r5 = i0.ɵɵreadContextLet(24);
|
|
110
|
+
i0.ɵɵadvance(3);
|
|
111
|
+
i0.ɵɵtextInterpolate1(" ", openDraft_r5.From);
|
|
112
|
+
} }
|
|
113
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Conditional_25_ng_template_4_Template(rf, ctx) { if (rf & 1) {
|
|
114
|
+
i0.ɵɵelementStart(0, "div", 56)(1, "div")(2, "strong");
|
|
115
|
+
i0.ɵɵtext(3, "To:");
|
|
116
|
+
i0.ɵɵelementEnd();
|
|
117
|
+
i0.ɵɵtext(4);
|
|
118
|
+
i0.ɵɵelementEnd();
|
|
119
|
+
i0.ɵɵconditionalCreate(5, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Conditional_25_ng_template_4_Conditional_5_Template, 4, 1, "div");
|
|
120
|
+
i0.ɵɵconditionalCreate(6, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Conditional_25_ng_template_4_Conditional_6_Template, 4, 1, "div");
|
|
121
|
+
i0.ɵɵelementStart(7, "div")(8, "strong");
|
|
122
|
+
i0.ɵɵtext(9, "Subject:");
|
|
123
|
+
i0.ɵɵelementEnd();
|
|
124
|
+
i0.ɵɵtext(10);
|
|
125
|
+
i0.ɵɵelementEnd()();
|
|
126
|
+
i0.ɵɵelementStart(11, "pre", 57);
|
|
127
|
+
i0.ɵɵtext(12);
|
|
128
|
+
i0.ɵɵelementEnd();
|
|
129
|
+
} if (rf & 2) {
|
|
130
|
+
i0.ɵɵnextContext(2);
|
|
131
|
+
const openDraft_r5 = i0.ɵɵreadContextLet(24);
|
|
132
|
+
i0.ɵɵadvance(4);
|
|
133
|
+
i0.ɵɵtextInterpolate1(" ", openDraft_r5.To);
|
|
134
|
+
i0.ɵɵadvance();
|
|
135
|
+
i0.ɵɵconditional(openDraft_r5.CC.length > 0 ? 5 : -1);
|
|
136
|
+
i0.ɵɵadvance();
|
|
137
|
+
i0.ɵɵconditional(openDraft_r5.From ? 6 : -1);
|
|
138
|
+
i0.ɵɵadvance(4);
|
|
139
|
+
i0.ɵɵtextInterpolate1(" ", openDraft_r5.Subject);
|
|
140
|
+
i0.ɵɵadvance(2);
|
|
141
|
+
i0.ɵɵtextInterpolate(openDraft_r5.Body);
|
|
142
|
+
} }
|
|
143
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Conditional_25_Template(rf, ctx) { if (rf & 1) {
|
|
144
|
+
i0.ɵɵelementStart(0, "div", 48);
|
|
145
|
+
i0.ɵɵlistener("click", function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Conditional_25_Template_div_click_0_listener($event) { return $event.stopPropagation(); });
|
|
146
|
+
i0.ɵɵelementStart(1, "mj-accordion-panel", 49);
|
|
147
|
+
i0.ɵɵtemplate(2, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Conditional_25_ng_template_2_Template, 2, 1, "ng-template", 50)(3, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Conditional_25_ng_template_3_Template, 3, 0, "ng-template", 51)(4, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Conditional_25_ng_template_4_Template, 13, 5, "ng-template", 52);
|
|
148
|
+
i0.ɵɵelementEnd()();
|
|
149
|
+
} if (rf & 2) {
|
|
150
|
+
i0.ɵɵadvance();
|
|
151
|
+
i0.ɵɵproperty("Bare", true);
|
|
152
|
+
} }
|
|
153
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
154
|
+
const _r3 = i0.ɵɵgetCurrentView();
|
|
155
|
+
i0.ɵɵelementStart(0, "div", 32);
|
|
156
|
+
i0.ɵɵlistener("click", function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Template_div_click_0_listener() { const req_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.OpenRequestDetail(req_r4)); });
|
|
157
|
+
i0.ɵɵelementStart(1, "div", 33)(2, "div", 34)(3, "span");
|
|
158
|
+
i0.ɵɵtext(4);
|
|
159
|
+
i0.ɵɵelementEnd();
|
|
160
|
+
i0.ɵɵconditionalCreate(5, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Conditional_5_Template, 3, 1, "span", 35);
|
|
161
|
+
i0.ɵɵelementStart(6, "span", 36);
|
|
162
|
+
i0.ɵɵtext(7);
|
|
163
|
+
i0.ɵɵelementEnd();
|
|
164
|
+
i0.ɵɵconditionalCreate(8, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Conditional_8_Template, 2, 0, "span", 37);
|
|
165
|
+
i0.ɵɵelementEnd();
|
|
166
|
+
i0.ɵɵelementStart(9, "span", 38);
|
|
167
|
+
i0.ɵɵtext(10);
|
|
168
|
+
i0.ɵɵpipe(11, "date");
|
|
169
|
+
i0.ɵɵelementEnd()();
|
|
170
|
+
i0.ɵɵelementStart(12, "p", 39);
|
|
171
|
+
i0.ɵɵtext(13);
|
|
172
|
+
i0.ɵɵelementEnd();
|
|
173
|
+
i0.ɵɵelementStart(14, "div", 40)(15, "button", 41);
|
|
174
|
+
i0.ɵɵlistener("click", function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Template_button_click_15_listener($event) { const req_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.QuickRespondToRequest(req_r4, "Approved", $event)); });
|
|
175
|
+
i0.ɵɵelement(16, "i", 42);
|
|
176
|
+
i0.ɵɵtext(17, " Approve ");
|
|
177
|
+
i0.ɵɵelementEnd();
|
|
178
|
+
i0.ɵɵelementStart(18, "button", 43);
|
|
179
|
+
i0.ɵɵlistener("click", function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Template_button_click_18_listener($event) { const req_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.QuickRespondToRequest(req_r4, "Rejected", $event)); });
|
|
180
|
+
i0.ɵɵelement(19, "i", 18);
|
|
181
|
+
i0.ɵɵtext(20, " Reject ");
|
|
182
|
+
i0.ɵɵelementEnd();
|
|
183
|
+
i0.ɵɵelementStart(21, "button", 44);
|
|
184
|
+
i0.ɵɵlistener("click", function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Template_button_click_21_listener($event) { const req_r4 = i0.ɵɵrestoreView(_r3).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); ctx_r0.OpenRequestDetail(req_r4); return i0.ɵɵresetView($event.stopPropagation()); });
|
|
185
|
+
i0.ɵɵelement(22, "i", 45);
|
|
186
|
+
i0.ɵɵtext(23, " Full Details / Comment ");
|
|
187
|
+
i0.ɵɵelementEnd()();
|
|
188
|
+
i0.ɵɵdeclareLet(24);
|
|
189
|
+
i0.ɵɵconditionalCreate(25, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Conditional_25_Template, 5, 1, "div", 46);
|
|
190
|
+
i0.ɵɵelementEnd();
|
|
191
|
+
} if (rf & 2) {
|
|
192
|
+
const req_r4 = ctx.$implicit;
|
|
193
|
+
const ctx_r0 = i0.ɵɵnextContext(3);
|
|
194
|
+
i0.ɵɵadvance(3);
|
|
195
|
+
i0.ɵɵclassMap(i0.ɵɵinterpolate1("cos-priority-tag ", ctx_r0.GetPriorityTierClass(req_r4.Priority)));
|
|
196
|
+
i0.ɵɵadvance();
|
|
197
|
+
i0.ɵɵtextInterpolate2(" ", ctx_r0.GetPriorityTierLabel(req_r4.Priority), " (", req_r4.Priority, ") ");
|
|
198
|
+
i0.ɵɵadvance();
|
|
199
|
+
i0.ɵɵconditional(req_r4.RequestType ? 5 : -1);
|
|
200
|
+
i0.ɵɵadvance(2);
|
|
201
|
+
i0.ɵɵtextInterpolate1(" ", req_r4.Status, " ");
|
|
202
|
+
i0.ɵɵadvance();
|
|
203
|
+
i0.ɵɵconditional(ctx_r0.IsRequestExpired(req_r4) ? 8 : -1);
|
|
204
|
+
i0.ɵɵadvance(2);
|
|
205
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(11, 13, req_r4.RequestedAt, "short"), " ");
|
|
206
|
+
i0.ɵɵadvance(3);
|
|
207
|
+
i0.ɵɵtextInterpolate(req_r4.Request);
|
|
208
|
+
i0.ɵɵadvance(2);
|
|
209
|
+
i0.ɵɵproperty("disabled", ctx_r0.BusyRequestID === req_r4.ID);
|
|
210
|
+
i0.ɵɵadvance(3);
|
|
211
|
+
i0.ɵɵproperty("disabled", ctx_r0.BusyRequestID === req_r4.ID);
|
|
212
|
+
i0.ɵɵadvance(6);
|
|
213
|
+
const openDraft_r7 = i0.ɵɵstoreLet(ctx_r0.EmailDraftFor(req_r4));
|
|
214
|
+
i0.ɵɵadvance();
|
|
215
|
+
i0.ɵɵconditional(openDraft_r7 ? 25 : -1);
|
|
216
|
+
} }
|
|
217
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
218
|
+
i0.ɵɵelementStart(0, "div", 26);
|
|
219
|
+
i0.ɵɵrepeaterCreate(1, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_For_2_Template, 26, 17, "div", 31, _forTrack0);
|
|
220
|
+
i0.ɵɵelementEnd();
|
|
221
|
+
} if (rf & 2) {
|
|
222
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
223
|
+
i0.ɵɵadvance();
|
|
224
|
+
i0.ɵɵrepeater(ctx_r0.PendingRequests);
|
|
225
|
+
} }
|
|
226
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_11_For_5_Template(rf, ctx) { if (rf & 1) {
|
|
227
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
228
|
+
i0.ɵɵelementStart(0, "div", 60);
|
|
229
|
+
i0.ɵɵlistener("click", function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_11_For_5_Template_div_click_0_listener() { const req_r9 = i0.ɵɵrestoreView(_r8).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.OpenRequestDetail(req_r9)); });
|
|
230
|
+
i0.ɵɵelementStart(1, "div", 61)(2, "span");
|
|
231
|
+
i0.ɵɵtext(3);
|
|
232
|
+
i0.ɵɵelementEnd();
|
|
233
|
+
i0.ɵɵelementStart(4, "span", 62);
|
|
234
|
+
i0.ɵɵtext(5);
|
|
235
|
+
i0.ɵɵelementEnd()();
|
|
236
|
+
i0.ɵɵelementStart(6, "span", 38);
|
|
237
|
+
i0.ɵɵtext(7);
|
|
238
|
+
i0.ɵɵpipe(8, "date");
|
|
239
|
+
i0.ɵɵelementEnd()();
|
|
240
|
+
} if (rf & 2) {
|
|
241
|
+
const req_r9 = ctx.$implicit;
|
|
242
|
+
i0.ɵɵadvance(2);
|
|
243
|
+
i0.ɵɵclassMap(i0.ɵɵinterpolate1("cos-status-chip cos-status-chip--", req_r9.Status.toLowerCase()));
|
|
244
|
+
i0.ɵɵadvance();
|
|
245
|
+
i0.ɵɵtextInterpolate1(" ", req_r9.Status, " ");
|
|
246
|
+
i0.ɵɵadvance(2);
|
|
247
|
+
i0.ɵɵtextInterpolate(req_r9.Request);
|
|
248
|
+
i0.ɵɵadvance(2);
|
|
249
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(8, 6, req_r9.RespondedAt || req_r9.RequestedAt, "shortDate"), " ");
|
|
250
|
+
} }
|
|
251
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_11_Template(rf, ctx) { if (rf & 1) {
|
|
252
|
+
i0.ɵɵelementStart(0, "div", 27)(1, "h4", 58);
|
|
253
|
+
i0.ɵɵtext(2, "Recent Resolved Decisions");
|
|
254
|
+
i0.ɵɵelementEnd();
|
|
255
|
+
i0.ɵɵelementStart(3, "div", 26);
|
|
256
|
+
i0.ɵɵrepeaterCreate(4, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_11_For_5_Template, 9, 9, "div", 59, _forTrack0);
|
|
257
|
+
i0.ɵɵelementEnd()();
|
|
258
|
+
} if (rf & 2) {
|
|
259
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
260
|
+
i0.ɵɵadvance(4);
|
|
261
|
+
i0.ɵɵrepeater(ctx_r0.RecentResolvedRequests);
|
|
262
|
+
} }
|
|
263
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_20_Template(rf, ctx) { if (rf & 1) {
|
|
264
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
265
|
+
i0.ɵɵelementStart(0, "div", 29)(1, "mj-filter-chip", 63);
|
|
266
|
+
i0.ɵɵlistener("Clicked", function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_20_Template_mj_filter_chip_Clicked_1_listener() { i0.ɵɵrestoreView(_r10); const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.ToggleShowFiredRoutines()); });
|
|
267
|
+
i0.ɵɵelementEnd()();
|
|
268
|
+
} if (rf & 2) {
|
|
269
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
270
|
+
i0.ɵɵadvance();
|
|
271
|
+
i0.ɵɵproperty("Count", ctx_r0.FiredRoutineCount)("Active", ctx_r0.ShowFiredRoutines);
|
|
272
|
+
} }
|
|
273
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_21_Template(rf, ctx) { if (rf & 1) {
|
|
274
|
+
i0.ɵɵelement(0, "mj-empty-state", 30);
|
|
275
|
+
} }
|
|
276
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
|
|
277
|
+
i0.ɵɵelementStart(0, "p", 70);
|
|
278
|
+
i0.ɵɵtext(1);
|
|
279
|
+
i0.ɵɵelementEnd();
|
|
280
|
+
} if (rf & 2) {
|
|
281
|
+
const routine_r12 = i0.ɵɵnextContext().$implicit;
|
|
282
|
+
i0.ɵɵadvance();
|
|
283
|
+
i0.ɵɵtextInterpolate(routine_r12.Description);
|
|
284
|
+
} }
|
|
285
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
286
|
+
i0.ɵɵelementStart(0, "div")(1, "strong");
|
|
287
|
+
i0.ɵɵtext(2, "Fired:");
|
|
288
|
+
i0.ɵɵelementEnd();
|
|
289
|
+
i0.ɵɵtext(3);
|
|
290
|
+
i0.ɵɵpipe(4, "date");
|
|
291
|
+
i0.ɵɵelementStart(5, "span", 82);
|
|
292
|
+
i0.ɵɵtext(6, "one-time wake, will not fire again");
|
|
293
|
+
i0.ɵɵelementEnd()();
|
|
294
|
+
} if (rf & 2) {
|
|
295
|
+
const routine_r12 = i0.ɵɵnextContext().$implicit;
|
|
296
|
+
i0.ɵɵadvance(3);
|
|
297
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(4, 1, routine_r12.LastRunAt, "medium"), " ");
|
|
298
|
+
} }
|
|
299
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_13_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
300
|
+
i0.ɵɵtext(0);
|
|
301
|
+
i0.ɵɵpipe(1, "date");
|
|
302
|
+
} if (rf & 2) {
|
|
303
|
+
const routine_r12 = i0.ɵɵnextContext(2).$implicit;
|
|
304
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(1, 1, routine_r12.NextRunAt, "medium"), " ");
|
|
305
|
+
} }
|
|
306
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_13_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
307
|
+
i0.ɵɵtext(0, " Not scheduled ");
|
|
308
|
+
} }
|
|
309
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_13_Template(rf, ctx) { if (rf & 1) {
|
|
310
|
+
i0.ɵɵelementStart(0, "div")(1, "strong");
|
|
311
|
+
i0.ɵɵtext(2, "Next Wake:");
|
|
312
|
+
i0.ɵɵelementEnd();
|
|
313
|
+
i0.ɵɵconditionalCreate(3, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_13_Conditional_3_Template, 2, 4)(4, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_13_Conditional_4_Template, 1, 0);
|
|
314
|
+
i0.ɵɵelementEnd();
|
|
315
|
+
} if (rf & 2) {
|
|
316
|
+
const routine_r12 = i0.ɵɵnextContext().$implicit;
|
|
317
|
+
i0.ɵɵadvance(3);
|
|
318
|
+
i0.ɵɵconditional(routine_r12.NextRunAt ? 3 : 4);
|
|
319
|
+
} }
|
|
320
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_14_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
321
|
+
i0.ɵɵelementStart(0, "span");
|
|
322
|
+
i0.ɵɵtext(1);
|
|
323
|
+
i0.ɵɵelementEnd();
|
|
324
|
+
} if (rf & 2) {
|
|
325
|
+
const routine_r12 = i0.ɵɵnextContext(2).$implicit;
|
|
326
|
+
i0.ɵɵadvance();
|
|
327
|
+
i0.ɵɵtextInterpolate1("(", routine_r12.Timezone, ")");
|
|
328
|
+
} }
|
|
329
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
330
|
+
i0.ɵɵelementStart(0, "div")(1, "strong");
|
|
331
|
+
i0.ɵɵtext(2, "Cron:");
|
|
332
|
+
i0.ɵɵelementEnd();
|
|
333
|
+
i0.ɵɵelementStart(3, "code");
|
|
334
|
+
i0.ɵɵtext(4);
|
|
335
|
+
i0.ɵɵelementEnd();
|
|
336
|
+
i0.ɵɵconditionalCreate(5, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_14_Conditional_5_Template, 2, 1, "span");
|
|
337
|
+
i0.ɵɵelementEnd();
|
|
338
|
+
} if (rf & 2) {
|
|
339
|
+
const routine_r12 = i0.ɵɵnextContext().$implicit;
|
|
340
|
+
i0.ɵɵadvance(4);
|
|
341
|
+
i0.ɵɵtextInterpolate(routine_r12.CronExpression);
|
|
342
|
+
i0.ɵɵadvance();
|
|
343
|
+
i0.ɵɵconditional(routine_r12.Timezone ? 5 : -1);
|
|
344
|
+
} }
|
|
345
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_15_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
346
|
+
i0.ɵɵelementStart(0, "span", 35);
|
|
347
|
+
i0.ɵɵtext(1);
|
|
348
|
+
i0.ɵɵelementEnd();
|
|
349
|
+
} if (rf & 2) {
|
|
350
|
+
const routine_r12 = i0.ɵɵnextContext(2).$implicit;
|
|
351
|
+
i0.ɵɵadvance();
|
|
352
|
+
i0.ɵɵtextInterpolate(routine_r12.LastRunStatus);
|
|
353
|
+
} }
|
|
354
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
355
|
+
i0.ɵɵelementStart(0, "div")(1, "strong");
|
|
356
|
+
i0.ɵɵtext(2, "Last Run:");
|
|
357
|
+
i0.ɵɵelementEnd();
|
|
358
|
+
i0.ɵɵtext(3);
|
|
359
|
+
i0.ɵɵpipe(4, "date");
|
|
360
|
+
i0.ɵɵconditionalCreate(5, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_15_Conditional_5_Template, 2, 1, "span", 35);
|
|
361
|
+
i0.ɵɵelementEnd();
|
|
362
|
+
} if (rf & 2) {
|
|
363
|
+
const routine_r12 = i0.ɵɵnextContext().$implicit;
|
|
364
|
+
i0.ɵɵadvance(3);
|
|
365
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(4, 2, routine_r12.LastRunAt, "short"), " ");
|
|
366
|
+
i0.ɵɵadvance(2);
|
|
367
|
+
i0.ɵɵconditional(routine_r12.LastRunStatus ? 5 : -1);
|
|
368
|
+
} }
|
|
369
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_26_Conditional_1_Template(rf, ctx) { if (rf & 1) {
|
|
370
|
+
i0.ɵɵelement(0, "i", 84);
|
|
371
|
+
i0.ɵɵtext(1, " Pause ");
|
|
372
|
+
} }
|
|
373
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_26_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
374
|
+
i0.ɵɵelement(0, "i", 85);
|
|
375
|
+
i0.ɵɵtext(1, " Resume ");
|
|
376
|
+
} }
|
|
377
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_26_Template(rf, ctx) { if (rf & 1) {
|
|
378
|
+
const _r13 = i0.ɵɵgetCurrentView();
|
|
379
|
+
i0.ɵɵelementStart(0, "button", 83);
|
|
380
|
+
i0.ɵɵlistener("click", function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_26_Template_button_click_0_listener($event) { i0.ɵɵrestoreView(_r13); const routine_r12 = i0.ɵɵnextContext().$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.ToggleRoutineStatus(routine_r12, $event)); });
|
|
381
|
+
i0.ɵɵconditionalCreate(1, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_26_Conditional_1_Template, 2, 0)(2, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_26_Conditional_2_Template, 2, 0);
|
|
382
|
+
i0.ɵɵelementEnd();
|
|
383
|
+
} if (rf & 2) {
|
|
384
|
+
const routine_r12 = i0.ɵɵnextContext().$implicit;
|
|
385
|
+
const ctx_r0 = i0.ɵɵnextContext(3);
|
|
386
|
+
i0.ɵɵproperty("disabled", ctx_r0.BusyRoutineID === routine_r12.ID);
|
|
387
|
+
i0.ɵɵadvance();
|
|
388
|
+
i0.ɵɵconditional(routine_r12.Status === "Active" ? 1 : 2);
|
|
389
|
+
} }
|
|
390
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Template(rf, ctx) { if (rf & 1) {
|
|
391
|
+
const _r11 = i0.ɵɵgetCurrentView();
|
|
392
|
+
i0.ɵɵelementStart(0, "div", 65)(1, "div", 66)(2, "div")(3, "div", 67)(4, "h4", 68);
|
|
393
|
+
i0.ɵɵtext(5);
|
|
394
|
+
i0.ɵɵelementEnd();
|
|
395
|
+
i0.ɵɵelementStart(6, "span", 69);
|
|
396
|
+
i0.ɵɵtext(7);
|
|
397
|
+
i0.ɵɵelementEnd();
|
|
398
|
+
i0.ɵɵelementStart(8, "span", 35);
|
|
399
|
+
i0.ɵɵtext(9);
|
|
400
|
+
i0.ɵɵelementEnd()();
|
|
401
|
+
i0.ɵɵconditionalCreate(10, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_10_Template, 2, 1, "p", 70);
|
|
402
|
+
i0.ɵɵelementEnd()();
|
|
403
|
+
i0.ɵɵelementStart(11, "div", 71);
|
|
404
|
+
i0.ɵɵconditionalCreate(12, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_12_Template, 7, 4, "div")(13, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_13_Template, 5, 1, "div");
|
|
405
|
+
i0.ɵɵconditionalCreate(14, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_14_Template, 6, 2, "div");
|
|
406
|
+
i0.ɵɵconditionalCreate(15, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_15_Template, 6, 5, "div");
|
|
407
|
+
i0.ɵɵelementEnd();
|
|
408
|
+
i0.ɵɵelementStart(16, "div", 72)(17, "button", 73);
|
|
409
|
+
i0.ɵɵlistener("click", function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Template_button_click_17_listener($event) { const routine_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.OpenBriefingReader(routine_r12, $event)); });
|
|
410
|
+
i0.ɵɵelement(18, "i", 74);
|
|
411
|
+
i0.ɵɵtext(19, " Read Briefing ");
|
|
412
|
+
i0.ɵɵelementEnd();
|
|
413
|
+
i0.ɵɵelementStart(20, "button", 75);
|
|
414
|
+
i0.ɵɵlistener("click", function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Template_button_click_20_listener($event) { const routine_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.OpenRoutineBriefing(routine_r12, $event)); });
|
|
415
|
+
i0.ɵɵelement(21, "i", 76);
|
|
416
|
+
i0.ɵɵtext(22, " Open in Chat ");
|
|
417
|
+
i0.ɵɵelementEnd();
|
|
418
|
+
i0.ɵɵelementStart(23, "button", 77);
|
|
419
|
+
i0.ɵɵlistener("click", function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Template_button_click_23_listener($event) { const routine_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.TriggerWakeNow(routine_r12, $event)); });
|
|
420
|
+
i0.ɵɵelement(24, "i", 78);
|
|
421
|
+
i0.ɵɵtext(25, " Wake Now ");
|
|
422
|
+
i0.ɵɵelementEnd();
|
|
423
|
+
i0.ɵɵconditionalCreate(26, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Conditional_26_Template, 3, 2, "button", 79);
|
|
424
|
+
i0.ɵɵelementStart(27, "button", 80);
|
|
425
|
+
i0.ɵɵlistener("click", function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Template_button_click_27_listener($event) { const routine_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r0 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r0.OpenRoutineEntityRecord(routine_r12.ID, $event)); });
|
|
426
|
+
i0.ɵɵelement(28, "i", 81);
|
|
427
|
+
i0.ɵɵtext(29, " Open Record ");
|
|
428
|
+
i0.ɵɵelementEnd()()();
|
|
429
|
+
} if (rf & 2) {
|
|
430
|
+
const routine_r12 = ctx.$implicit;
|
|
431
|
+
const ctx_r0 = i0.ɵɵnextContext(3);
|
|
432
|
+
i0.ɵɵclassProp("cos-routine-card--fired", ctx_r0.IsSpentRoutine(routine_r12));
|
|
433
|
+
i0.ɵɵadvance(5);
|
|
434
|
+
i0.ɵɵtextInterpolate(routine_r12.Name);
|
|
435
|
+
i0.ɵɵadvance();
|
|
436
|
+
i0.ɵɵclassMap(i0.ɵɵinterpolate1("cos-status-chip cos-status-chip--", ctx_r0.RoutineStatusLabel(routine_r12).toLowerCase()));
|
|
437
|
+
i0.ɵɵproperty("title", ctx_r0.IsSpentRoutine(routine_r12) ? "A one-time wake that has run. It will not fire again." : "");
|
|
438
|
+
i0.ɵɵadvance();
|
|
439
|
+
i0.ɵɵtextInterpolate1(" ", ctx_r0.RoutineStatusLabel(routine_r12), " ");
|
|
440
|
+
i0.ɵɵadvance(2);
|
|
441
|
+
i0.ɵɵtextInterpolate1(" ", routine_r12.ScheduleMode, " ");
|
|
442
|
+
i0.ɵɵadvance();
|
|
443
|
+
i0.ɵɵconditional(routine_r12.Description ? 10 : -1);
|
|
444
|
+
i0.ɵɵadvance(2);
|
|
445
|
+
i0.ɵɵconditional(ctx_r0.IsSpentRoutine(routine_r12) ? 12 : 13);
|
|
446
|
+
i0.ɵɵadvance(2);
|
|
447
|
+
i0.ɵɵconditional(routine_r12.CronExpression ? 14 : -1);
|
|
448
|
+
i0.ɵɵadvance();
|
|
449
|
+
i0.ɵɵconditional(routine_r12.LastRunAt ? 15 : -1);
|
|
450
|
+
i0.ɵɵadvance(2);
|
|
451
|
+
i0.ɵɵproperty("disabled", !ctx_r0.CanOpenBriefing(routine_r12))("title", ctx_r0.CanOpenBriefing(routine_r12) ? "Read this routine's briefings here" : "No briefing yet: the routine has not run");
|
|
452
|
+
i0.ɵɵadvance(3);
|
|
453
|
+
i0.ɵɵproperty("disabled", !ctx_r0.CanOpenBriefing(routine_r12));
|
|
454
|
+
i0.ɵɵadvance(3);
|
|
455
|
+
i0.ɵɵproperty("disabled", ctx_r0.BusyRoutineID === routine_r12.ID);
|
|
456
|
+
i0.ɵɵadvance(3);
|
|
457
|
+
i0.ɵɵconditional(!ctx_r0.IsSpentRoutine(routine_r12) ? 26 : -1);
|
|
458
|
+
} }
|
|
459
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_Template(rf, ctx) { if (rf & 1) {
|
|
460
|
+
i0.ɵɵelementStart(0, "div", 26);
|
|
461
|
+
i0.ɵɵrepeaterCreate(1, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_For_2_Template, 30, 18, "div", 64, _forTrack0);
|
|
462
|
+
i0.ɵɵelementEnd();
|
|
463
|
+
} if (rf & 2) {
|
|
464
|
+
const ctx_r0 = i0.ɵɵnextContext(2);
|
|
465
|
+
i0.ɵɵadvance();
|
|
466
|
+
i0.ɵɵrepeater(ctx_r0.FilteredRoutines);
|
|
467
|
+
} }
|
|
468
|
+
function ChiefOfStaffApprovalsComponent_Conditional_12_Template(rf, ctx) { if (rf & 1) {
|
|
469
|
+
i0.ɵɵelementStart(0, "div", 10)(1, "section", 20)(2, "div", 21)(3, "div")(4, "h3", 22);
|
|
470
|
+
i0.ɵɵelement(5, "i", 23);
|
|
471
|
+
i0.ɵɵtext(6);
|
|
472
|
+
i0.ɵɵelementEnd();
|
|
473
|
+
i0.ɵɵelementStart(7, "p", 24);
|
|
474
|
+
i0.ɵɵtext(8, " Approve or reject escalations from your Chief of Staff ");
|
|
475
|
+
i0.ɵɵelementEnd()()();
|
|
476
|
+
i0.ɵɵconditionalCreate(9, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_9_Template, 1, 0, "mj-empty-state", 25)(10, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_10_Template, 3, 0, "div", 26);
|
|
477
|
+
i0.ɵɵconditionalCreate(11, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_11_Template, 6, 0, "div", 27);
|
|
478
|
+
i0.ɵɵelementEnd();
|
|
479
|
+
i0.ɵɵelementStart(12, "section", 20)(13, "div", 21)(14, "div")(15, "h3", 22);
|
|
480
|
+
i0.ɵɵelement(16, "i", 28);
|
|
481
|
+
i0.ɵɵtext(17);
|
|
482
|
+
i0.ɵɵelementEnd();
|
|
483
|
+
i0.ɵɵelementStart(18, "p", 24);
|
|
484
|
+
i0.ɵɵtext(19, " Scheduled AgentWake routines in MJ: User Routines ");
|
|
485
|
+
i0.ɵɵelementEnd()()();
|
|
486
|
+
i0.ɵɵconditionalCreate(20, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_20_Template, 2, 2, "div", 29);
|
|
487
|
+
i0.ɵɵconditionalCreate(21, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_21_Template, 1, 0, "mj-empty-state", 30)(22, ChiefOfStaffApprovalsComponent_Conditional_12_Conditional_22_Template, 3, 0, "div", 26);
|
|
488
|
+
i0.ɵɵelementEnd()();
|
|
489
|
+
} if (rf & 2) {
|
|
490
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
491
|
+
i0.ɵɵadvance(6);
|
|
492
|
+
i0.ɵɵtextInterpolate1(" Pending Agent Approvals (", ctx_r0.PendingRequests.length, ") ");
|
|
493
|
+
i0.ɵɵadvance(3);
|
|
494
|
+
i0.ɵɵconditional(ctx_r0.PendingRequests.length === 0 ? 9 : 10);
|
|
495
|
+
i0.ɵɵadvance(2);
|
|
496
|
+
i0.ɵɵconditional(ctx_r0.RecentResolvedRequests.length > 0 ? 11 : -1);
|
|
497
|
+
i0.ɵɵadvance(6);
|
|
498
|
+
i0.ɵɵtextInterpolate1(" Autonomous Wake Routines (", ctx_r0.FilteredRoutines.length, ") ");
|
|
499
|
+
i0.ɵɵadvance(3);
|
|
500
|
+
i0.ɵɵconditional(ctx_r0.FiredRoutineCount > 0 ? 20 : -1);
|
|
501
|
+
i0.ɵɵadvance();
|
|
502
|
+
i0.ɵɵconditional(ctx_r0.FilteredRoutines.length === 0 ? 21 : 22);
|
|
503
|
+
} }
|
|
504
|
+
function ChiefOfStaffApprovalsComponent_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
505
|
+
i0.ɵɵelementStart(0, "div", 12);
|
|
506
|
+
i0.ɵɵelement(1, "mj-conversation-chat-area", 86);
|
|
507
|
+
i0.ɵɵelementEnd();
|
|
508
|
+
} if (rf & 2) {
|
|
509
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
510
|
+
i0.ɵɵadvance();
|
|
511
|
+
i0.ɵɵproperty("Provider", ctx_r0.Provider)("EnvironmentId", ctx_r0.BriefingEnvironmentId)("CurrentUser", ctx_r0.ProviderToUse.CurrentUser)("Conversation", ctx_r0.BriefingConversation)("ConversationId", ctx_r0.BriefingConversationId)("IsNewConversation", false)("SuppressNewConversationEmptyState", true)("AllowMentions", false)("OverlayMode", false)("ShowExportButton", false)("ShowShareButton", false)("ShowArtifactIndicator", false)("ShowAgentPicker", false)("ShowAgentModePicker", false)("ReadOnly", true)("ApplicationId", ctx_r0.BriefingApplicationId);
|
|
512
|
+
} }
|
|
513
|
+
function ChiefOfStaffApprovalsComponent_Conditional_15_Template(rf, ctx) { if (rf & 1) {
|
|
514
|
+
const _r14 = i0.ɵɵgetCurrentView();
|
|
515
|
+
i0.ɵɵelementStart(0, "mj-agent-request-dialog", 87);
|
|
516
|
+
i0.ɵɵlistener("Close", function ChiefOfStaffApprovalsComponent_Conditional_15_Template_mj_agent_request_dialog_Close_0_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.OnRequestDialogClose($event)); });
|
|
517
|
+
i0.ɵɵelementEnd();
|
|
518
|
+
} if (rf & 2) {
|
|
519
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
520
|
+
i0.ɵɵproperty("Visible", ctx_r0.ShowRequestDialog)("Request", ctx_r0.SelectedRequest);
|
|
521
|
+
} }
|
|
522
|
+
/**
|
|
523
|
+
* The Chief of Staff application's Approvals & Wakes page: every pending approval with its
|
|
524
|
+
* recent decisions, and every wake routine with Wake Now, pause and its briefings. The search
|
|
525
|
+
* box filters both lists and round-trips through the `search` query param.
|
|
526
|
+
*/
|
|
527
|
+
let ChiefOfStaffApprovalsComponent = class ChiefOfStaffApprovalsComponent extends BaseChiefOfStaffPage {
|
|
528
|
+
Page = 'approvals-wakes';
|
|
529
|
+
initialParamsApplied = false;
|
|
530
|
+
/** When true, the wake list also shows spent one-shots (reminders that have fired). Off by default. */
|
|
531
|
+
ShowFiredRoutines = false;
|
|
532
|
+
get RecentResolvedRequests() {
|
|
533
|
+
return this.Requests.filter((r) => r.Status !== 'Requested' && IsApprovalRequest(r)).slice(0, 8);
|
|
534
|
+
}
|
|
535
|
+
/** Spent one-shots: reminders and one-time wakes that have already fired. */
|
|
536
|
+
get FiredRoutineCount() {
|
|
537
|
+
return this.Routines.filter((r) => IsSpentOneShotRoutine(r)).length;
|
|
538
|
+
}
|
|
539
|
+
get FilteredRoutines() {
|
|
540
|
+
const search = this.SearchText.trim().toLowerCase();
|
|
541
|
+
const base = this.ShowFiredRoutines ? this.SortedRoutines : this.UpcomingRoutines;
|
|
542
|
+
if (!search) {
|
|
543
|
+
return base;
|
|
544
|
+
}
|
|
545
|
+
return base.filter((r) => r.Name.toLowerCase().includes(search) ||
|
|
546
|
+
(r.Description ?? '').toLowerCase().includes(search));
|
|
547
|
+
}
|
|
548
|
+
ToggleShowFiredRoutines() {
|
|
549
|
+
this.ShowFiredRoutines = !this.ShowFiredRoutines;
|
|
550
|
+
this.cdr.markForCheck();
|
|
551
|
+
}
|
|
552
|
+
OnSearchChange(value) {
|
|
553
|
+
this.SearchText = value;
|
|
554
|
+
this.syncQueryParams();
|
|
555
|
+
this.publishAgentContext();
|
|
556
|
+
this.cdr.markForCheck();
|
|
557
|
+
}
|
|
558
|
+
OnPageInit() {
|
|
559
|
+
this.SearchText = this.GetQueryParams()['search'] ?? '';
|
|
560
|
+
this.initialParamsApplied = true;
|
|
561
|
+
}
|
|
562
|
+
OnQueryParamsChanged(params, _source) {
|
|
563
|
+
this.SearchText = params['search'] ?? '';
|
|
564
|
+
this.publishAgentContext();
|
|
565
|
+
this.cdr.markForCheck();
|
|
566
|
+
}
|
|
567
|
+
syncQueryParams() {
|
|
568
|
+
if (!this.initialParamsApplied) {
|
|
569
|
+
return;
|
|
570
|
+
}
|
|
571
|
+
this.UpdateQueryParams({
|
|
572
|
+
search: this.SearchText.trim().length > 0 ? this.SearchText.trim() : null,
|
|
573
|
+
});
|
|
574
|
+
}
|
|
575
|
+
PageAgentTools() {
|
|
576
|
+
return [
|
|
577
|
+
{
|
|
578
|
+
Name: 'SearchChiefOfStaffApprovals',
|
|
579
|
+
Description: 'Filter the pending requests and wake routines on the Approvals & Wakes page by search text. Pass empty string to clear.',
|
|
580
|
+
ParameterSchema: {
|
|
581
|
+
type: 'object',
|
|
582
|
+
properties: {
|
|
583
|
+
query: {
|
|
584
|
+
type: 'string',
|
|
585
|
+
description: 'Search text; empty string clears.',
|
|
586
|
+
},
|
|
587
|
+
},
|
|
588
|
+
required: ['query'],
|
|
589
|
+
},
|
|
590
|
+
Handler: async (params) => {
|
|
591
|
+
const check = ValidateSearchQueryParam(params['query']);
|
|
592
|
+
if (!check.ok) {
|
|
593
|
+
return check.result;
|
|
594
|
+
}
|
|
595
|
+
this.OnSearchChange(check.value);
|
|
596
|
+
return {
|
|
597
|
+
Success: true,
|
|
598
|
+
Data: {
|
|
599
|
+
SearchText: this.SearchText,
|
|
600
|
+
PendingRequestCount: this.PendingRequests.length,
|
|
601
|
+
VisibleRoutineCount: this.FilteredRoutines.length,
|
|
602
|
+
},
|
|
603
|
+
};
|
|
604
|
+
},
|
|
605
|
+
},
|
|
606
|
+
];
|
|
607
|
+
}
|
|
608
|
+
static ɵfac = /*@__PURE__*/ (() => { let ɵChiefOfStaffApprovalsComponent_BaseFactory; return function ChiefOfStaffApprovalsComponent_Factory(__ngFactoryType__) { return (ɵChiefOfStaffApprovalsComponent_BaseFactory || (ɵChiefOfStaffApprovalsComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ChiefOfStaffApprovalsComponent)))(__ngFactoryType__ || ChiefOfStaffApprovalsComponent); }; })();
|
|
609
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ChiefOfStaffApprovalsComponent, selectors: [["mj-chief-of-staff-approvals"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 16, vars: 13, consts: [["Title", "Approvals & Wakes", "Subtitle", "Decide on your Chief of Staff's requests and manage its wake routines", "Icon", "fa-solid fa-bell-concierge"], ["meta", ""], ["Icon", "fa-solid fa-bell-concierge", "Label", "pending approvals", "Variant", "warning", 3, "Count"], ["Icon", "fa-solid fa-circle-check", "Label", "pending approvals", "Variant", "success", 3, "Count"], ["Icon", "fa-solid fa-clock-rotate-left", "Label", "active wakes", "Variant", "info", 3, "Count"], ["toolbar", ""], ["Placeholder", "Filter requests or routines...", 3, "ValueChange", "Value"], [3, "Clicked", "Loading", "ShowLabel"], ["role", "status", 1, "cos-banner", 3, "cos-banner--success", "cos-banner--error"], [1, "cos-loading"], [1, "cos-overview-columns"], ["Mode", "slide", 3, "Closed", "Title", "Visible", "Resizable", "WidthPx"], [1, "cos-briefing-reader"], [3, "Visible", "Request"], ["role", "status", 1, "cos-banner"], [1, "cos-banner__content"], [1, "fa-solid"], ["mjButton", "", "variant", "flat", "size", "sm", "aria-label", "Dismiss notification", 3, "click"], [1, "fa-solid", "fa-xmark"], ["text", "Loading approvals and wakes..."], [1, "cos-panel"], [1, "cos-panel__header"], [1, "cos-panel__title"], [1, "fa-solid", "fa-bell-concierge"], [1, "cos-panel__subtitle"], ["Size", "compact", "Variant", "success", "Icon", "fa-solid fa-circle-check", "Message", "Inbox Zero \u2014 no pending requests awaiting your decision."], [1, "cos-stack"], [1, "cos-resolved-section"], [1, "fa-solid", "fa-clock-rotate-left"], [1, "cos-routines-toggle"], ["Size", "compact", "Icon", "fa-regular fa-clock", "Message", "No AgentWake routines found for your Chief of Staff."], [1, "cos-request-card"], [1, "cos-request-card", 3, "click"], [1, "cos-request-card__top"], [1, "cos-request-card__badges"], [1, "cos-meta-badge"], [1, "cos-status-chip", "cos-status-chip--requested"], [1, "cos-status-chip", "cos-status-chip--disabled"], [1, "cos-timestamp"], [1, "cos-request-card__text"], [1, "cos-request-card__actions"], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click", "disabled"], [1, "fa-solid", "fa-check"], ["mjButton", "", "variant", "danger", "size", "sm", 3, "click", "disabled"], ["mjButton", "", "variant", "outline", "size", "sm", 3, "click"], [1, "fa-solid", "fa-expand"], [1, "cos-email-draft"], [1, "fa-solid", "fa-tag"], [1, "cos-email-draft", 3, "click"], ["Size", "sm", 3, "Bare"], ["mjAccordionTitle", ""], ["mjAccordionActions", ""], ["mjAccordionBody", ""], [1, "fa-solid", "fa-envelope"], ["mjButton", "", "variant", "outline", "size", "sm", "title", "Copy To, Subject and body as plain text for your mail client", 3, "click"], [1, "fa-regular", "fa-copy"], [1, "cos-email-draft__meta"], [1, "cos-email-draft__body"], [1, "cos-resolved-section__title"], [1, "cos-resolved-row"], [1, "cos-resolved-row", 3, "click"], [1, "cos-resolved-row__main"], [1, "cos-resolved-row__text"], ["Label", "Show fired", "Icon", "fa-solid fa-clock-rotate-left", 3, "Clicked", "Count", "Active"], [1, "cos-routine-card", 3, "cos-routine-card--fired"], [1, "cos-routine-card"], [1, "cos-routine-card__header"], [1, "cos-routine-card__title-row"], [1, "cos-routine-card__name"], [3, "title"], [1, "cos-routine-card__desc"], [1, "cos-routine-card__schedule"], [1, "cos-routine-card__actions"], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click", "disabled", "title"], [1, "fa-solid", "fa-book-open"], ["mjButton", "", "variant", "outline", "size", "sm", "title", "Open this routine's conversation in the Chat app", 3, "click", "disabled"], [1, "fa-solid", "fa-comments"], ["mjButton", "", "variant", "outline", "size", "sm", "title", "Run this wake now. Its scheduled time is not changed.", 3, "click", "disabled"], [1, "fa-solid", "fa-bolt"], ["mjButton", "", "variant", "outline", "size", "sm", 3, "disabled"], ["mjButton", "", "variant", "flat", "size", "sm", 3, "click"], [1, "fa-solid", "fa-arrow-up-right-from-square"], [1, "cos-routine-card__fired-note"], ["mjButton", "", "variant", "outline", "size", "sm", 3, "click", "disabled"], [1, "fa-solid", "fa-pause"], [1, "fa-solid", "fa-play"], ["ReadOnlyMessage", "Briefings are written by the wake routine. To change what it checks or when, ask your Chief of Staff in chat or use the Routines app.", "ApplicationScope", "Application", 3, "Provider", "EnvironmentId", "CurrentUser", "Conversation", "ConversationId", "IsNewConversation", "SuppressNewConversationEmptyState", "AllowMentions", "OverlayMode", "ShowExportButton", "ShowShareButton", "ShowArtifactIndicator", "ShowAgentPicker", "ShowAgentModePicker", "ReadOnly", "ApplicationId"], [3, "Close", "Visible", "Request"]], template: function ChiefOfStaffApprovalsComponent_Template(rf, ctx) { if (rf & 1) {
|
|
610
|
+
i0.ɵɵelementStart(0, "mj-page-layout")(1, "mj-page-header", 0);
|
|
611
|
+
i0.ɵɵelementContainerStart(2, 1);
|
|
612
|
+
i0.ɵɵconditionalCreate(3, ChiefOfStaffApprovalsComponent_Conditional_3_Template, 1, 1, "mj-stat-badge", 2)(4, ChiefOfStaffApprovalsComponent_Conditional_4_Template, 1, 1, "mj-stat-badge", 3);
|
|
613
|
+
i0.ɵɵelement(5, "mj-stat-badge", 4);
|
|
614
|
+
i0.ɵɵelementContainerEnd();
|
|
615
|
+
i0.ɵɵelementContainerStart(6, 5);
|
|
616
|
+
i0.ɵɵelementStart(7, "mj-page-search", 6);
|
|
617
|
+
i0.ɵɵlistener("ValueChange", function ChiefOfStaffApprovalsComponent_Template_mj_page_search_ValueChange_7_listener($event) { return ctx.OnSearchChange($event); });
|
|
618
|
+
i0.ɵɵelementEnd();
|
|
619
|
+
i0.ɵɵelementStart(8, "mj-refresh-button", 7);
|
|
620
|
+
i0.ɵɵlistener("Clicked", function ChiefOfStaffApprovalsComponent_Template_mj_refresh_button_Clicked_8_listener() { return ctx.LoadChiefOfStaffData(); });
|
|
621
|
+
i0.ɵɵelementEnd();
|
|
622
|
+
i0.ɵɵelementContainerEnd();
|
|
623
|
+
i0.ɵɵelementEnd();
|
|
624
|
+
i0.ɵɵelementStart(9, "mj-page-body");
|
|
625
|
+
i0.ɵɵconditionalCreate(10, ChiefOfStaffApprovalsComponent_Conditional_10_Template, 7, 9, "div", 8);
|
|
626
|
+
i0.ɵɵconditionalCreate(11, ChiefOfStaffApprovalsComponent_Conditional_11_Template, 2, 0, "div", 9)(12, ChiefOfStaffApprovalsComponent_Conditional_12_Template, 23, 6, "div", 10);
|
|
627
|
+
i0.ɵɵelementEnd();
|
|
628
|
+
i0.ɵɵelementStart(13, "mj-slide-panel", 11);
|
|
629
|
+
i0.ɵɵlistener("Closed", function ChiefOfStaffApprovalsComponent_Template_mj_slide_panel_Closed_13_listener() { return ctx.CloseBriefingReader(); });
|
|
630
|
+
i0.ɵɵconditionalCreate(14, ChiefOfStaffApprovalsComponent_Conditional_14_Template, 2, 16, "div", 12);
|
|
631
|
+
i0.ɵɵelementEnd()();
|
|
632
|
+
i0.ɵɵconditionalCreate(15, ChiefOfStaffApprovalsComponent_Conditional_15_Template, 1, 2, "mj-agent-request-dialog", 13);
|
|
633
|
+
} if (rf & 2) {
|
|
634
|
+
i0.ɵɵadvance(3);
|
|
635
|
+
i0.ɵɵconditional(ctx.Metrics.PendingApprovalCount > 0 ? 3 : 4);
|
|
636
|
+
i0.ɵɵadvance(2);
|
|
637
|
+
i0.ɵɵproperty("Count", ctx.Metrics.ActiveWakeRoutineCount);
|
|
638
|
+
i0.ɵɵadvance(2);
|
|
639
|
+
i0.ɵɵproperty("Value", ctx.SearchText);
|
|
640
|
+
i0.ɵɵadvance();
|
|
641
|
+
i0.ɵɵproperty("Loading", ctx.IsLoading)("ShowLabel", true);
|
|
642
|
+
i0.ɵɵadvance(2);
|
|
643
|
+
i0.ɵɵconditional(ctx.FeedbackBanner ? 10 : -1);
|
|
644
|
+
i0.ɵɵadvance();
|
|
645
|
+
i0.ɵɵconditional(ctx.IsLoading ? 11 : 12);
|
|
646
|
+
i0.ɵɵadvance(2);
|
|
647
|
+
i0.ɵɵproperty("Title", (ctx.BriefingRoutine == null ? null : ctx.BriefingRoutine.Name) ?? "Briefings")("Visible", ctx.IsBriefingReaderOpen)("Resizable", true)("WidthPx", 760);
|
|
648
|
+
i0.ɵɵadvance();
|
|
649
|
+
i0.ɵɵconditional(ctx.IsBriefingReaderOpen ? 14 : -1);
|
|
650
|
+
i0.ɵɵadvance();
|
|
651
|
+
i0.ɵɵconditional(ctx.ShowRequestDialog && ctx.SelectedRequest ? 15 : -1);
|
|
652
|
+
} }, dependencies: [i1.ConversationChatAreaComponent, i2.LoadingComponent, i3.AgentRequestDialogComponent, i4.MJButtonDirective, i4.MJPageHeaderComponent, i4.MJPageLayoutComponent, i4.MJPageBodyComponent, i4.MJPageSearchComponent, i4.MJFilterChipComponent, i4.MJStatBadgeComponent, i4.MJRefreshButtonComponent, i4.MJEmptyStateComponent, i4.MJAccordionPanelComponent, i4.MJAccordionTitleDirective, i4.MJAccordionActionsDirective, i4.MJAccordionBodyDirective, i4.MjSlidePanelComponent, i5.DatePipe], styles: ["[_nghost-%COMP%] {\n display: block;\n height: 100%;\n}\n\n.cos-loading[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 280px;\n}\n\n.cos-banner[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n padding: 12px 16px;\n margin-bottom: 16px;\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n font-size: 13px;\n}\n\n.cos-banner__content[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.cos-banner--success[_ngcontent-%COMP%] {\n background-color: var(--mj-status-success-bg);\n border-color: var(--mj-status-success);\n color: var(--mj-status-success);\n}\n\n.cos-banner--error[_ngcontent-%COMP%] {\n background-color: var(--mj-status-error-bg);\n border-color: var(--mj-status-error);\n color: var(--mj-status-error);\n}\n\n\n.cos-kpi-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n gap: 16px;\n margin-top: 16px;\n margin-bottom: 20px;\n}\n\n.cos-kpi-card[_ngcontent-%COMP%] {\n background-color: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n padding: 16px 18px;\n cursor: pointer;\n transition: border-color 0.15s ease, transform 0.15s ease;\n}\n\n.cos-kpi-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n}\n\n.cos-kpi-card__header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 8px;\n}\n\n.cos-kpi-card__label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-secondary);\n}\n\n.cos-kpi-card__icon[_ngcontent-%COMP%] {\n width: 34px;\n height: 34px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 15px;\n background-color: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.cos-kpi-card__icon--brand[_ngcontent-%COMP%] {\n background-color: var(--mj-bg-surface-sunken);\n color: var(--mj-brand-primary);\n}\n\n.cos-kpi-card__icon--success[_ngcontent-%COMP%] {\n background-color: var(--mj-status-success-bg);\n color: var(--mj-status-success);\n}\n\n.cos-kpi-card__icon--warning[_ngcontent-%COMP%] {\n background-color: var(--mj-status-warning-bg);\n color: var(--mj-status-warning);\n}\n\n.cos-kpi-card__value[_ngcontent-%COMP%] {\n font-size: 26px;\n font-weight: 700;\n color: var(--mj-text-primary);\n line-height: 1.2;\n}\n\n.cos-kpi-card__sub[_ngcontent-%COMP%] {\n margin-top: 4px;\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n\n.cos-overview-columns[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));\n gap: 20px;\n margin-top: 16px;\n}\n\n.cos-stack[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 14px;\n}\n\n.cos-panel[_ngcontent-%COMP%] {\n background-color: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n padding: 18px 20px;\n}\n\n.cos-panel__header[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 12px;\n margin-bottom: 16px;\n}\n\n.cos-panel__title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 15px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.cos-panel__subtitle[_ngcontent-%COMP%] {\n margin: 4px 0 0;\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n\n\n\n\n\n\n.cos-meta-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 2px 8px;\n border-radius: 6px;\n font-size: 11px;\n font-weight: 500;\n background-color: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.cos-status-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n border-radius: 999px;\n font-size: 11px;\n font-weight: 600;\n background-color: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.cos-status-chip--active[_ngcontent-%COMP%], \n.cos-status-chip--approved[_ngcontent-%COMP%] {\n background-color: var(--mj-status-success-bg);\n color: var(--mj-status-success);\n}\n\n.cos-status-chip--requested[_ngcontent-%COMP%], \n.cos-status-chip--paused[_ngcontent-%COMP%] {\n background-color: var(--mj-status-warning-bg);\n color: var(--mj-status-warning);\n}\n\n.cos-status-chip--rejected[_ngcontent-%COMP%], \n.cos-status-chip--disabled[_ngcontent-%COMP%] {\n background-color: var(--mj-status-error-bg);\n color: var(--mj-status-error);\n}\n\n\n.cos-status-chip--fired[_ngcontent-%COMP%] {\n background-color: var(--mj-bg-subtle);\n color: var(--mj-text-secondary);\n}\n\n.cos-routine-card--fired[_ngcontent-%COMP%] {\n opacity: 0.8;\n}\n\n.cos-routine-card__fired-note[_ngcontent-%COMP%] {\n margin-left: 8px;\n color: var(--mj-text-secondary);\n font-size: 0.85em;\n}\n\n.cos-routines-toggle[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n margin-bottom: 8px;\n}\n\n\n\n\n\n\n.cos-request-card[_ngcontent-%COMP%] {\n padding: 14px;\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n background-color: var(--mj-bg-surface);\n cursor: pointer;\n transition: border-color 0.15s ease;\n}\n\n.cos-request-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n}\n\n.cos-request-card__top[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n margin-bottom: 8px;\n}\n\n.cos-request-card__badges[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.cos-priority-tag[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n border-radius: 6px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.cos-priority-tag.priority-critical[_ngcontent-%COMP%], \n.cos-priority-tag.priority-high[_ngcontent-%COMP%] {\n background-color: var(--mj-status-error-bg);\n color: var(--mj-status-error);\n}\n\n.cos-priority-tag.priority-normal[_ngcontent-%COMP%] {\n background-color: var(--mj-status-warning-bg);\n color: var(--mj-status-warning);\n}\n\n.cos-priority-tag.priority-low[_ngcontent-%COMP%] {\n background-color: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.cos-timestamp[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--mj-text-muted);\n white-space: nowrap;\n}\n\n.cos-request-card__text[_ngcontent-%COMP%] {\n margin: 0 0 12px;\n font-size: 13px;\n color: var(--mj-text-primary);\n line-height: 1.45;\n}\n\n\n.cos-email-draft[_ngcontent-%COMP%] {\n margin-top: 10px;\n cursor: default;\n}\n\n.cos-email-draft__meta[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n font-size: 0.9em;\n color: var(--mj-text-secondary);\n word-break: break-word;\n}\n\n.cos-email-draft__body[_ngcontent-%COMP%] {\n margin: 8px 0 0;\n padding: 0;\n border: 0;\n background: transparent;\n font: inherit;\n white-space: pre-wrap;\n word-break: break-word;\n color: var(--mj-text-primary);\n}\n\n.cos-request-card__actions[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.cos-resolved-section[_ngcontent-%COMP%] {\n margin-top: 20px;\n padding-top: 16px;\n border-top: 1px solid var(--mj-border-subtle);\n}\n\n.cos-resolved-section__title[_ngcontent-%COMP%] {\n margin: 0 0 10px;\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-muted);\n}\n\n.cos-resolved-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n padding: 8px 10px;\n border-radius: 6px;\n background-color: var(--mj-bg-surface-sunken);\n cursor: pointer;\n}\n\n.cos-resolved-row__main[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n}\n\n.cos-resolved-row__text[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--mj-text-secondary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n\n.cos-routine-mini[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n padding: 12px 14px;\n border-radius: 8px;\n border: 1px solid var(--mj-border-subtle);\n background-color: var(--mj-bg-surface);\n}\n\n.cos-routine-mini__title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.cos-routine-mini__name[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.cos-routine-mini__meta[_ngcontent-%COMP%] {\n margin-top: 4px;\n font-size: 12px;\n color: var(--mj-text-muted);\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.cos-routine-card[_ngcontent-%COMP%] {\n padding: 16px;\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n background-color: var(--mj-bg-surface);\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.cos-routine-card__title-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.cos-routine-card__name[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.cos-routine-card__desc[_ngcontent-%COMP%] {\n margin: 4px 0 0;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.cos-routine-card__schedule[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 4px;\n font-size: 12px;\n color: var(--mj-text-secondary);\n padding: 10px 12px;\n border-radius: 6px;\n background-color: var(--mj-bg-surface-sunken);\n}\n\n.cos-routine-card__actions[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n\n.cos-governance-container[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 18px;\n margin-top: 16px;\n}\n\n.cos-governance-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: 12px;\n padding: 16px 20px;\n border-radius: 10px;\n background-color: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n}\n\n.cos-governance-header__title[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.cos-governance-header__subtitle[_ngcontent-%COMP%] {\n margin: 4px 0 0;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.cos-governance-header__actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.cos-status-segmented[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n}\n\n.cos-mode-cards[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n gap: 12px;\n margin-bottom: 16px;\n}\n\n.cos-mode-card[_ngcontent-%COMP%] {\n padding: 14px 16px;\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n background-color: var(--mj-bg-surface);\n cursor: pointer;\n transition: border-color 0.15s ease, background-color 0.15s ease;\n}\n\n.cos-mode-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-brand-primary);\n}\n\n.cos-mode-card--selected[_ngcontent-%COMP%] {\n border-color: var(--mj-brand-primary);\n background-color: var(--mj-bg-surface-sunken);\n}\n\n.cos-mode-card__top[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 6px;\n}\n\n.cos-mode-card__title[_ngcontent-%COMP%] {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.cos-mode-card__check[_ngcontent-%COMP%] {\n color: var(--mj-brand-primary);\n}\n\n.cos-mode-card__desc[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-secondary);\n line-height: 1.45;\n}\n\n.cos-form-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));\n gap: 14px;\n}\n\n.cos-form-grid--spaced[_ngcontent-%COMP%] {\n margin-top: 16px;\n}\n\n.cos-form-field[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.cos-form-field--full[_ngcontent-%COMP%] {\n grid-column: 1 / -1;\n}\n\n.cos-form-field__label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.cos-input[_ngcontent-%COMP%], \n.cos-textarea[_ngcontent-%COMP%] {\n width: 100%;\n padding: 8px 10px;\n border-radius: 6px;\n border: 1px solid var(--mj-border-default);\n background-color: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n font-size: 13px;\n font-family: inherit;\n box-sizing: border-box;\n}\n\n.cos-input[_ngcontent-%COMP%]:focus, \n.cos-textarea[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n}\n\n.cos-toggle-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.cos-toggle-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n padding: 12px 14px;\n border-radius: 8px;\n border: 1px solid var(--mj-border-subtle);\n background-color: var(--mj-bg-surface);\n cursor: pointer;\n}\n\n.cos-toggle-row__title[_ngcontent-%COMP%] {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.cos-toggle-row__desc[_ngcontent-%COMP%] {\n margin-top: 2px;\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n\n\n\n\n@keyframes _ngcontent-%COMP%_cosDrawerSlideIn {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0);\n }\n}\n\n\n.cos-briefing-reader[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n}\n\n.cos-briefing-reader[_ngcontent-%COMP%] mj-conversation-chat-area[_ngcontent-%COMP%] {\n flex: 1 1 auto;\n min-height: 0;\n}\n\n\n\n\n\n\n"], changeDetection: 0 });
|
|
653
|
+
};
|
|
654
|
+
ChiefOfStaffApprovalsComponent = __decorate([
|
|
655
|
+
RegisterClass(BaseResourceComponent, 'ChiefOfStaffApprovals')
|
|
656
|
+
], ChiefOfStaffApprovalsComponent);
|
|
657
|
+
export { ChiefOfStaffApprovalsComponent };
|
|
658
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ChiefOfStaffApprovalsComponent, [{
|
|
659
|
+
type: Component,
|
|
660
|
+
args: [{ standalone: false, selector: 'mj-chief-of-staff-approvals', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mj-page-layout>\n <mj-page-header\n Title=\"Approvals & Wakes\"\n Subtitle=\"Decide on your Chief of Staff's requests and manage its wake routines\"\n Icon=\"fa-solid fa-bell-concierge\">\n\n <ng-container meta>\n @if (Metrics.PendingApprovalCount > 0) {\n <mj-stat-badge\n Icon=\"fa-solid fa-bell-concierge\"\n [Count]=\"Metrics.PendingApprovalCount\"\n Label=\"pending approvals\"\n Variant=\"warning\">\n </mj-stat-badge>\n } @else {\n <mj-stat-badge\n Icon=\"fa-solid fa-circle-check\"\n [Count]=\"0\"\n Label=\"pending approvals\"\n Variant=\"success\">\n </mj-stat-badge>\n }\n <mj-stat-badge\n Icon=\"fa-solid fa-clock-rotate-left\"\n [Count]=\"Metrics.ActiveWakeRoutineCount\"\n Label=\"active wakes\"\n Variant=\"info\">\n </mj-stat-badge>\n </ng-container>\n\n <ng-container toolbar>\n <mj-page-search\n Placeholder=\"Filter requests or routines...\"\n [Value]=\"SearchText\"\n (ValueChange)=\"OnSearchChange($event)\">\n </mj-page-search>\n <mj-refresh-button\n [Loading]=\"IsLoading\"\n [ShowLabel]=\"true\"\n (Clicked)=\"LoadChiefOfStaffData()\">\n </mj-refresh-button>\n </ng-container>\n </mj-page-header>\n\n <mj-page-body>\n @if (FeedbackBanner) {\n <div class=\"cos-banner\"\n [class.cos-banner--success]=\"FeedbackBanner.Type === 'success'\"\n [class.cos-banner--error]=\"FeedbackBanner.Type === 'error'\"\n role=\"status\">\n <div class=\"cos-banner__content\">\n <i class=\"fa-solid\"\n [class.fa-circle-check]=\"FeedbackBanner.Type === 'success'\"\n [class.fa-circle-exclamation]=\"FeedbackBanner.Type === 'error'\"></i>\n <span>{{ FeedbackBanner.Message }}</span>\n </div>\n <button mjButton variant=\"flat\" size=\"sm\" (click)=\"DismissBanner()\" aria-label=\"Dismiss notification\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n }\n\n @if (IsLoading) {\n <div class=\"cos-loading\">\n <mj-loading text=\"Loading approvals and wakes...\"></mj-loading>\n </div>\n } @else {\n <div class=\"cos-overview-columns\">\n <!-- Left Column: Pending & Resolved Agent Requests -->\n <section class=\"cos-panel\">\n <div class=\"cos-panel__header\">\n <div>\n <h3 class=\"cos-panel__title\">\n <i class=\"fa-solid fa-bell-concierge\"></i> Pending Agent Approvals ({{ PendingRequests.length }})\n </h3>\n <p class=\"cos-panel__subtitle\">\n Approve or reject escalations from your Chief of Staff\n </p>\n </div>\n </div>\n\n @if (PendingRequests.length === 0) {\n <mj-empty-state Size=\"compact\" Variant=\"success\" Icon=\"fa-solid fa-circle-check\" Message=\"Inbox Zero \u2014 no pending requests awaiting your decision.\" />\n } @else {\n <div class=\"cos-stack\">\n @for (req of PendingRequests; track req.ID) {\n <div class=\"cos-request-card\" (click)=\"OpenRequestDetail(req)\">\n <div class=\"cos-request-card__top\">\n <div class=\"cos-request-card__badges\">\n <span class=\"cos-priority-tag {{ GetPriorityTierClass(req.Priority) }}\">\n {{ GetPriorityTierLabel(req.Priority) }} ({{ req.Priority }})\n </span>\n @if (req.RequestType) {\n <span class=\"cos-meta-badge\"><i class=\"fa-solid fa-tag\"></i> {{ req.RequestType }}</span>\n }\n <span class=\"cos-status-chip cos-status-chip--requested\">\n {{ req.Status }}\n </span>\n @if (IsRequestExpired(req)) {\n <span class=\"cos-status-chip cos-status-chip--disabled\">\n Expired\n </span>\n }\n </div>\n <span class=\"cos-timestamp\">\n {{ req.RequestedAt | date:'short' }}\n </span>\n </div>\n <p class=\"cos-request-card__text\">{{ req.Request }}</p>\n <div class=\"cos-request-card__actions\">\n <button mjButton variant=\"primary\" size=\"sm\"\n [disabled]=\"BusyRequestID === req.ID\"\n (click)=\"QuickRespondToRequest(req, 'Approved', $event)\">\n <i class=\"fa-solid fa-check\"></i> Approve\n </button>\n <button mjButton variant=\"danger\" size=\"sm\"\n [disabled]=\"BusyRequestID === req.ID\"\n (click)=\"QuickRespondToRequest(req, 'Rejected', $event)\">\n <i class=\"fa-solid fa-xmark\"></i> Reject\n </button>\n <button mjButton variant=\"outline\" size=\"sm\"\n (click)=\"OpenRequestDetail(req); $event.stopPropagation()\">\n <i class=\"fa-solid fa-expand\"></i> Full Details / Comment\n </button>\n </div>\n @let openDraft = EmailDraftFor(req);\n @if (openDraft) {\n <div class=\"cos-email-draft\" (click)=\"$event.stopPropagation()\">\n <mj-accordion-panel [Bare]=\"true\" Size=\"sm\">\n <ng-template mjAccordionTitle><i class=\"fa-solid fa-envelope\"></i> Email draft to {{ openDraft.To }}</ng-template>\n <ng-template mjAccordionActions>\n <button mjButton variant=\"outline\" size=\"sm\"\n title=\"Copy To, Subject and body as plain text for your mail client\"\n (click)=\"CopyEmailDraft(req, $event)\">\n <i class=\"fa-regular fa-copy\"></i> Copy\n </button>\n </ng-template>\n <ng-template mjAccordionBody>\n <div class=\"cos-email-draft__meta\">\n <div><strong>To:</strong> {{ openDraft.To }}</div>\n @if (openDraft.CC.length > 0) {\n <div><strong>CC:</strong> {{ openDraft.CC.join(', ') }}</div>\n }\n @if (openDraft.From) {\n <div><strong>From:</strong> {{ openDraft.From }}</div>\n }\n <div><strong>Subject:</strong> {{ openDraft.Subject }}</div>\n </div>\n <pre class=\"cos-email-draft__body\">{{ openDraft.Body }}</pre>\n </ng-template>\n </mj-accordion-panel>\n </div>\n }\n </div>\n }\n </div>\n }\n\n @if (RecentResolvedRequests.length > 0) {\n <div class=\"cos-resolved-section\">\n <h4 class=\"cos-resolved-section__title\">Recent Resolved Decisions</h4>\n <div class=\"cos-stack\">\n @for (req of RecentResolvedRequests; track req.ID) {\n <div class=\"cos-resolved-row\" (click)=\"OpenRequestDetail(req)\">\n <div class=\"cos-resolved-row__main\">\n <span class=\"cos-status-chip cos-status-chip--{{ req.Status.toLowerCase() }}\">\n {{ req.Status }}\n </span>\n <span class=\"cos-resolved-row__text\">{{ req.Request }}</span>\n </div>\n <span class=\"cos-timestamp\">\n {{ (req.RespondedAt || req.RequestedAt) | date:'shortDate' }}\n </span>\n </div>\n }\n </div>\n </div>\n }\n </section>\n\n <!-- Right Column: Autonomous Wake Routines -->\n <section class=\"cos-panel\">\n <div class=\"cos-panel__header\">\n <div>\n <h3 class=\"cos-panel__title\">\n <i class=\"fa-solid fa-clock-rotate-left\"></i> Autonomous Wake Routines ({{ FilteredRoutines.length }})\n </h3>\n <p class=\"cos-panel__subtitle\">\n Scheduled AgentWake routines in MJ: User Routines\n </p>\n </div>\n </div>\n\n @if (FiredRoutineCount > 0) {\n <div class=\"cos-routines-toggle\">\n <mj-filter-chip Label=\"Show fired\" Icon=\"fa-solid fa-clock-rotate-left\"\n [Count]=\"FiredRoutineCount\" [Active]=\"ShowFiredRoutines\"\n (Clicked)=\"ToggleShowFiredRoutines()\" />\n </div>\n }\n\n @if (FilteredRoutines.length === 0) {\n <mj-empty-state Size=\"compact\" Icon=\"fa-regular fa-clock\" Message=\"No AgentWake routines found for your Chief of Staff.\" />\n } @else {\n <div class=\"cos-stack\">\n @for (routine of FilteredRoutines; track routine.ID) {\n <div class=\"cos-routine-card\" [class.cos-routine-card--fired]=\"IsSpentRoutine(routine)\">\n <div class=\"cos-routine-card__header\">\n <div>\n <div class=\"cos-routine-card__title-row\">\n <h4 class=\"cos-routine-card__name\">{{ routine.Name }}</h4>\n <span class=\"cos-status-chip cos-status-chip--{{ RoutineStatusLabel(routine).toLowerCase() }}\"\n [title]=\"IsSpentRoutine(routine) ? 'A one-time wake that has run. It will not fire again.' : ''\">\n {{ RoutineStatusLabel(routine) }}\n </span>\n <span class=\"cos-meta-badge\">\n {{ routine.ScheduleMode }}\n </span>\n </div>\n @if (routine.Description) {\n <p class=\"cos-routine-card__desc\">{{ routine.Description }}</p>\n }\n </div>\n </div>\n\n <div class=\"cos-routine-card__schedule\">\n @if (IsSpentRoutine(routine)) {\n <div>\n <strong>Fired:</strong> {{ routine.LastRunAt | date:'medium' }}\n <span class=\"cos-routine-card__fired-note\">one-time wake, will not fire again</span>\n </div>\n } @else {\n <div>\n <strong>Next Wake:</strong>\n @if (routine.NextRunAt) {\n {{ routine.NextRunAt | date:'medium' }}\n } @else {\n Not scheduled\n }\n </div>\n }\n @if (routine.CronExpression) {\n <div>\n <strong>Cron:</strong> <code>{{ routine.CronExpression }}</code>\n @if (routine.Timezone) {\n <span>({{ routine.Timezone }})</span>\n }\n </div>\n }\n @if (routine.LastRunAt) {\n <div>\n <strong>Last Run:</strong> {{ routine.LastRunAt | date:'short' }}\n @if (routine.LastRunStatus) {\n <span class=\"cos-meta-badge\">{{ routine.LastRunStatus }}</span>\n }\n </div>\n }\n </div>\n\n <div class=\"cos-routine-card__actions\">\n <button mjButton variant=\"primary\" size=\"sm\"\n [disabled]=\"!CanOpenBriefing(routine)\"\n [title]=\"CanOpenBriefing(routine) ? 'Read this routine\\'s briefings here' : 'No briefing yet: the routine has not run'\"\n (click)=\"OpenBriefingReader(routine, $event)\">\n <i class=\"fa-solid fa-book-open\"></i> Read Briefing\n </button>\n <button mjButton variant=\"outline\" size=\"sm\"\n [disabled]=\"!CanOpenBriefing(routine)\"\n title=\"Open this routine's conversation in the Chat app\"\n (click)=\"OpenRoutineBriefing(routine, $event)\">\n <i class=\"fa-solid fa-comments\"></i> Open in Chat\n </button>\n <button mjButton variant=\"outline\" size=\"sm\"\n [disabled]=\"BusyRoutineID === routine.ID\"\n title=\"Run this wake now. Its scheduled time is not changed.\"\n (click)=\"TriggerWakeNow(routine, $event)\">\n <i class=\"fa-solid fa-bolt\"></i> Wake Now\n </button>\n @if (!IsSpentRoutine(routine)) {\n <button mjButton variant=\"outline\" size=\"sm\"\n [disabled]=\"BusyRoutineID === routine.ID\"\n (click)=\"ToggleRoutineStatus(routine, $event)\">\n @if (routine.Status === 'Active') {\n <i class=\"fa-solid fa-pause\"></i> Pause\n } @else {\n <i class=\"fa-solid fa-play\"></i> Resume\n }\n </button>\n }\n <button mjButton variant=\"flat\" size=\"sm\"\n (click)=\"OpenRoutineEntityRecord(routine.ID, $event)\">\n <i class=\"fa-solid fa-arrow-up-right-from-square\"></i> Open Record\n </button>\n </div>\n </div>\n }\n </div>\n }\n </section>\n </div>\n }\n </mj-page-body>\n\n <!-- Briefing reader: a wake routine's conversation, read without leaving the page. -->\n <mj-slide-panel\n Mode=\"slide\"\n [Title]=\"BriefingRoutine?.Name ?? 'Briefings'\"\n [Visible]=\"IsBriefingReaderOpen\"\n [Resizable]=\"true\"\n [WidthPx]=\"760\"\n (Closed)=\"CloseBriefingReader()\">\n @if (IsBriefingReaderOpen) {\n <div class=\"cos-briefing-reader\">\n <mj-conversation-chat-area\n [Provider]=\"Provider\"\n [EnvironmentId]=\"BriefingEnvironmentId\"\n [CurrentUser]=\"ProviderToUse.CurrentUser\"\n [Conversation]=\"BriefingConversation\"\n [ConversationId]=\"BriefingConversationId\"\n [IsNewConversation]=\"false\"\n [SuppressNewConversationEmptyState]=\"true\"\n [AllowMentions]=\"false\"\n [OverlayMode]=\"false\"\n [ShowExportButton]=\"false\"\n [ShowShareButton]=\"false\"\n [ShowArtifactIndicator]=\"false\"\n [ShowAgentPicker]=\"false\"\n [ShowAgentModePicker]=\"false\"\n [ReadOnly]=\"true\"\n ReadOnlyMessage=\"Briefings are written by the wake routine. To change what it checks or when, ask your Chief of Staff in chat or use the Routines app.\"\n ApplicationScope=\"Application\"\n [ApplicationId]=\"BriefingApplicationId\">\n </mj-conversation-chat-area>\n </div>\n }\n </mj-slide-panel>\n</mj-page-layout>\n\n@if (ShowRequestDialog && SelectedRequest) {\n <mj-agent-request-dialog\n [Visible]=\"ShowRequestDialog\"\n [Request]=\"SelectedRequest\"\n (Close)=\"OnRequestDialogClose($event)\">\n </mj-agent-request-dialog>\n}\n", styles: [":host {\n display: block;\n height: 100%;\n}\n\n.cos-loading {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 280px;\n}\n\n.cos-banner {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n padding: 12px 16px;\n margin-bottom: 16px;\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n font-size: 13px;\n}\n\n.cos-banner__content {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n.cos-banner--success {\n background-color: var(--mj-status-success-bg);\n border-color: var(--mj-status-success);\n color: var(--mj-status-success);\n}\n\n.cos-banner--error {\n background-color: var(--mj-status-error-bg);\n border-color: var(--mj-status-error);\n color: var(--mj-status-error);\n}\n\n/* KPI Grid */\n.cos-kpi-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n gap: 16px;\n margin-top: 16px;\n margin-bottom: 20px;\n}\n\n.cos-kpi-card {\n background-color: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n padding: 16px 18px;\n cursor: pointer;\n transition: border-color 0.15s ease, transform 0.15s ease;\n}\n\n.cos-kpi-card:hover {\n border-color: var(--mj-brand-primary);\n}\n\n.cos-kpi-card__header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 8px;\n}\n\n.cos-kpi-card__label {\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-secondary);\n}\n\n.cos-kpi-card__icon {\n width: 34px;\n height: 34px;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 15px;\n background-color: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.cos-kpi-card__icon--brand {\n background-color: var(--mj-bg-surface-sunken);\n color: var(--mj-brand-primary);\n}\n\n.cos-kpi-card__icon--success {\n background-color: var(--mj-status-success-bg);\n color: var(--mj-status-success);\n}\n\n.cos-kpi-card__icon--warning {\n background-color: var(--mj-status-warning-bg);\n color: var(--mj-status-warning);\n}\n\n.cos-kpi-card__value {\n font-size: 26px;\n font-weight: 700;\n color: var(--mj-text-primary);\n line-height: 1.2;\n}\n\n.cos-kpi-card__sub {\n margin-top: 4px;\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n/* Columns & Panels */\n.cos-overview-columns {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));\n gap: 20px;\n margin-top: 16px;\n}\n\n.cos-stack {\n display: flex;\n flex-direction: column;\n gap: 14px;\n}\n\n.cos-panel {\n background-color: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n padding: 18px 20px;\n}\n\n.cos-panel__header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 12px;\n margin-bottom: 16px;\n}\n\n.cos-panel__title {\n margin: 0;\n font-size: 15px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.cos-panel__subtitle {\n margin: 4px 0 0;\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n/* Priority Mini Cards */\n\n/* Progress Bars */\n\n/* Health & Status Badges */\n\n.cos-meta-badge {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n padding: 2px 8px;\n border-radius: 6px;\n font-size: 11px;\n font-weight: 500;\n background-color: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.cos-status-chip {\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n border-radius: 999px;\n font-size: 11px;\n font-weight: 600;\n background-color: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.cos-status-chip--active,\n.cos-status-chip--approved {\n background-color: var(--mj-status-success-bg);\n color: var(--mj-status-success);\n}\n\n.cos-status-chip--requested,\n.cos-status-chip--paused {\n background-color: var(--mj-status-warning-bg);\n color: var(--mj-status-warning);\n}\n\n.cos-status-chip--rejected,\n.cos-status-chip--disabled {\n background-color: var(--mj-status-error-bg);\n color: var(--mj-status-error);\n}\n\n/* A one-time wake that has run: done, not broken. */\n.cos-status-chip--fired {\n background-color: var(--mj-bg-subtle);\n color: var(--mj-text-secondary);\n}\n\n.cos-routine-card--fired {\n opacity: 0.8;\n}\n\n.cos-routine-card__fired-note {\n margin-left: 8px;\n color: var(--mj-text-secondary);\n font-size: 0.85em;\n}\n\n.cos-routines-toggle {\n display: flex;\n justify-content: flex-end;\n margin-bottom: 8px;\n}\n\n/* Filter Bar & Full Priority Cards */\n\n/* Subtasks / Milestones */\n\n/* Requests & Routines */\n.cos-request-card {\n padding: 14px;\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n background-color: var(--mj-bg-surface);\n cursor: pointer;\n transition: border-color 0.15s ease;\n}\n\n.cos-request-card:hover {\n border-color: var(--mj-brand-primary);\n}\n\n.cos-request-card__top {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n margin-bottom: 8px;\n}\n\n.cos-request-card__badges {\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.cos-priority-tag {\n display: inline-flex;\n align-items: center;\n padding: 2px 8px;\n border-radius: 6px;\n font-size: 11px;\n font-weight: 600;\n}\n\n.cos-priority-tag.priority-critical,\n.cos-priority-tag.priority-high {\n background-color: var(--mj-status-error-bg);\n color: var(--mj-status-error);\n}\n\n.cos-priority-tag.priority-normal {\n background-color: var(--mj-status-warning-bg);\n color: var(--mj-status-warning);\n}\n\n.cos-priority-tag.priority-low {\n background-color: var(--mj-bg-surface-sunken);\n color: var(--mj-text-secondary);\n}\n\n.cos-timestamp {\n font-size: 11px;\n color: var(--mj-text-muted);\n white-space: nowrap;\n}\n\n.cos-request-card__text {\n margin: 0 0 12px;\n font-size: 13px;\n color: var(--mj-text-primary);\n line-height: 1.45;\n}\n\n/* An outbound email waiting for approval: a bare mj-accordion-panel inside the card */\n.cos-email-draft {\n margin-top: 10px;\n cursor: default;\n}\n\n.cos-email-draft__meta {\n display: flex;\n flex-direction: column;\n gap: 2px;\n font-size: 0.9em;\n color: var(--mj-text-secondary);\n word-break: break-word;\n}\n\n.cos-email-draft__body {\n margin: 8px 0 0;\n padding: 0;\n border: 0;\n background: transparent;\n font: inherit;\n white-space: pre-wrap;\n word-break: break-word;\n color: var(--mj-text-primary);\n}\n\n.cos-request-card__actions {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.cos-resolved-section {\n margin-top: 20px;\n padding-top: 16px;\n border-top: 1px solid var(--mj-border-subtle);\n}\n\n.cos-resolved-section__title {\n margin: 0 0 10px;\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n color: var(--mj-text-muted);\n}\n\n.cos-resolved-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 10px;\n padding: 8px 10px;\n border-radius: 6px;\n background-color: var(--mj-bg-surface-sunken);\n cursor: pointer;\n}\n\n.cos-resolved-row__main {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n}\n\n.cos-resolved-row__text {\n font-size: 12px;\n color: var(--mj-text-secondary);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* Routine Cards */\n.cos-routine-mini {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n padding: 12px 14px;\n border-radius: 8px;\n border: 1px solid var(--mj-border-subtle);\n background-color: var(--mj-bg-surface);\n}\n\n.cos-routine-mini__title-row {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.cos-routine-mini__name {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.cos-routine-mini__meta {\n margin-top: 4px;\n font-size: 12px;\n color: var(--mj-text-muted);\n display: flex;\n flex-wrap: wrap;\n gap: 6px;\n}\n\n.cos-routine-card {\n padding: 16px;\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n background-color: var(--mj-bg-surface);\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.cos-routine-card__title-row {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.cos-routine-card__name {\n margin: 0;\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.cos-routine-card__desc {\n margin: 4px 0 0;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.cos-routine-card__schedule {\n display: flex;\n flex-direction: column;\n gap: 4px;\n font-size: 12px;\n color: var(--mj-text-secondary);\n padding: 10px 12px;\n border-radius: 6px;\n background-color: var(--mj-bg-surface-sunken);\n}\n\n.cos-routine-card__actions {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n/* Governance Tab */\n.cos-governance-container {\n display: flex;\n flex-direction: column;\n gap: 18px;\n margin-top: 16px;\n}\n\n.cos-governance-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: 12px;\n padding: 16px 20px;\n border-radius: 10px;\n background-color: var(--mj-bg-surface-card);\n border: 1px solid var(--mj-border-default);\n}\n\n.cos-governance-header__title {\n margin: 0;\n font-size: 16px;\n font-weight: 600;\n color: var(--mj-text-primary);\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.cos-governance-header__subtitle {\n margin: 4px 0 0;\n font-size: 12px;\n color: var(--mj-text-secondary);\n}\n\n.cos-governance-header__actions {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.cos-status-segmented {\n display: flex;\n gap: 6px;\n}\n\n.cos-mode-cards {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n gap: 12px;\n margin-bottom: 16px;\n}\n\n.cos-mode-card {\n padding: 14px 16px;\n border-radius: 8px;\n border: 1px solid var(--mj-border-default);\n background-color: var(--mj-bg-surface);\n cursor: pointer;\n transition: border-color 0.15s ease, background-color 0.15s ease;\n}\n\n.cos-mode-card:hover {\n border-color: var(--mj-brand-primary);\n}\n\n.cos-mode-card--selected {\n border-color: var(--mj-brand-primary);\n background-color: var(--mj-bg-surface-sunken);\n}\n\n.cos-mode-card__top {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-bottom: 6px;\n}\n\n.cos-mode-card__title {\n font-size: 14px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.cos-mode-card__check {\n color: var(--mj-brand-primary);\n}\n\n.cos-mode-card__desc {\n margin: 0;\n font-size: 12px;\n color: var(--mj-text-secondary);\n line-height: 1.45;\n}\n\n.cos-form-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));\n gap: 14px;\n}\n\n.cos-form-grid--spaced {\n margin-top: 16px;\n}\n\n.cos-form-field {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.cos-form-field--full {\n grid-column: 1 / -1;\n}\n\n.cos-form-field__label {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.cos-input,\n.cos-textarea {\n width: 100%;\n padding: 8px 10px;\n border-radius: 6px;\n border: 1px solid var(--mj-border-default);\n background-color: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n font-size: 13px;\n font-family: inherit;\n box-sizing: border-box;\n}\n\n.cos-input:focus,\n.cos-textarea:focus {\n outline: none;\n border-color: var(--mj-brand-primary);\n}\n\n.cos-toggle-list {\n display: flex;\n flex-direction: column;\n gap: 10px;\n}\n\n.cos-toggle-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n padding: 12px 14px;\n border-radius: 8px;\n border: 1px solid var(--mj-border-subtle);\n background-color: var(--mj-bg-surface);\n cursor: pointer;\n}\n\n.cos-toggle-row__title {\n font-size: 13px;\n font-weight: 600;\n color: var(--mj-text-primary);\n}\n\n.cos-toggle-row__desc {\n margin-top: 2px;\n font-size: 12px;\n color: var(--mj-text-muted);\n}\n\n/* ========================================================================= */\n/* Task / Priority Detail & Quick-Edit Drawer */\n/* ========================================================================= */\n\n@keyframes cosDrawerSlideIn {\n from {\n transform: translateX(100%);\n }\n to {\n transform: translateX(0);\n }\n}\n\n/* Briefing reader: the embedded chat area fills the slide panel body. */\n.cos-briefing-reader {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n}\n\n.cos-briefing-reader mj-conversation-chat-area {\n flex: 1 1 auto;\n min-height: 0;\n}\n\n/* Assignees on objective cards and milestone rows. */\n\n/* An unassigned milestone shows who holds it by default (its creator or the objective's owner):\n outlined rather than filled, so a real assignment still stands out. */\n\n/* To-dos & reminders */\n\n"] }]
|
|
661
|
+
}], null, null); })();
|
|
662
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ChiefOfStaffApprovalsComponent, { className: "ChiefOfStaffApprovalsComponent", filePath: "src/ChiefOfStaff/chief-of-staff-approvals.component.ts", lineNumber: 21 }); })();
|
|
663
|
+
export function LoadChiefOfStaffApprovals() {
|
|
664
|
+
// Intentionally empty: forces inclusion of the @RegisterClass side effect.
|
|
665
|
+
}
|
|
666
|
+
//# sourceMappingURL=chief-of-staff-approvals.component.js.map
|