@memberjunction/ng-dashboards 5.27.0 → 5.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/dist/Home/action-pin-config-dialog.component.d.ts +60 -0
  2. package/dist/Home/action-pin-config-dialog.component.d.ts.map +1 -0
  3. package/dist/Home/action-pin-config-dialog.component.js +396 -0
  4. package/dist/Home/action-pin-config-dialog.component.js.map +1 -0
  5. package/dist/Home/action-pin-runner-dialog.component.d.ts +39 -0
  6. package/dist/Home/action-pin-runner-dialog.component.d.ts.map +1 -0
  7. package/dist/Home/action-pin-runner-dialog.component.js +285 -0
  8. package/dist/Home/action-pin-runner-dialog.component.js.map +1 -0
  9. package/dist/Home/home-dashboard.component.d.ts +26 -0
  10. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  11. package/dist/Home/home-dashboard.component.js +671 -462
  12. package/dist/Home/home-dashboard.component.js.map +1 -1
  13. package/dist/Integration/components/connections/connections.component.d.ts +27 -1
  14. package/dist/Integration/components/connections/connections.component.d.ts.map +1 -1
  15. package/dist/Integration/components/connections/connections.component.js +819 -445
  16. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  17. package/dist/Integration/services/integration-data.service.d.ts +9 -1
  18. package/dist/Integration/services/integration-data.service.d.ts.map +1 -1
  19. package/dist/Integration/services/integration-data.service.js +24 -4
  20. package/dist/Integration/services/integration-data.service.js.map +1 -1
  21. package/dist/core-dashboards.module.d.ts +32 -30
  22. package/dist/core-dashboards.module.d.ts.map +1 -1
  23. package/dist/core-dashboards.module.js +6 -0
  24. package/dist/core-dashboards.module.js.map +1 -1
  25. package/package.json +48 -48
@@ -0,0 +1,285 @@
1
+ import { Component, Input, Output, EventEmitter, ViewEncapsulation } from '@angular/core';
2
+ import { Metadata } from '@memberjunction/core';
3
+ import { GraphQLActionClient } from '@memberjunction/graphql-dataprovider';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ const _forTrack0 = ($index, $item) => $item.Name;
7
+ function ActionPinRunnerDialogComponent_Conditional_0_Conditional_13_Conditional_0_Template(rf, ctx) { if (rf & 1) {
8
+ i0.ɵɵelementStart(0, "div", 14);
9
+ i0.ɵɵelement(1, "i", 15);
10
+ i0.ɵɵtext(2, " This action runs with all parameters preset \u2014 no input needed. ");
11
+ i0.ɵɵelementEnd();
12
+ } }
13
+ function ActionPinRunnerDialogComponent_Conditional_0_Conditional_13_Conditional_1_For_4_Template(rf, ctx) { if (rf & 1) {
14
+ const _r3 = i0.ɵɵgetCurrentView();
15
+ i0.ɵɵelementStart(0, "div", 18)(1, "label", 19);
16
+ i0.ɵɵtext(2);
17
+ i0.ɵɵelementEnd();
18
+ i0.ɵɵelementStart(3, "input", 20);
19
+ i0.ɵɵtwoWayListener("ngModelChange", function ActionPinRunnerDialogComponent_Conditional_0_Conditional_13_Conditional_1_For_4_Template_input_ngModelChange_3_listener($event) { const f_r4 = i0.ɵɵrestoreView(_r3).$implicit; i0.ɵɵtwoWayBindingSet(f_r4.Value, $event) || (f_r4.Value = $event); return i0.ɵɵresetView($event); });
20
+ i0.ɵɵelementEnd()();
21
+ } if (rf & 2) {
22
+ const f_r4 = ctx.$implicit;
23
+ const ctx_r1 = i0.ɵɵnextContext(4);
24
+ i0.ɵɵadvance();
25
+ i0.ɵɵproperty("for", "rf-" + f_r4.Name);
26
+ i0.ɵɵadvance();
27
+ i0.ɵɵtextInterpolate(f_r4.Name);
28
+ i0.ɵɵadvance();
29
+ i0.ɵɵproperty("id", "rf-" + f_r4.Name);
30
+ i0.ɵɵtwoWayProperty("ngModel", f_r4.Value);
31
+ i0.ɵɵproperty("disabled", ctx_r1.IsRunning)("placeholder", "Enter " + f_r4.Name);
32
+ } }
33
+ function ActionPinRunnerDialogComponent_Conditional_0_Conditional_13_Conditional_1_Template(rf, ctx) { if (rf & 1) {
34
+ i0.ɵɵelementStart(0, "div", 16);
35
+ i0.ɵɵtext(1, "Provide values for the parameters below:");
36
+ i0.ɵɵelementEnd();
37
+ i0.ɵɵelementStart(2, "div", 17);
38
+ i0.ɵɵrepeaterCreate(3, ActionPinRunnerDialogComponent_Conditional_0_Conditional_13_Conditional_1_For_4_Template, 4, 6, "div", 18, _forTrack0);
39
+ i0.ɵɵelementEnd();
40
+ } if (rf & 2) {
41
+ const ctx_r1 = i0.ɵɵnextContext(3);
42
+ i0.ɵɵadvance(3);
43
+ i0.ɵɵrepeater(ctx_r1.RuntimeFields);
44
+ } }
45
+ function ActionPinRunnerDialogComponent_Conditional_0_Conditional_13_Template(rf, ctx) { if (rf & 1) {
46
+ i0.ɵɵconditionalCreate(0, ActionPinRunnerDialogComponent_Conditional_0_Conditional_13_Conditional_0_Template, 3, 0, "div", 14)(1, ActionPinRunnerDialogComponent_Conditional_0_Conditional_13_Conditional_1_Template, 5, 0);
47
+ } if (rf & 2) {
48
+ const ctx_r1 = i0.ɵɵnextContext(2);
49
+ i0.ɵɵconditional(ctx_r1.RuntimeFields.length === 0 ? 0 : 1);
50
+ } }
51
+ function ActionPinRunnerDialogComponent_Conditional_0_Conditional_14_Conditional_2_Template(rf, ctx) { if (rf & 1) {
52
+ i0.ɵɵelement(0, "i", 23);
53
+ } }
54
+ function ActionPinRunnerDialogComponent_Conditional_0_Conditional_14_Conditional_3_Template(rf, ctx) { if (rf & 1) {
55
+ i0.ɵɵelement(0, "i", 24);
56
+ } }
57
+ function ActionPinRunnerDialogComponent_Conditional_0_Conditional_14_Conditional_7_Template(rf, ctx) { if (rf & 1) {
58
+ i0.ɵɵelementStart(0, "div", 27);
59
+ i0.ɵɵtext(1);
60
+ i0.ɵɵelementEnd();
61
+ } if (rf & 2) {
62
+ const ctx_r1 = i0.ɵɵnextContext(3);
63
+ i0.ɵɵadvance();
64
+ i0.ɵɵtextInterpolate(ctx_r1.ResultMessage);
65
+ } }
66
+ function ActionPinRunnerDialogComponent_Conditional_0_Conditional_14_Template(rf, ctx) { if (rf & 1) {
67
+ i0.ɵɵelementStart(0, "div", 21)(1, "div", 22);
68
+ i0.ɵɵconditionalCreate(2, ActionPinRunnerDialogComponent_Conditional_0_Conditional_14_Conditional_2_Template, 1, 0, "i", 23)(3, ActionPinRunnerDialogComponent_Conditional_0_Conditional_14_Conditional_3_Template, 1, 0, "i", 24);
69
+ i0.ɵɵelementEnd();
70
+ i0.ɵɵelementStart(4, "div", 25)(5, "div", 26);
71
+ i0.ɵɵtext(6);
72
+ i0.ɵɵelementEnd();
73
+ i0.ɵɵconditionalCreate(7, ActionPinRunnerDialogComponent_Conditional_0_Conditional_14_Conditional_7_Template, 2, 1, "div", 27);
74
+ i0.ɵɵelementEnd()();
75
+ } if (rf & 2) {
76
+ const ctx_r1 = i0.ɵɵnextContext(2);
77
+ i0.ɵɵclassProp("success", ctx_r1.RunSucceeded)("failure", !ctx_r1.RunSucceeded);
78
+ i0.ɵɵadvance(2);
79
+ i0.ɵɵconditional(ctx_r1.RunSucceeded ? 2 : 3);
80
+ i0.ɵɵadvance(4);
81
+ i0.ɵɵtextInterpolate(ctx_r1.RunSucceeded ? "Action completed" : "Action failed");
82
+ i0.ɵɵadvance();
83
+ i0.ɵɵconditional(ctx_r1.ResultMessage ? 7 : -1);
84
+ } }
85
+ function ActionPinRunnerDialogComponent_Conditional_0_Conditional_15_Template(rf, ctx) { if (rf & 1) {
86
+ i0.ɵɵelementStart(0, "div", 11);
87
+ i0.ɵɵelement(1, "i", 28);
88
+ i0.ɵɵtext(2);
89
+ i0.ɵɵelementEnd();
90
+ } if (rf & 2) {
91
+ const ctx_r1 = i0.ɵɵnextContext(2);
92
+ i0.ɵɵadvance(2);
93
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.ErrorMessage, " ");
94
+ } }
95
+ function ActionPinRunnerDialogComponent_Conditional_0_Conditional_17_Conditional_1_Template(rf, ctx) { if (rf & 1) {
96
+ i0.ɵɵelement(0, "i", 31);
97
+ i0.ɵɵtext(1, " Running\u2026 ");
98
+ } }
99
+ function ActionPinRunnerDialogComponent_Conditional_0_Conditional_17_Conditional_2_Template(rf, ctx) { if (rf & 1) {
100
+ i0.ɵɵelement(0, "i", 32);
101
+ i0.ɵɵtext(1, " Run action ");
102
+ } }
103
+ function ActionPinRunnerDialogComponent_Conditional_0_Conditional_17_Template(rf, ctx) { if (rf & 1) {
104
+ const _r5 = i0.ɵɵgetCurrentView();
105
+ i0.ɵɵelementStart(0, "button", 29);
106
+ i0.ɵɵlistener("click", function ActionPinRunnerDialogComponent_Conditional_0_Conditional_17_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.Run()); });
107
+ i0.ɵɵconditionalCreate(1, ActionPinRunnerDialogComponent_Conditional_0_Conditional_17_Conditional_1_Template, 2, 0)(2, ActionPinRunnerDialogComponent_Conditional_0_Conditional_17_Conditional_2_Template, 2, 0);
108
+ i0.ɵɵelementEnd();
109
+ i0.ɵɵelementStart(3, "button", 30);
110
+ i0.ɵɵlistener("click", function ActionPinRunnerDialogComponent_Conditional_0_Conditional_17_Template_button_click_3_listener() { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.Close()); });
111
+ i0.ɵɵtext(4, " Cancel ");
112
+ i0.ɵɵelementEnd();
113
+ } if (rf & 2) {
114
+ const ctx_r1 = i0.ɵɵnextContext(2);
115
+ i0.ɵɵstyleProp("background", ctx_r1.AccentColor)("border-color", ctx_r1.AccentColor);
116
+ i0.ɵɵproperty("disabled", !ctx_r1.CanRun());
117
+ i0.ɵɵadvance();
118
+ i0.ɵɵconditional(ctx_r1.IsRunning ? 1 : 2);
119
+ i0.ɵɵadvance(2);
120
+ i0.ɵɵproperty("disabled", ctx_r1.IsRunning);
121
+ } }
122
+ function ActionPinRunnerDialogComponent_Conditional_0_Conditional_18_Template(rf, ctx) { if (rf & 1) {
123
+ const _r6 = i0.ɵɵgetCurrentView();
124
+ i0.ɵɵelementStart(0, "button", 33);
125
+ i0.ɵɵlistener("click", function ActionPinRunnerDialogComponent_Conditional_0_Conditional_18_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.Close()); });
126
+ i0.ɵɵtext(1, " Done ");
127
+ i0.ɵɵelementEnd();
128
+ } }
129
+ function ActionPinRunnerDialogComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
130
+ const _r1 = i0.ɵɵgetCurrentView();
131
+ i0.ɵɵelementStart(0, "div", 0);
132
+ i0.ɵɵlistener("click", function ActionPinRunnerDialogComponent_Conditional_0_Template_div_click_0_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.Close()); });
133
+ i0.ɵɵelementEnd();
134
+ i0.ɵɵelementStart(1, "div", 1)(2, "div", 2)(3, "div", 3);
135
+ i0.ɵɵelement(4, "i");
136
+ i0.ɵɵelementEnd();
137
+ i0.ɵɵelementStart(5, "div", 4)(6, "div", 5);
138
+ i0.ɵɵtext(7);
139
+ i0.ɵɵelementEnd();
140
+ i0.ɵɵelementStart(8, "div", 6);
141
+ i0.ɵɵtext(9);
142
+ i0.ɵɵelementEnd()();
143
+ i0.ɵɵelementStart(10, "button", 7);
144
+ i0.ɵɵlistener("click", function ActionPinRunnerDialogComponent_Conditional_0_Template_button_click_10_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.Close()); });
145
+ i0.ɵɵelement(11, "i", 8);
146
+ i0.ɵɵelementEnd()();
147
+ i0.ɵɵelementStart(12, "div", 9);
148
+ i0.ɵɵconditionalCreate(13, ActionPinRunnerDialogComponent_Conditional_0_Conditional_13_Template, 2, 1)(14, ActionPinRunnerDialogComponent_Conditional_0_Conditional_14_Template, 8, 7, "div", 10);
149
+ i0.ɵɵconditionalCreate(15, ActionPinRunnerDialogComponent_Conditional_0_Conditional_15_Template, 3, 1, "div", 11);
150
+ i0.ɵɵelementEnd();
151
+ i0.ɵɵelementStart(16, "div", 12);
152
+ i0.ɵɵconditionalCreate(17, ActionPinRunnerDialogComponent_Conditional_0_Conditional_17_Template, 5, 7)(18, ActionPinRunnerDialogComponent_Conditional_0_Conditional_18_Template, 2, 0, "button", 13);
153
+ i0.ɵɵelementEnd()();
154
+ } if (rf & 2) {
155
+ const ctx_r1 = i0.ɵɵnextContext();
156
+ i0.ɵɵadvance(2);
157
+ i0.ɵɵstyleProp("background", "linear-gradient(135deg, " + ctx_r1.AccentColor + " 0%, " + ctx_r1.AccentColor + "cc 100%)");
158
+ i0.ɵɵadvance(2);
159
+ i0.ɵɵclassMap(ctx_r1.FaIcon);
160
+ i0.ɵɵadvance(3);
161
+ i0.ɵɵtextInterpolate(ctx_r1.Pin.DisplayName);
162
+ i0.ɵɵadvance(2);
163
+ i0.ɵɵtextInterpolate(ctx_r1.ActionName);
164
+ i0.ɵɵadvance();
165
+ i0.ɵɵproperty("disabled", ctx_r1.IsRunning);
166
+ i0.ɵɵadvance(3);
167
+ i0.ɵɵconditional(ctx_r1.RunSucceeded === null ? 13 : 14);
168
+ i0.ɵɵadvance(2);
169
+ i0.ɵɵconditional(ctx_r1.ErrorMessage ? 15 : -1);
170
+ i0.ɵɵadvance(2);
171
+ i0.ɵɵconditional(ctx_r1.RunSucceeded === null ? 17 : 18);
172
+ } }
173
+ export class ActionPinRunnerDialogComponent {
174
+ cdr;
175
+ Visible = false;
176
+ Pin = null;
177
+ Result = new EventEmitter();
178
+ RuntimeFields = [];
179
+ IsRunning = false;
180
+ RunSucceeded = null;
181
+ ResultMessage = null;
182
+ ErrorMessage = null;
183
+ constructor(cdr) {
184
+ this.cdr = cdr;
185
+ }
186
+ ngOnChanges(changes) {
187
+ if (changes['Visible'] && this.Visible && this.Pin) {
188
+ this.initFromPin();
189
+ }
190
+ }
191
+ getConfig() {
192
+ if (!this.Pin)
193
+ return null;
194
+ return this.Pin.Configuration;
195
+ }
196
+ initFromPin() {
197
+ const cfg = this.getConfig();
198
+ this.RuntimeFields = (cfg?.runtimeParamNames ?? []).map(name => ({ Name: name, Value: '' }));
199
+ this.IsRunning = false;
200
+ this.RunSucceeded = null;
201
+ this.ResultMessage = null;
202
+ this.ErrorMessage = null;
203
+ this.cdr.markForCheck();
204
+ }
205
+ get AccentColor() {
206
+ return this.getConfig()?.accentColor ?? 'var(--mj-brand-primary)';
207
+ }
208
+ get FaIcon() {
209
+ return this.Pin?.Icon ?? 'fa-solid fa-bolt';
210
+ }
211
+ get ActionName() {
212
+ return this.getConfig()?.actionName ?? 'Action';
213
+ }
214
+ CanRun() {
215
+ if (this.IsRunning)
216
+ return false;
217
+ // Runtime fields without values are allowed (action may handle missing params).
218
+ // The action itself reports required-param errors via its result.
219
+ return true;
220
+ }
221
+ async Run() {
222
+ const cfg = this.getConfig();
223
+ if (!cfg || !cfg.actionId) {
224
+ this.ErrorMessage = 'Pin is missing an actionId — cannot execute.';
225
+ this.cdr.markForCheck();
226
+ return;
227
+ }
228
+ this.IsRunning = true;
229
+ this.RunSucceeded = null;
230
+ this.ResultMessage = null;
231
+ this.ErrorMessage = null;
232
+ this.cdr.markForCheck();
233
+ try {
234
+ const params = this.buildActionParams(cfg);
235
+ const provider = Metadata.Provider;
236
+ const actionClient = new GraphQLActionClient(provider);
237
+ const result = await actionClient.RunAction(cfg.actionId, params);
238
+ this.RunSucceeded = result.Success;
239
+ this.ResultMessage = result.Message ?? (result.Success ? 'Action completed.' : 'Action reported a failure.');
240
+ }
241
+ catch (err) {
242
+ this.RunSucceeded = false;
243
+ this.ErrorMessage = `Execution failed: ${err.message}`;
244
+ }
245
+ finally {
246
+ this.IsRunning = false;
247
+ this.cdr.markForCheck();
248
+ }
249
+ }
250
+ buildActionParams(cfg) {
251
+ const params = [];
252
+ for (const [name, value] of Object.entries(cfg.presetParams ?? {})) {
253
+ params.push({ Name: name, Value: value, Type: 'Input' });
254
+ }
255
+ for (const f of this.RuntimeFields) {
256
+ if (f.Value !== '') {
257
+ params.push({ Name: f.Name, Value: f.Value, Type: 'Input' });
258
+ }
259
+ }
260
+ return params;
261
+ }
262
+ Close() {
263
+ if (this.IsRunning)
264
+ return;
265
+ this.Result.emit({ Closed: true });
266
+ }
267
+ static ɵfac = function ActionPinRunnerDialogComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ActionPinRunnerDialogComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
268
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ActionPinRunnerDialogComponent, selectors: [["mj-action-pin-runner-dialog"]], inputs: { Visible: "Visible", Pin: "Pin" }, outputs: { Result: "Result" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [[1, "apr-backdrop", 3, "click"], ["role", "dialog", "aria-modal", "true", 1, "apr-dialog"], [1, "apr-hero"], [1, "apr-hero-icon"], [1, "apr-hero-info"], [1, "apr-hero-title"], [1, "apr-hero-sub"], ["aria-label", "Close", 1, "apr-close", 3, "click", "disabled"], [1, "fa-solid", "fa-xmark"], [1, "apr-body"], [1, "apr-result", 3, "success", "failure"], [1, "apr-error"], [1, "apr-footer"], ["type", "button", 1, "apr-btn", "primary"], [1, "apr-no-fields"], [1, "fa-solid", "fa-circle-info"], [1, "apr-help"], [1, "apr-fields"], [1, "apr-field"], [3, "for"], ["type", "text", 1, "mj-input", 3, "ngModelChange", "id", "ngModel", "disabled", "placeholder"], [1, "apr-result"], [1, "apr-result-icon"], [1, "fa-solid", "fa-circle-check"], [1, "fa-solid", "fa-circle-xmark"], [1, "apr-result-text"], [1, "apr-result-title"], [1, "apr-result-msg"], [1, "fa-solid", "fa-triangle-exclamation"], ["type", "button", 1, "apr-btn", "primary", 3, "click", "disabled"], ["type", "button", 1, "apr-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-play"], ["type", "button", 1, "apr-btn", "primary", 3, "click"]], template: function ActionPinRunnerDialogComponent_Template(rf, ctx) { if (rf & 1) {
269
+ i0.ɵɵconditionalCreate(0, ActionPinRunnerDialogComponent_Conditional_0_Template, 19, 10);
270
+ } if (rf & 2) {
271
+ i0.ɵɵconditional(ctx.Visible && ctx.Pin ? 0 : -1);
272
+ } }, dependencies: [i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgModel], styles: [".apr-backdrop {\n position: fixed;\n inset: 0;\n background: var(--mj-bg-overlay);\n z-index: 9000;\n animation: apr-fade-in 0.15s ease;\n}\n\n.apr-dialog {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 9001;\n width: min(480px, calc(100vw - 32px));\n max-height: calc(100vh - 48px);\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n box-shadow: 0 24px 60px rgba(0, 0, 0, 0.25);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n animation: apr-pop-in 0.18s ease;\n}\n\n@keyframes apr-fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@keyframes apr-pop-in {\n from { opacity: 0; transform: translate(-50%, -48%) scale(0.98); }\n to { opacity: 1; transform: translate(-50%, -50%) scale(1); }\n}\n\n.apr-hero {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 18px 20px;\n color: var(--mj-text-inverse, white);\n position: relative;\n}\n\n.apr-hero-icon {\n width: 48px;\n height: 48px;\n border-radius: 10px;\n background: rgba(255, 255, 255, 0.2);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 22px;\n flex-shrink: 0;\n color: var(--mj-text-inverse, white);\n}\n\n.apr-hero-info {\n flex: 1;\n min-width: 0;\n}\n\n.apr-hero-title {\n font-size: 16px;\n font-weight: 600;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.apr-hero-sub {\n font-size: 12px;\n opacity: 0.85;\n margin-top: 2px;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.apr-close {\n background: rgba(255, 255, 255, 0.15);\n border: none;\n color: var(--mj-text-inverse, white);\n font-size: 14px;\n width: 32px;\n height: 32px;\n border-radius: 8px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.apr-close:hover:not(:disabled) {\n background: rgba(255, 255, 255, 0.25);\n}\n\n.apr-close:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.apr-body {\n padding: 20px;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n gap: 14px;\n}\n\n.apr-no-fields {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 14px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-subtle);\n border-radius: 8px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n}\n\n.apr-no-fields i {\n color: var(--mj-brand-primary);\n}\n\n.apr-help {\n font-size: 13px;\n color: var(--mj-text-muted);\n}\n\n.apr-fields {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.apr-field {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.apr-field label {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.apr-result {\n display: flex;\n gap: 14px;\n padding: 16px;\n border-radius: 8px;\n align-items: flex-start;\n}\n\n.apr-result.success {\n background: var(--mj-status-success-bg);\n border: 1px solid var(--mj-status-success-border);\n color: var(--mj-status-success-text);\n}\n\n.apr-result.failure {\n background: var(--mj-status-error-bg);\n border: 1px solid var(--mj-status-error-border);\n color: var(--mj-status-error-text);\n}\n\n.apr-result-icon {\n font-size: 28px;\n line-height: 1;\n}\n\n.apr-result-title {\n font-size: 14px;\n font-weight: 600;\n margin-bottom: 4px;\n}\n\n.apr-result-msg {\n font-size: 13px;\n line-height: 1.5;\n opacity: 0.9;\n}\n\n.apr-error {\n padding: 10px 12px;\n background: var(--mj-status-error-bg);\n color: var(--mj-status-error-text);\n border: 1px solid var(--mj-status-error-border);\n border-radius: 6px;\n font-size: 13px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.apr-footer {\n display: flex;\n gap: 8px;\n padding: 14px 20px;\n border-top: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface-card);\n}\n\n.apr-btn {\n padding: 9px 16px;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.apr-btn:hover:not(:disabled) {\n background: var(--mj-bg-surface-hover);\n}\n\n.apr-btn.primary {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse, white);\n border-color: var(--mj-brand-primary);\n}\n\n.apr-btn.primary:hover:not(:disabled) {\n filter: brightness(0.92);\n}\n\n.apr-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n"], encapsulation: 2 });
273
+ }
274
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ActionPinRunnerDialogComponent, [{
275
+ type: Component,
276
+ args: [{ standalone: false, selector: 'mj-action-pin-runner-dialog', encapsulation: ViewEncapsulation.None, template: "@if (Visible && Pin) {\n <div class=\"apr-backdrop\" (click)=\"Close()\"></div>\n <div class=\"apr-dialog\" role=\"dialog\" aria-modal=\"true\">\n <div class=\"apr-hero\" [style.background]=\"'linear-gradient(135deg, ' + AccentColor + ' 0%, ' + AccentColor + 'cc 100%)'\">\n <div class=\"apr-hero-icon\">\n <i [class]=\"FaIcon\"></i>\n </div>\n <div class=\"apr-hero-info\">\n <div class=\"apr-hero-title\">{{ Pin.DisplayName }}</div>\n <div class=\"apr-hero-sub\">{{ ActionName }}</div>\n </div>\n <button class=\"apr-close\" (click)=\"Close()\" [disabled]=\"IsRunning\" aria-label=\"Close\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n\n <div class=\"apr-body\">\n @if (RunSucceeded === null) {\n @if (RuntimeFields.length === 0) {\n <div class=\"apr-no-fields\">\n <i class=\"fa-solid fa-circle-info\"></i>\n This action runs with all parameters preset \u2014 no input needed.\n </div>\n } @else {\n <div class=\"apr-help\">Provide values for the parameters below:</div>\n <div class=\"apr-fields\">\n @for (f of RuntimeFields; track f.Name) {\n <div class=\"apr-field\">\n <label [for]=\"'rf-' + f.Name\">{{ f.Name }}</label>\n <input [id]=\"'rf-' + f.Name\"\n type=\"text\"\n class=\"mj-input\"\n [(ngModel)]=\"f.Value\"\n [disabled]=\"IsRunning\"\n [placeholder]=\"'Enter ' + f.Name\" />\n </div>\n }\n </div>\n }\n } @else {\n <div class=\"apr-result\" [class.success]=\"RunSucceeded\" [class.failure]=\"!RunSucceeded\">\n <div class=\"apr-result-icon\">\n @if (RunSucceeded) {\n <i class=\"fa-solid fa-circle-check\"></i>\n } @else {\n <i class=\"fa-solid fa-circle-xmark\"></i>\n }\n </div>\n <div class=\"apr-result-text\">\n <div class=\"apr-result-title\">{{ RunSucceeded ? 'Action completed' : 'Action failed' }}</div>\n @if (ResultMessage) {\n <div class=\"apr-result-msg\">{{ ResultMessage }}</div>\n }\n </div>\n </div>\n }\n\n @if (ErrorMessage) {\n <div class=\"apr-error\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i> {{ ErrorMessage }}\n </div>\n }\n </div>\n\n <div class=\"apr-footer\">\n @if (RunSucceeded === null) {\n <button type=\"button\" class=\"apr-btn primary\"\n [disabled]=\"!CanRun()\"\n [style.background]=\"AccentColor\"\n [style.border-color]=\"AccentColor\"\n (click)=\"Run()\">\n @if (IsRunning) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i> Running\u2026\n } @else {\n <i class=\"fa-solid fa-play\"></i> Run action\n }\n </button>\n <button type=\"button\" class=\"apr-btn\" [disabled]=\"IsRunning\" (click)=\"Close()\">\n Cancel\n </button>\n } @else {\n <button type=\"button\" class=\"apr-btn primary\" (click)=\"Close()\">\n Done\n </button>\n }\n </div>\n </div>\n}\n", styles: [".apr-backdrop {\n position: fixed;\n inset: 0;\n background: var(--mj-bg-overlay);\n z-index: 9000;\n animation: apr-fade-in 0.15s ease;\n}\n\n.apr-dialog {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n z-index: 9001;\n width: min(480px, calc(100vw - 32px));\n max-height: calc(100vh - 48px);\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n border: 1px solid var(--mj-border-default);\n border-radius: 12px;\n box-shadow: 0 24px 60px rgba(0, 0, 0, 0.25);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n animation: apr-pop-in 0.18s ease;\n}\n\n@keyframes apr-fade-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@keyframes apr-pop-in {\n from { opacity: 0; transform: translate(-50%, -48%) scale(0.98); }\n to { opacity: 1; transform: translate(-50%, -50%) scale(1); }\n}\n\n.apr-hero {\n display: flex;\n align-items: center;\n gap: 14px;\n padding: 18px 20px;\n color: var(--mj-text-inverse, white);\n position: relative;\n}\n\n.apr-hero-icon {\n width: 48px;\n height: 48px;\n border-radius: 10px;\n background: rgba(255, 255, 255, 0.2);\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 22px;\n flex-shrink: 0;\n color: var(--mj-text-inverse, white);\n}\n\n.apr-hero-info {\n flex: 1;\n min-width: 0;\n}\n\n.apr-hero-title {\n font-size: 16px;\n font-weight: 600;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.apr-hero-sub {\n font-size: 12px;\n opacity: 0.85;\n margin-top: 2px;\n display: flex;\n align-items: center;\n gap: 6px;\n}\n\n.apr-close {\n background: rgba(255, 255, 255, 0.15);\n border: none;\n color: var(--mj-text-inverse, white);\n font-size: 14px;\n width: 32px;\n height: 32px;\n border-radius: 8px;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n}\n\n.apr-close:hover:not(:disabled) {\n background: rgba(255, 255, 255, 0.25);\n}\n\n.apr-close:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.apr-body {\n padding: 20px;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n gap: 14px;\n}\n\n.apr-no-fields {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 14px;\n background: var(--mj-bg-surface-sunken);\n border: 1px solid var(--mj-border-subtle);\n border-radius: 8px;\n font-size: 13px;\n color: var(--mj-text-secondary);\n}\n\n.apr-no-fields i {\n color: var(--mj-brand-primary);\n}\n\n.apr-help {\n font-size: 13px;\n color: var(--mj-text-muted);\n}\n\n.apr-fields {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.apr-field {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.apr-field label {\n font-size: 12px;\n font-weight: 600;\n color: var(--mj-text-secondary);\n}\n\n.apr-result {\n display: flex;\n gap: 14px;\n padding: 16px;\n border-radius: 8px;\n align-items: flex-start;\n}\n\n.apr-result.success {\n background: var(--mj-status-success-bg);\n border: 1px solid var(--mj-status-success-border);\n color: var(--mj-status-success-text);\n}\n\n.apr-result.failure {\n background: var(--mj-status-error-bg);\n border: 1px solid var(--mj-status-error-border);\n color: var(--mj-status-error-text);\n}\n\n.apr-result-icon {\n font-size: 28px;\n line-height: 1;\n}\n\n.apr-result-title {\n font-size: 14px;\n font-weight: 600;\n margin-bottom: 4px;\n}\n\n.apr-result-msg {\n font-size: 13px;\n line-height: 1.5;\n opacity: 0.9;\n}\n\n.apr-error {\n padding: 10px 12px;\n background: var(--mj-status-error-bg);\n color: var(--mj-status-error-text);\n border: 1px solid var(--mj-status-error-border);\n border-radius: 6px;\n font-size: 13px;\n display: flex;\n align-items: center;\n gap: 8px;\n}\n\n.apr-footer {\n display: flex;\n gap: 8px;\n padding: 14px 20px;\n border-top: 1px solid var(--mj-border-subtle);\n background: var(--mj-bg-surface-card);\n}\n\n.apr-btn {\n padding: 9px 16px;\n border-radius: 6px;\n font-size: 13px;\n font-weight: 500;\n cursor: pointer;\n border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-surface);\n color: var(--mj-text-primary);\n display: inline-flex;\n align-items: center;\n gap: 6px;\n}\n\n.apr-btn:hover:not(:disabled) {\n background: var(--mj-bg-surface-hover);\n}\n\n.apr-btn.primary {\n background: var(--mj-brand-primary);\n color: var(--mj-text-inverse, white);\n border-color: var(--mj-brand-primary);\n}\n\n.apr-btn.primary:hover:not(:disabled) {\n filter: brightness(0.92);\n}\n\n.apr-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n"] }]
277
+ }], () => [{ type: i0.ChangeDetectorRef }], { Visible: [{
278
+ type: Input
279
+ }], Pin: [{
280
+ type: Input
281
+ }], Result: [{
282
+ type: Output
283
+ }] }); })();
284
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ActionPinRunnerDialogComponent, { className: "ActionPinRunnerDialogComponent", filePath: "src/Home/action-pin-runner-dialog.component.ts", lineNumber: 26 }); })();
285
+ //# sourceMappingURL=action-pin-runner-dialog.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action-pin-runner-dialog.component.js","sourceRoot":"","sources":["../../src/Home/action-pin-runner-dialog.component.ts","../../src/Home/action-pin-runner-dialog.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, OnChanges, SimpleChanges, ChangeDetectorRef, ViewEncapsulation } from '@angular/core';\nimport { Metadata } from '@memberjunction/core';\nimport { GraphQLActionClient, GraphQLDataProvider } from '@memberjunction/graphql-dataprovider';\nimport { ActionParam } from '@memberjunction/actions-base';\nimport { HomeAppPinnedItem, ActionPinConfiguration } from '@memberjunction/ng-shared';\n\n/**\n * Result emitted after the action finishes (or the dialog is cancelled).\n */\nexport interface ActionPinRunResult {\n Closed: true;\n}\n\ninterface RuntimeField {\n Name: string;\n Value: string;\n}\n\n@Component({\n standalone: false,\n selector: 'mj-action-pin-runner-dialog',\n templateUrl: './action-pin-runner-dialog.component.html',\n styleUrls: ['./action-pin-runner-dialog.component.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ActionPinRunnerDialogComponent implements OnChanges {\n @Input() Visible = false;\n @Input() Pin: HomeAppPinnedItem | null = null;\n @Output() Result = new EventEmitter<ActionPinRunResult>();\n\n public RuntimeFields: RuntimeField[] = [];\n public IsRunning = false;\n public RunSucceeded: boolean | null = null;\n public ResultMessage: string | null = null;\n public ErrorMessage: string | null = null;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['Visible'] && this.Visible && this.Pin) {\n this.initFromPin();\n }\n }\n\n private getConfig(): ActionPinConfiguration | null {\n if (!this.Pin) return null;\n return this.Pin.Configuration as unknown as ActionPinConfiguration;\n }\n\n private initFromPin(): void {\n const cfg = this.getConfig();\n this.RuntimeFields = (cfg?.runtimeParamNames ?? []).map(name => ({ Name: name, Value: '' }));\n this.IsRunning = false;\n this.RunSucceeded = null;\n this.ResultMessage = null;\n this.ErrorMessage = null;\n this.cdr.markForCheck();\n }\n\n get AccentColor(): string {\n return this.getConfig()?.accentColor ?? 'var(--mj-brand-primary)';\n }\n\n get FaIcon(): string {\n return this.Pin?.Icon ?? 'fa-solid fa-bolt';\n }\n\n get ActionName(): string {\n return this.getConfig()?.actionName ?? 'Action';\n }\n\n CanRun(): boolean {\n if (this.IsRunning) return false;\n // Runtime fields without values are allowed (action may handle missing params).\n // The action itself reports required-param errors via its result.\n return true;\n }\n\n async Run(): Promise<void> {\n const cfg = this.getConfig();\n if (!cfg || !cfg.actionId) {\n this.ErrorMessage = 'Pin is missing an actionId — cannot execute.';\n this.cdr.markForCheck();\n return;\n }\n\n this.IsRunning = true;\n this.RunSucceeded = null;\n this.ResultMessage = null;\n this.ErrorMessage = null;\n this.cdr.markForCheck();\n\n try {\n const params = this.buildActionParams(cfg);\n const provider = Metadata.Provider as GraphQLDataProvider;\n const actionClient = new GraphQLActionClient(provider);\n const result = await actionClient.RunAction(cfg.actionId, params);\n this.RunSucceeded = result.Success;\n this.ResultMessage = result.Message ?? (result.Success ? 'Action completed.' : 'Action reported a failure.');\n } catch (err) {\n this.RunSucceeded = false;\n this.ErrorMessage = `Execution failed: ${(err as Error).message}`;\n } finally {\n this.IsRunning = false;\n this.cdr.markForCheck();\n }\n }\n\n private buildActionParams(cfg: ActionPinConfiguration): ActionParam[] {\n const params: ActionParam[] = [];\n for (const [name, value] of Object.entries(cfg.presetParams ?? {})) {\n params.push({ Name: name, Value: value, Type: 'Input' });\n }\n for (const f of this.RuntimeFields) {\n if (f.Value !== '') {\n params.push({ Name: f.Name, Value: f.Value, Type: 'Input' });\n }\n }\n return params;\n }\n\n Close(): void {\n if (this.IsRunning) return;\n this.Result.emit({ Closed: true });\n }\n}\n","@if (Visible && Pin) {\n <div class=\"apr-backdrop\" (click)=\"Close()\"></div>\n <div class=\"apr-dialog\" role=\"dialog\" aria-modal=\"true\">\n <div class=\"apr-hero\" [style.background]=\"'linear-gradient(135deg, ' + AccentColor + ' 0%, ' + AccentColor + 'cc 100%)'\">\n <div class=\"apr-hero-icon\">\n <i [class]=\"FaIcon\"></i>\n </div>\n <div class=\"apr-hero-info\">\n <div class=\"apr-hero-title\">{{ Pin.DisplayName }}</div>\n <div class=\"apr-hero-sub\">{{ ActionName }}</div>\n </div>\n <button class=\"apr-close\" (click)=\"Close()\" [disabled]=\"IsRunning\" aria-label=\"Close\">\n <i class=\"fa-solid fa-xmark\"></i>\n </button>\n </div>\n\n <div class=\"apr-body\">\n @if (RunSucceeded === null) {\n @if (RuntimeFields.length === 0) {\n <div class=\"apr-no-fields\">\n <i class=\"fa-solid fa-circle-info\"></i>\n This action runs with all parameters preset — no input needed.\n </div>\n } @else {\n <div class=\"apr-help\">Provide values for the parameters below:</div>\n <div class=\"apr-fields\">\n @for (f of RuntimeFields; track f.Name) {\n <div class=\"apr-field\">\n <label [for]=\"'rf-' + f.Name\">{{ f.Name }}</label>\n <input [id]=\"'rf-' + f.Name\"\n type=\"text\"\n class=\"mj-input\"\n [(ngModel)]=\"f.Value\"\n [disabled]=\"IsRunning\"\n [placeholder]=\"'Enter ' + f.Name\" />\n </div>\n }\n </div>\n }\n } @else {\n <div class=\"apr-result\" [class.success]=\"RunSucceeded\" [class.failure]=\"!RunSucceeded\">\n <div class=\"apr-result-icon\">\n @if (RunSucceeded) {\n <i class=\"fa-solid fa-circle-check\"></i>\n } @else {\n <i class=\"fa-solid fa-circle-xmark\"></i>\n }\n </div>\n <div class=\"apr-result-text\">\n <div class=\"apr-result-title\">{{ RunSucceeded ? 'Action completed' : 'Action failed' }}</div>\n @if (ResultMessage) {\n <div class=\"apr-result-msg\">{{ ResultMessage }}</div>\n }\n </div>\n </div>\n }\n\n @if (ErrorMessage) {\n <div class=\"apr-error\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i> {{ ErrorMessage }}\n </div>\n }\n </div>\n\n <div class=\"apr-footer\">\n @if (RunSucceeded === null) {\n <button type=\"button\" class=\"apr-btn primary\"\n [disabled]=\"!CanRun()\"\n [style.background]=\"AccentColor\"\n [style.border-color]=\"AccentColor\"\n (click)=\"Run()\">\n @if (IsRunning) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i> Running…\n } @else {\n <i class=\"fa-solid fa-play\"></i> Run action\n }\n </button>\n <button type=\"button\" class=\"apr-btn\" [disabled]=\"IsRunning\" (click)=\"Close()\">\n Cancel\n </button>\n } @else {\n <button type=\"button\" class=\"apr-btn primary\" (click)=\"Close()\">\n Done\n </button>\n }\n </div>\n </div>\n}\n"]}
@@ -4,6 +4,8 @@ import { BaseResourceComponent, RecentAccessService, RecentAccessItem, HomeAppPi
4
4
  import { ResourceData, MJUserFavoriteEntity, MJUserNotificationEntity } from '@memberjunction/core-entities';
5
5
  import { ApplicationManager, BaseApplication } from '@memberjunction/ng-base-application';
6
6
  import { UserAppConfigComponent } from '@memberjunction/ng-explorer-settings';
7
+ import { ActionPinConfigResult } from './action-pin-config-dialog.component';
8
+ import { ActionPinRunResult } from './action-pin-runner-dialog.component';
7
9
  import * as i0 from "@angular/core";
8
10
  /**
9
11
  * Cached app data with pre-computed values for optimal rendering performance
@@ -77,6 +79,12 @@ export declare class HomeDashboardComponent extends BaseResourceComponent implem
77
79
  name: string;
78
80
  pinned: boolean;
79
81
  }[];
82
+ AvailableActions: {
83
+ id: string;
84
+ name: string;
85
+ description: string;
86
+ pinned: boolean;
87
+ }[];
80
88
  AvailableApps: {
81
89
  appId: string;
82
90
  appName: string;
@@ -89,6 +97,12 @@ export declare class HomeDashboardComponent extends BaseResourceComponent implem
89
97
  }[];
90
98
  }[];
91
99
  AddPanelLoading: boolean;
100
+ ActionConfigDialogVisible: boolean;
101
+ ActionConfigActionId: string | null;
102
+ ActionConfigActionName: string | null;
103
+ ActionConfigActionDescription: string | null;
104
+ ActionRunnerDialogVisible: boolean;
105
+ ActionRunnerPin: HomeAppPinnedItem | null;
92
106
  PanelSectionCollapsed: Record<string, boolean>;
93
107
  PinMenuVisible: boolean;
94
108
  PinMenuX: number;
@@ -277,6 +291,8 @@ export declare class HomeDashboardComponent extends BaseResourceComponent implem
277
291
  * Get display label for a resource type
278
292
  */
279
293
  GetResourceTypeLabel(pin: HomeAppPinnedItem): string;
294
+ /** Accent color for a pin — prefers the stored accentColor in Configuration, falls back to Color, then CSS var */
295
+ GetPinAccentColor(pin: HomeAppPinnedItem): string;
280
296
  /**
281
297
  * Get the app icon for a pin by looking up the app by name
282
298
  */
@@ -338,6 +354,16 @@ export declare class HomeDashboardComponent extends BaseResourceComponent implem
338
354
  * Pin a resource from the Add Panel
339
355
  */
340
356
  PinFromPanel(resourceType: string, id: string, name: string): void;
357
+ /**
358
+ * Open the Configure Action Pin dialog — triggered when the user clicks an Action
359
+ * in the Add Pin panel. Actions need extra configuration (preset params, runtime
360
+ * params, title, theming) before they can be pinned.
361
+ */
362
+ OpenActionPinConfig(actionId: string, actionName: string, description: string): void;
363
+ /** Callback from the Configure Action Pin dialog */
364
+ OnActionConfigResult(result: ActionPinConfigResult): void;
365
+ /** Callback from the Run Action Pin dialog */
366
+ OnActionRunnerResult(_result: ActionPinRunResult): void;
341
367
  /**
342
368
  * Resolve the selected group — handles the "new group" option
343
369
  */
@@ -1 +1 @@
1
- {"version":3,"file":"home-dashboard.component.d.ts","sourceRoot":"","sources":["../../src/Home/home-dashboard.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"home-dashboard.component.d.ts","sourceRoot":"","sources":["../../src/Home/home-dashboard.component.ts"],"names":[],"mappings":"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"}