@memberjunction/ng-dashboards 2.127.0 → 2.129.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 (171) hide show
  1. package/dist/AI/components/agents/agent-configuration.component.d.ts +34 -1
  2. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  3. package/dist/AI/components/agents/agent-configuration.component.js +419 -109
  4. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  5. package/dist/AI/components/agents/agent-editor.component.d.ts +1 -1
  6. package/dist/AI/components/agents/agent-editor.component.d.ts.map +1 -1
  7. package/dist/AI/components/agents/agent-filter-panel.component.d.ts +1 -1
  8. package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +1 -1
  9. package/dist/AI/components/agents/agent-filter-panel.component.js +3 -3
  10. package/dist/AI/components/agents/agent-filter-panel.component.js.map +1 -1
  11. package/dist/AI/components/execution-monitoring.component.d.ts +1 -1
  12. package/dist/AI/components/execution-monitoring.component.d.ts.map +1 -1
  13. package/dist/AI/components/execution-monitoring.component.js +3 -3
  14. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  15. package/dist/AI/components/models/{model-management-v2.component.d.ts → model-management.component.d.ts} +21 -5
  16. package/dist/AI/components/models/model-management.component.d.ts.map +1 -0
  17. package/dist/AI/components/models/model-management.component.js +1283 -0
  18. package/dist/AI/components/models/model-management.component.js.map +1 -0
  19. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts +2 -1
  20. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.d.ts.map +1 -1
  21. package/dist/AI/components/prompts/prompt-filter-panel.component.js +2 -2
  22. package/dist/AI/components/prompts/{prompt-management-v2.component.d.ts → prompt-management.component.d.ts} +30 -5
  23. package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -0
  24. package/dist/AI/components/prompts/prompt-management.component.js +1079 -0
  25. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -0
  26. package/dist/AI/components/prompts/prompt-version-control.component.d.ts +2 -1
  27. package/dist/AI/components/prompts/prompt-version-control.component.d.ts.map +1 -1
  28. package/dist/AI/components/prompts/prompt-version-control.component.js +1 -1
  29. package/dist/AI/components/prompts/prompt-version-control.component.js.map +1 -1
  30. package/dist/AI/components/system/system-config-filter-panel.component.js +2 -2
  31. package/dist/AI/components/system/system-configuration.component.d.ts +55 -11
  32. package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
  33. package/dist/AI/components/system/system-configuration.component.js +790 -131
  34. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  35. package/dist/AI/components/widgets/kpi-card.component.d.ts.map +1 -1
  36. package/dist/AI/components/widgets/kpi-card.component.js +3 -3
  37. package/dist/AI/components/widgets/kpi-card.component.js.map +1 -1
  38. package/dist/AI/index.d.ts +2 -2
  39. package/dist/AI/index.d.ts.map +1 -1
  40. package/dist/AI/index.js +2 -2
  41. package/dist/AI/index.js.map +1 -1
  42. package/dist/AI/services/ai-instrumentation.service.d.ts +5 -6
  43. package/dist/AI/services/ai-instrumentation.service.d.ts.map +1 -1
  44. package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
  45. package/dist/Communication/communication-dashboard.component.d.ts +2 -0
  46. package/dist/Communication/communication-dashboard.component.d.ts.map +1 -1
  47. package/dist/Communication/communication-dashboard.component.js +5 -2
  48. package/dist/Communication/communication-dashboard.component.js.map +1 -1
  49. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts +3 -2
  50. package/dist/ComponentStudio/component-studio-dashboard.component.d.ts.map +1 -1
  51. package/dist/ComponentStudio/component-studio-dashboard.component.js +7 -3
  52. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  53. package/dist/Credentials/components/credential-category-edit-panel.component.d.ts +44 -0
  54. package/dist/Credentials/components/credential-category-edit-panel.component.d.ts.map +1 -0
  55. package/dist/Credentials/components/credential-category-edit-panel.component.js +456 -0
  56. package/dist/Credentials/components/credential-category-edit-panel.component.js.map +1 -0
  57. package/dist/Credentials/components/credential-edit-panel.component.d.ts +70 -0
  58. package/dist/Credentials/components/credential-edit-panel.component.d.ts.map +1 -0
  59. package/dist/Credentials/components/credential-edit-panel.component.js +694 -0
  60. package/dist/Credentials/components/credential-edit-panel.component.js.map +1 -0
  61. package/dist/Credentials/components/credential-type-edit-panel.component.d.ts +56 -0
  62. package/dist/Credentials/components/credential-type-edit-panel.component.d.ts.map +1 -0
  63. package/dist/Credentials/components/credential-type-edit-panel.component.js +563 -0
  64. package/dist/Credentials/components/credential-type-edit-panel.component.js.map +1 -0
  65. package/dist/Credentials/components/credentials-audit-resource.component.d.ts +81 -0
  66. package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -0
  67. package/dist/Credentials/components/credentials-audit-resource.component.js +864 -0
  68. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -0
  69. package/dist/Credentials/components/credentials-categories-resource.component.d.ts +61 -0
  70. package/dist/Credentials/components/credentials-categories-resource.component.d.ts.map +1 -0
  71. package/dist/Credentials/components/credentials-categories-resource.component.js +816 -0
  72. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -0
  73. package/dist/Credentials/components/credentials-list-resource.component.d.ts +83 -0
  74. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -0
  75. package/dist/Credentials/components/credentials-list-resource.component.js +1253 -0
  76. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -0
  77. package/dist/Credentials/components/credentials-overview-resource.component.d.ts +99 -0
  78. package/dist/Credentials/components/credentials-overview-resource.component.d.ts.map +1 -0
  79. package/dist/Credentials/components/credentials-overview-resource.component.js +936 -0
  80. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -0
  81. package/dist/Credentials/components/credentials-types-resource.component.d.ts +70 -0
  82. package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -0
  83. package/dist/Credentials/components/credentials-types-resource.component.js +868 -0
  84. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -0
  85. package/dist/Credentials/credentials-dashboard.component.d.ts +37 -0
  86. package/dist/Credentials/credentials-dashboard.component.d.ts.map +1 -0
  87. package/dist/Credentials/credentials-dashboard.component.js +290 -0
  88. package/dist/Credentials/credentials-dashboard.component.js.map +1 -0
  89. package/dist/Credentials/index.d.ts +7 -0
  90. package/dist/Credentials/index.d.ts.map +1 -0
  91. package/dist/Credentials/index.js +9 -0
  92. package/dist/Credentials/index.js.map +1 -0
  93. package/dist/Credentials/pipes/group-by.pipe.d.ts +13 -0
  94. package/dist/Credentials/pipes/group-by.pipe.d.ts.map +1 -0
  95. package/dist/Credentials/pipes/group-by.pipe.js +29 -0
  96. package/dist/Credentials/pipes/group-by.pipe.js.map +1 -0
  97. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts +2 -2
  98. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.d.ts +3 -3
  99. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.d.ts.map +1 -1
  100. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.js +50 -19
  101. package/dist/DataExplorer/components/view-config-panel/view-config-panel.component.js.map +1 -1
  102. package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts +17 -1
  103. package/dist/DataExplorer/components/view-selector/view-selector.component.d.ts.map +1 -1
  104. package/dist/DataExplorer/components/view-selector/view-selector.component.js +77 -45
  105. package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +1 -1
  106. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +36 -0
  107. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  108. package/dist/DataExplorer/data-explorer-dashboard.component.js +552 -368
  109. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  110. package/dist/DataExplorer/services/explorer-state.service.d.ts +5 -5
  111. package/dist/DataExplorer/services/explorer-state.service.d.ts.map +1 -1
  112. package/dist/DataExplorer/services/explorer-state.service.js +125 -151
  113. package/dist/DataExplorer/services/explorer-state.service.js.map +1 -1
  114. package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts +15 -19
  115. package/dist/EntityAdmin/entity-admin-dashboard.component.d.ts.map +1 -1
  116. package/dist/EntityAdmin/entity-admin-dashboard.component.js +70 -26
  117. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  118. package/dist/Home/home-dashboard.component.d.ts +6 -5
  119. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  120. package/dist/Home/home-dashboard.component.js +174 -166
  121. package/dist/Home/home-dashboard.component.js.map +1 -1
  122. package/dist/Scheduling/scheduling-dashboard.component.d.ts +2 -0
  123. package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
  124. package/dist/Scheduling/scheduling-dashboard.component.js +5 -2
  125. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  126. package/dist/Scheduling/services/scheduling-instrumentation.service.d.ts.map +1 -1
  127. package/dist/Scheduling/services/scheduling-instrumentation.service.js +4 -2
  128. package/dist/Scheduling/services/scheduling-instrumentation.service.js.map +1 -1
  129. package/dist/SystemDiagnostics/index.d.ts +2 -0
  130. package/dist/SystemDiagnostics/index.d.ts.map +1 -0
  131. package/dist/SystemDiagnostics/index.js +3 -0
  132. package/dist/SystemDiagnostics/index.js.map +1 -0
  133. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts +497 -0
  134. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -0
  135. package/dist/SystemDiagnostics/system-diagnostics.component.js +6063 -0
  136. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -0
  137. package/dist/Testing/testing-dashboard.component.d.ts +2 -0
  138. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  139. package/dist/Testing/testing-dashboard.component.js +5 -2
  140. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  141. package/dist/module.d.ts +103 -94
  142. package/dist/module.d.ts.map +1 -1
  143. package/dist/module.js +94 -29
  144. package/dist/module.js.map +1 -1
  145. package/dist/public-api.d.ts +3 -1
  146. package/dist/public-api.d.ts.map +1 -1
  147. package/dist/public-api.js +21 -1
  148. package/dist/public-api.js.map +1 -1
  149. package/package.json +28 -25
  150. package/dist/AI/components/models/model-management-v2.component.d.ts.map +0 -1
  151. package/dist/AI/components/models/model-management-v2.component.js +0 -981
  152. package/dist/AI/components/models/model-management-v2.component.js.map +0 -1
  153. package/dist/AI/components/prompts/prompt-management-v2.component.d.ts.map +0 -1
  154. package/dist/AI/components/prompts/prompt-management-v2.component.js +0 -811
  155. package/dist/AI/components/prompts/prompt-management-v2.component.js.map +0 -1
  156. package/dist/EntityAdmin/components/entity-details.component.d.ts +0 -50
  157. package/dist/EntityAdmin/components/entity-details.component.d.ts.map +0 -1
  158. package/dist/EntityAdmin/components/entity-details.component.js +0 -680
  159. package/dist/EntityAdmin/components/entity-details.component.js.map +0 -1
  160. package/dist/EntityAdmin/components/entity-filter-panel.component.d.ts +0 -31
  161. package/dist/EntityAdmin/components/entity-filter-panel.component.d.ts.map +0 -1
  162. package/dist/EntityAdmin/components/entity-filter-panel.component.js +0 -160
  163. package/dist/EntityAdmin/components/entity-filter-panel.component.js.map +0 -1
  164. package/dist/EntityAdmin/components/erd-composite.component.d.ts +0 -73
  165. package/dist/EntityAdmin/components/erd-composite.component.d.ts.map +0 -1
  166. package/dist/EntityAdmin/components/erd-composite.component.js +0 -271
  167. package/dist/EntityAdmin/components/erd-composite.component.js.map +0 -1
  168. package/dist/EntityAdmin/components/erd-diagram.component.d.ts +0 -47
  169. package/dist/EntityAdmin/components/erd-diagram.component.d.ts.map +0 -1
  170. package/dist/EntityAdmin/components/erd-diagram.component.js +0 -618
  171. package/dist/EntityAdmin/components/erd-diagram.component.js.map +0 -1
@@ -0,0 +1,456 @@
1
+ import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy } from '@angular/core';
2
+ import { Metadata, RunView } from '@memberjunction/core';
3
+ import { MJNotificationService } from '@memberjunction/ng-notifications';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/forms";
7
+ import * as i3 from "@memberjunction/ng-shared-generic";
8
+ function CredentialCategoryEditPanelComponent_div_0_span_9_Template(rf, ctx) { if (rf & 1) {
9
+ i0.ɵɵelementStart(0, "span", 21);
10
+ i0.ɵɵtext(1);
11
+ i0.ɵɵelementEnd();
12
+ } if (rf & 2) {
13
+ const ctx_r1 = i0.ɵɵnextContext(2);
14
+ i0.ɵɵadvance();
15
+ i0.ɵɵtextInterpolate1(" Under: ", ctx_r1.getParentPath(ctx_r1.parentId), " ");
16
+ } }
17
+ function CredentialCategoryEditPanelComponent_div_0_span_10_Template(rf, ctx) { if (rf & 1) {
18
+ i0.ɵɵelementStart(0, "span", 21);
19
+ i0.ɵɵtext(1, "Root category");
20
+ i0.ɵɵelementEnd();
21
+ } }
22
+ function CredentialCategoryEditPanelComponent_div_0_mj_loading_14_Template(rf, ctx) { if (rf & 1) {
23
+ i0.ɵɵelement(0, "mj-loading", 22);
24
+ } }
25
+ function CredentialCategoryEditPanelComponent_div_0_form_15_option_15_Template(rf, ctx) { if (rf & 1) {
26
+ i0.ɵɵelementStart(0, "option", 32);
27
+ i0.ɵɵtext(1);
28
+ i0.ɵɵelementEnd();
29
+ } if (rf & 2) {
30
+ const cat_r4 = ctx.$implicit;
31
+ const ctx_r1 = i0.ɵɵnextContext(3);
32
+ i0.ɵɵproperty("ngValue", cat_r4.ID);
33
+ i0.ɵɵadvance();
34
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.getParentPath(cat_r4.ID), " ");
35
+ } }
36
+ function CredentialCategoryEditPanelComponent_div_0_form_15_button_36_Template(rf, ctx) { if (rf & 1) {
37
+ const _r5 = i0.ɵɵgetCurrentView();
38
+ i0.ɵɵelementStart(0, "button", 45);
39
+ i0.ɵɵlistener("click", function CredentialCategoryEditPanelComponent_div_0_form_15_button_36_Template_button_click_0_listener() { const suggestion_r6 = i0.ɵɵrestoreView(_r5).$implicit; const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.selectIcon(suggestion_r6.icon)); });
40
+ i0.ɵɵelement(1, "i");
41
+ i0.ɵɵelementEnd();
42
+ } if (rf & 2) {
43
+ const suggestion_r6 = ctx.$implicit;
44
+ const ctx_r1 = i0.ɵɵnextContext(3);
45
+ i0.ɵɵclassProp("selected", ctx_r1.iconClass === suggestion_r6.icon);
46
+ i0.ɵɵproperty("disabled", ctx_r1.isSaving)("title", suggestion_r6.label);
47
+ i0.ɵɵadvance();
48
+ i0.ɵɵclassMap(suggestion_r6.icon);
49
+ } }
50
+ function CredentialCategoryEditPanelComponent_div_0_form_15_div_37_Template(rf, ctx) { if (rf & 1) {
51
+ i0.ɵɵelementStart(0, "div", 46)(1, "div", 47);
52
+ i0.ɵɵtext(2, "Preview:");
53
+ i0.ɵɵelementEnd();
54
+ i0.ɵɵelementStart(3, "div", 48);
55
+ i0.ɵɵelement(4, "i");
56
+ i0.ɵɵelementEnd()();
57
+ } if (rf & 2) {
58
+ const ctx_r1 = i0.ɵɵnextContext(3);
59
+ i0.ɵɵadvance(4);
60
+ i0.ɵɵclassMap(ctx_r1.iconClass);
61
+ } }
62
+ function CredentialCategoryEditPanelComponent_div_0_form_15_Template(rf, ctx) { if (rf & 1) {
63
+ const _r3 = i0.ɵɵgetCurrentView();
64
+ i0.ɵɵelementStart(0, "form", 23);
65
+ i0.ɵɵlistener("submit", function CredentialCategoryEditPanelComponent_div_0_form_15_Template_form_submit_0_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); $event.preventDefault(); return i0.ɵɵresetView(ctx_r1.save()); });
66
+ i0.ɵɵelementStart(1, "div", 24)(2, "h3", 25);
67
+ i0.ɵɵelement(3, "i", 26);
68
+ i0.ɵɵtext(4, " Basic Information ");
69
+ i0.ɵɵelementEnd();
70
+ i0.ɵɵelementStart(5, "div", 27)(6, "label", 28);
71
+ i0.ɵɵtext(7, "Name");
72
+ i0.ɵɵelementEnd();
73
+ i0.ɵɵelementStart(8, "input", 29);
74
+ i0.ɵɵtwoWayListener("ngModelChange", function CredentialCategoryEditPanelComponent_div_0_form_15_Template_input_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.name, $event) || (ctx_r1.name = $event); return i0.ɵɵresetView($event); });
75
+ i0.ɵɵelementEnd()();
76
+ i0.ɵɵelementStart(9, "div", 27)(10, "label", 30);
77
+ i0.ɵɵtext(11, "Parent Category");
78
+ i0.ɵɵelementEnd();
79
+ i0.ɵɵelementStart(12, "select", 31);
80
+ i0.ɵɵtwoWayListener("ngModelChange", function CredentialCategoryEditPanelComponent_div_0_form_15_Template_select_ngModelChange_12_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.parentId, $event) || (ctx_r1.parentId = $event); return i0.ɵɵresetView($event); });
81
+ i0.ɵɵelementStart(13, "option", 32);
82
+ i0.ɵɵtext(14, "No parent (root category)");
83
+ i0.ɵɵelementEnd();
84
+ i0.ɵɵtemplate(15, CredentialCategoryEditPanelComponent_div_0_form_15_option_15_Template, 2, 2, "option", 33);
85
+ i0.ɵɵelementEnd();
86
+ i0.ɵɵelementStart(16, "span", 34);
87
+ i0.ɵɵtext(17, "Select a parent to create a subcategory");
88
+ i0.ɵɵelementEnd()();
89
+ i0.ɵɵelementStart(18, "div", 27)(19, "label", 35);
90
+ i0.ɵɵtext(20, "Description");
91
+ i0.ɵɵelementEnd();
92
+ i0.ɵɵelementStart(21, "textarea", 36);
93
+ i0.ɵɵtwoWayListener("ngModelChange", function CredentialCategoryEditPanelComponent_div_0_form_15_Template_textarea_ngModelChange_21_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.description, $event) || (ctx_r1.description = $event); return i0.ɵɵresetView($event); });
94
+ i0.ɵɵelementEnd()()();
95
+ i0.ɵɵelementStart(22, "div", 24)(23, "h3", 25);
96
+ i0.ɵɵelement(24, "i", 37);
97
+ i0.ɵɵtext(25, " Icon ");
98
+ i0.ɵɵelementEnd();
99
+ i0.ɵɵelementStart(26, "div", 27)(27, "label", 38);
100
+ i0.ɵɵtext(28, "Custom Icon Class");
101
+ i0.ɵɵelementEnd();
102
+ i0.ɵɵelementStart(29, "input", 39);
103
+ i0.ɵɵtwoWayListener("ngModelChange", function CredentialCategoryEditPanelComponent_div_0_form_15_Template_input_ngModelChange_29_listener($event) { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); i0.ɵɵtwoWayBindingSet(ctx_r1.iconClass, $event) || (ctx_r1.iconClass = $event); return i0.ɵɵresetView($event); });
104
+ i0.ɵɵelementEnd();
105
+ i0.ɵɵelementStart(30, "span", 34);
106
+ i0.ɵɵtext(31, "Font Awesome icon class");
107
+ i0.ɵɵelementEnd()();
108
+ i0.ɵɵelementStart(32, "div", 40)(33, "p", 41);
109
+ i0.ɵɵtext(34, "Quick pick:");
110
+ i0.ɵɵelementEnd();
111
+ i0.ɵɵelementStart(35, "div", 42);
112
+ i0.ɵɵtemplate(36, CredentialCategoryEditPanelComponent_div_0_form_15_button_36_Template, 2, 6, "button", 43);
113
+ i0.ɵɵelementEnd()();
114
+ i0.ɵɵtemplate(37, CredentialCategoryEditPanelComponent_div_0_form_15_div_37_Template, 5, 2, "div", 44);
115
+ i0.ɵɵelementEnd()();
116
+ } if (rf & 2) {
117
+ const ctx_r1 = i0.ɵɵnextContext(2);
118
+ i0.ɵɵadvance(8);
119
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.name);
120
+ i0.ɵɵproperty("disabled", ctx_r1.isSaving);
121
+ i0.ɵɵadvance(4);
122
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.parentId);
123
+ i0.ɵɵproperty("disabled", ctx_r1.isSaving);
124
+ i0.ɵɵadvance();
125
+ i0.ɵɵproperty("ngValue", "");
126
+ i0.ɵɵadvance(2);
127
+ i0.ɵɵproperty("ngForOf", ctx_r1.availableParentCategories);
128
+ i0.ɵɵadvance(6);
129
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.description);
130
+ i0.ɵɵproperty("disabled", ctx_r1.isSaving);
131
+ i0.ɵɵadvance(8);
132
+ i0.ɵɵtwoWayProperty("ngModel", ctx_r1.iconClass);
133
+ i0.ɵɵproperty("disabled", ctx_r1.isSaving);
134
+ i0.ɵɵadvance(7);
135
+ i0.ɵɵproperty("ngForOf", ctx_r1.iconSuggestions);
136
+ i0.ɵɵadvance();
137
+ i0.ɵɵproperty("ngIf", ctx_r1.iconClass);
138
+ } }
139
+ function CredentialCategoryEditPanelComponent_div_0_button_18_Template(rf, ctx) { if (rf & 1) {
140
+ const _r7 = i0.ɵɵgetCurrentView();
141
+ i0.ɵɵelementStart(0, "button", 49);
142
+ i0.ɵɵlistener("click", function CredentialCategoryEditPanelComponent_div_0_button_18_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.deleteCategory()); });
143
+ i0.ɵɵelement(1, "i", 50);
144
+ i0.ɵɵelementStart(2, "span");
145
+ i0.ɵɵtext(3, "Delete");
146
+ i0.ɵɵelementEnd()();
147
+ } if (rf & 2) {
148
+ const ctx_r1 = i0.ɵɵnextContext(2);
149
+ i0.ɵɵproperty("disabled", ctx_r1.isSaving);
150
+ } }
151
+ function CredentialCategoryEditPanelComponent_div_0_i_23_Template(rf, ctx) { if (rf & 1) {
152
+ i0.ɵɵelement(0, "i", 51);
153
+ } }
154
+ function CredentialCategoryEditPanelComponent_div_0_i_24_Template(rf, ctx) { if (rf & 1) {
155
+ i0.ɵɵelement(0, "i", 52);
156
+ } }
157
+ function CredentialCategoryEditPanelComponent_div_0_Template(rf, ctx) { if (rf & 1) {
158
+ const _r1 = i0.ɵɵgetCurrentView();
159
+ i0.ɵɵelementStart(0, "div", 1);
160
+ i0.ɵɵlistener("click", function CredentialCategoryEditPanelComponent_div_0_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onBackdropClick($event)); });
161
+ i0.ɵɵelementStart(1, "div", 2)(2, "div", 3)(3, "div", 4)(4, "div", 5);
162
+ i0.ɵɵelement(5, "i");
163
+ i0.ɵɵelementEnd();
164
+ i0.ɵɵelementStart(6, "div", 6)(7, "h2");
165
+ i0.ɵɵtext(8);
166
+ i0.ɵɵelementEnd();
167
+ i0.ɵɵtemplate(9, CredentialCategoryEditPanelComponent_div_0_span_9_Template, 2, 1, "span", 7)(10, CredentialCategoryEditPanelComponent_div_0_span_10_Template, 2, 0, "span", 7);
168
+ i0.ɵɵelementEnd()();
169
+ i0.ɵɵelementStart(11, "button", 8);
170
+ i0.ɵɵlistener("click", function CredentialCategoryEditPanelComponent_div_0_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closePanel()); });
171
+ i0.ɵɵelement(12, "i", 9);
172
+ i0.ɵɵelementEnd()();
173
+ i0.ɵɵelementStart(13, "div", 10);
174
+ i0.ɵɵtemplate(14, CredentialCategoryEditPanelComponent_div_0_mj_loading_14_Template, 1, 0, "mj-loading", 11)(15, CredentialCategoryEditPanelComponent_div_0_form_15_Template, 38, 12, "form", 12);
175
+ i0.ɵɵelementEnd();
176
+ i0.ɵɵelementStart(16, "div", 13)(17, "div", 14);
177
+ i0.ɵɵtemplate(18, CredentialCategoryEditPanelComponent_div_0_button_18_Template, 4, 1, "button", 15);
178
+ i0.ɵɵelementEnd();
179
+ i0.ɵɵelementStart(19, "div", 16)(20, "button", 17);
180
+ i0.ɵɵlistener("click", function CredentialCategoryEditPanelComponent_div_0_Template_button_click_20_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.closePanel()); });
181
+ i0.ɵɵtext(21, " Cancel ");
182
+ i0.ɵɵelementEnd();
183
+ i0.ɵɵelementStart(22, "button", 18);
184
+ i0.ɵɵlistener("click", function CredentialCategoryEditPanelComponent_div_0_Template_button_click_22_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.save()); });
185
+ i0.ɵɵtemplate(23, CredentialCategoryEditPanelComponent_div_0_i_23_Template, 1, 0, "i", 19)(24, CredentialCategoryEditPanelComponent_div_0_i_24_Template, 1, 0, "i", 20);
186
+ i0.ɵɵelementStart(25, "span");
187
+ i0.ɵɵtext(26);
188
+ i0.ɵɵelementEnd()()()()()();
189
+ } if (rf & 2) {
190
+ const ctx_r1 = i0.ɵɵnextContext();
191
+ i0.ɵɵadvance();
192
+ i0.ɵɵclassProp("open", ctx_r1.isOpen);
193
+ i0.ɵɵadvance(3);
194
+ i0.ɵɵstyleProp("background-color", "#6366f1" + "15")("color", "#6366f1");
195
+ i0.ɵɵadvance();
196
+ i0.ɵɵclassMap(ctx_r1.iconClass || "fa-solid fa-folder");
197
+ i0.ɵɵadvance(3);
198
+ i0.ɵɵtextInterpolate(ctx_r1.panelTitle);
199
+ i0.ɵɵadvance();
200
+ i0.ɵɵproperty("ngIf", ctx_r1.parentId);
201
+ i0.ɵɵadvance();
202
+ i0.ɵɵproperty("ngIf", !ctx_r1.parentId);
203
+ i0.ɵɵadvance();
204
+ i0.ɵɵproperty("disabled", ctx_r1.isSaving);
205
+ i0.ɵɵadvance(3);
206
+ i0.ɵɵproperty("ngIf", ctx_r1.isLoading);
207
+ i0.ɵɵadvance();
208
+ i0.ɵɵproperty("ngIf", !ctx_r1.isLoading);
209
+ i0.ɵɵadvance(3);
210
+ i0.ɵɵproperty("ngIf", !ctx_r1.isNew);
211
+ i0.ɵɵadvance(2);
212
+ i0.ɵɵproperty("disabled", ctx_r1.isSaving);
213
+ i0.ɵɵadvance(2);
214
+ i0.ɵɵproperty("disabled", ctx_r1.isSaving || !ctx_r1.canSave);
215
+ i0.ɵɵadvance();
216
+ i0.ɵɵproperty("ngIf", ctx_r1.isSaving);
217
+ i0.ɵɵadvance();
218
+ i0.ɵɵproperty("ngIf", !ctx_r1.isSaving);
219
+ i0.ɵɵadvance(2);
220
+ i0.ɵɵtextInterpolate(ctx_r1.isNew ? "Create" : "Save");
221
+ } }
222
+ export function LoadCredentialCategoryEditPanel() {
223
+ // Prevents tree-shaking
224
+ }
225
+ export class CredentialCategoryEditPanelComponent {
226
+ cdr;
227
+ category = null;
228
+ isOpen = false;
229
+ close = new EventEmitter();
230
+ saved = new EventEmitter();
231
+ deleted = new EventEmitter();
232
+ isLoading = false;
233
+ isSaving = false;
234
+ isNew = false;
235
+ // All categories for parent selection
236
+ allCategories = [];
237
+ // Form fields
238
+ name = '';
239
+ description = '';
240
+ parentId = '';
241
+ iconClass = '';
242
+ // Icon suggestions
243
+ iconSuggestions = [
244
+ { icon: 'fa-solid fa-folder', label: 'Folder' },
245
+ { icon: 'fa-solid fa-lock', label: 'Lock' },
246
+ { icon: 'fa-solid fa-shield-halved', label: 'Shield' },
247
+ { icon: 'fa-solid fa-key', label: 'Key' },
248
+ { icon: 'fa-solid fa-cloud', label: 'Cloud' },
249
+ { icon: 'fa-solid fa-database', label: 'Database' },
250
+ { icon: 'fa-solid fa-brain', label: 'AI' },
251
+ { icon: 'fa-solid fa-envelope', label: 'Email' },
252
+ { icon: 'fa-solid fa-plug', label: 'Integration' },
253
+ { icon: 'fa-solid fa-server', label: 'Server' },
254
+ { icon: 'fa-solid fa-code', label: 'Code' },
255
+ { icon: 'fa-solid fa-globe', label: 'Web' }
256
+ ];
257
+ _metadata = new Metadata();
258
+ constructor(cdr) {
259
+ this.cdr = cdr;
260
+ }
261
+ ngOnInit() {
262
+ this.loadCategories();
263
+ }
264
+ get panelTitle() {
265
+ return this.isNew ? 'Create Category' : 'Edit Category';
266
+ }
267
+ get canSave() {
268
+ return this.name.trim().length > 0;
269
+ }
270
+ get availableParentCategories() {
271
+ // Exclude the current category and its descendants from parent options
272
+ if (!this.category || this.isNew) {
273
+ return this.allCategories;
274
+ }
275
+ const currentId = this.category.ID;
276
+ const descendantIds = this.getDescendantIds(currentId);
277
+ descendantIds.add(currentId);
278
+ return this.allCategories.filter(c => !descendantIds.has(c.ID));
279
+ }
280
+ getDescendantIds(categoryId) {
281
+ const descendants = new Set();
282
+ const findChildren = (parentId) => {
283
+ for (const cat of this.allCategories) {
284
+ if (cat.ParentID === parentId) {
285
+ descendants.add(cat.ID);
286
+ findChildren(cat.ID);
287
+ }
288
+ }
289
+ };
290
+ findChildren(categoryId);
291
+ return descendants;
292
+ }
293
+ async open(category, preselectedParentId) {
294
+ this.isLoading = true;
295
+ this.isOpen = true;
296
+ this.category = category;
297
+ this.isNew = !category || !category.ID;
298
+ this.cdr.markForCheck();
299
+ await this.loadCategories();
300
+ this.resetForm();
301
+ if (category && category.ID) {
302
+ this.populateFromCategory(category);
303
+ }
304
+ else if (preselectedParentId) {
305
+ this.parentId = preselectedParentId;
306
+ }
307
+ this.isLoading = false;
308
+ this.cdr.markForCheck();
309
+ }
310
+ async loadCategories() {
311
+ try {
312
+ const rv = new RunView();
313
+ const result = await rv.RunView({
314
+ EntityName: 'MJ: Credential Categories',
315
+ OrderBy: 'Name',
316
+ ResultType: 'entity_object'
317
+ });
318
+ if (result.Success) {
319
+ this.allCategories = result.Results;
320
+ }
321
+ }
322
+ catch (error) {
323
+ console.error('Error loading categories:', error);
324
+ }
325
+ this.cdr.markForCheck();
326
+ }
327
+ resetForm() {
328
+ this.name = '';
329
+ this.description = '';
330
+ this.parentId = '';
331
+ this.iconClass = '';
332
+ }
333
+ populateFromCategory(category) {
334
+ this.name = category.Name || '';
335
+ this.description = category.Description || '';
336
+ this.parentId = category.ParentID || '';
337
+ this.iconClass = category.IconClass || '';
338
+ }
339
+ selectIcon(icon) {
340
+ this.iconClass = icon;
341
+ this.cdr.markForCheck();
342
+ }
343
+ async save() {
344
+ if (!this.canSave) {
345
+ MJNotificationService.Instance.CreateSimpleNotification('Please enter a category name', 'warning', 3000);
346
+ return;
347
+ }
348
+ this.isSaving = true;
349
+ this.cdr.markForCheck();
350
+ try {
351
+ let entity;
352
+ if (this.isNew) {
353
+ entity = await this._metadata.GetEntityObject('MJ: Credential Categories');
354
+ }
355
+ else {
356
+ entity = this.category;
357
+ }
358
+ entity.Name = this.name.trim();
359
+ entity.Description = this.description.trim() || null;
360
+ entity.ParentID = this.parentId || null;
361
+ entity.IconClass = this.iconClass.trim() || null;
362
+ const success = await entity.Save();
363
+ if (success) {
364
+ const action = this.isNew ? 'created' : 'updated';
365
+ MJNotificationService.Instance.CreateSimpleNotification(`Category "${entity.Name}" ${action} successfully`, 'success', 3000);
366
+ this.saved.emit(entity);
367
+ this.closePanel();
368
+ }
369
+ else {
370
+ const errorMessage = entity.LatestResult?.Message || 'Unknown error';
371
+ console.error('Save failed:', errorMessage);
372
+ MJNotificationService.Instance.CreateSimpleNotification(`Failed to save category: ${errorMessage}`, 'error', 5000);
373
+ }
374
+ }
375
+ catch (error) {
376
+ console.error('Error saving category:', error);
377
+ MJNotificationService.Instance.CreateSimpleNotification('Error saving category', 'error', 3000);
378
+ }
379
+ finally {
380
+ this.isSaving = false;
381
+ this.cdr.markForCheck();
382
+ }
383
+ }
384
+ async deleteCategory() {
385
+ if (this.isNew || !this.category)
386
+ return;
387
+ const confirmed = confirm(`Are you sure you want to delete "${this.category.Name}"? This action cannot be undone.`);
388
+ if (!confirmed)
389
+ return;
390
+ this.isSaving = true;
391
+ this.cdr.markForCheck();
392
+ try {
393
+ const success = await this.category.Delete();
394
+ if (success) {
395
+ MJNotificationService.Instance.CreateSimpleNotification(`Category "${this.category.Name}" deleted successfully`, 'success', 3000);
396
+ this.deleted.emit(this.category.ID);
397
+ this.closePanel();
398
+ }
399
+ else {
400
+ const errorMessage = this.category.LatestResult?.Message || 'Unknown error';
401
+ MJNotificationService.Instance.CreateSimpleNotification(`Failed to delete category: ${errorMessage}`, 'error', 5000);
402
+ }
403
+ }
404
+ catch (error) {
405
+ console.error('Error deleting category:', error);
406
+ MJNotificationService.Instance.CreateSimpleNotification('Error deleting category', 'error', 3000);
407
+ }
408
+ finally {
409
+ this.isSaving = false;
410
+ this.cdr.markForCheck();
411
+ }
412
+ }
413
+ closePanel() {
414
+ this.isOpen = false;
415
+ this.category = null;
416
+ this.resetForm();
417
+ this.close.emit();
418
+ this.cdr.markForCheck();
419
+ }
420
+ onBackdropClick(event) {
421
+ if (event.target.classList.contains('panel-backdrop')) {
422
+ this.closePanel();
423
+ }
424
+ }
425
+ getParentPath(categoryId) {
426
+ const parts = [];
427
+ let current = this.allCategories.find(c => c.ID === categoryId);
428
+ while (current) {
429
+ parts.unshift(current.Name);
430
+ current = current.ParentID ? this.allCategories.find(c => c.ID === current.ParentID) : undefined;
431
+ }
432
+ return parts.join(' / ');
433
+ }
434
+ static ɵfac = function CredentialCategoryEditPanelComponent_Factory(t) { return new (t || CredentialCategoryEditPanelComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); };
435
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CredentialCategoryEditPanelComponent, selectors: [["mj-credential-category-edit-panel"]], inputs: { category: "category", isOpen: "isOpen" }, outputs: { close: "close", saved: "saved", deleted: "deleted" }, decls: 1, vars: 1, consts: [["class", "panel-backdrop", 3, "click", 4, "ngIf"], [1, "panel-backdrop", 3, "click"], [1, "edit-panel"], [1, "panel-header"], [1, "header-content"], [1, "header-icon"], [1, "header-text"], ["class", "header-subtitle", 4, "ngIf"], [1, "close-btn", 3, "click", "disabled"], [1, "fa-solid", "fa-times"], [1, "panel-body"], ["text", "Loading...", 4, "ngIf"], ["class", "category-form", 3, "submit", 4, "ngIf"], [1, "panel-footer"], [1, "footer-left"], ["class", "btn-delete", 3, "disabled", "click", 4, "ngIf"], [1, "footer-right"], [1, "btn-secondary", 3, "click", "disabled"], [1, "btn-primary", 3, "click", "disabled"], ["class", "fa-solid fa-spinner fa-spin", 4, "ngIf"], ["class", "fa-solid fa-check", 4, "ngIf"], [1, "header-subtitle"], ["text", "Loading..."], [1, "category-form", 3, "submit"], [1, "form-section"], [1, "section-title"], [1, "fa-solid", "fa-info-circle"], [1, "form-group"], ["for", "categoryName", 1, "required"], ["type", "text", "id", "categoryName", "name", "categoryName", "placeholder", "e.g., Production, Development, API Keys", "required", "", 3, "ngModelChange", "ngModel", "disabled"], ["for", "categoryParent"], ["id", "categoryParent", "name", "categoryParent", 3, "ngModelChange", "ngModel", "disabled"], [3, "ngValue"], [3, "ngValue", 4, "ngFor", "ngForOf"], [1, "field-hint"], ["for", "categoryDescription"], ["id", "categoryDescription", "name", "categoryDescription", "placeholder", "Optional description of this category...", "rows", "3", 3, "ngModelChange", "ngModel", "disabled"], [1, "fa-solid", "fa-icons"], ["for", "categoryIcon"], ["type", "text", "id", "categoryIcon", "name", "categoryIcon", "placeholder", "e.g., fa-solid fa-folder", 3, "ngModelChange", "ngModel", "disabled"], [1, "icon-suggestions"], [1, "suggestions-label"], [1, "icon-grid"], ["type", "button", "class", "icon-btn", 3, "selected", "disabled", "title", "click", 4, "ngFor", "ngForOf"], ["class", "icon-preview", 4, "ngIf"], ["type", "button", 1, "icon-btn", 3, "click", "disabled", "title"], [1, "icon-preview"], [1, "preview-label"], [1, "preview-icon"], [1, "btn-delete", 3, "click", "disabled"], [1, "fa-solid", "fa-trash"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-check"]], template: function CredentialCategoryEditPanelComponent_Template(rf, ctx) { if (rf & 1) {
436
+ i0.ɵɵtemplate(0, CredentialCategoryEditPanelComponent_div_0_Template, 27, 20, "div", 0);
437
+ } if (rf & 2) {
438
+ i0.ɵɵproperty("ngIf", ctx.isOpen);
439
+ } }, dependencies: [i1.NgForOf, i1.NgIf, i2.ɵNgNoValidate, i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i2.DefaultValueAccessor, i2.SelectControlValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.RequiredValidator, i2.NgModel, i2.NgForm, i3.LoadingComponent], styles: ["\n\n.panel-backdrop[_ngcontent-%COMP%] {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1000;\n display: flex;\n justify-content: flex-end;\n animation: _ngcontent-%COMP%_fadeIn 0.2s ease-out;\n}\n\n@keyframes _ngcontent-%COMP%_fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n\n\n.edit-panel[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 500px;\n height: 100%;\n background: #ffffff;\n display: flex;\n flex-direction: column;\n box-shadow: -4px 0 24px rgba(0, 0, 0, 0.15);\n transform: translateX(100%);\n animation: _ngcontent-%COMP%_slideIn 0.3s ease-out forwards;\n}\n\n@keyframes _ngcontent-%COMP%_slideIn {\n from { transform: translateX(100%); }\n to { transform: translateX(0); }\n}\n\n\n\n.panel-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n border-bottom: 1px solid #e5e7eb;\n background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);\n}\n\n.header-content[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.header-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 20px;\n flex-shrink: 0;\n}\n\n.header-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 18px;\n font-weight: 600;\n color: #1e293b;\n margin: 0 0 4px 0;\n}\n\n.header-subtitle[_ngcontent-%COMP%] {\n font-size: 13px;\n color: #64748b;\n}\n\n.close-btn[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n border: none;\n background: #f1f5f9;\n border-radius: 8px;\n cursor: pointer;\n color: #64748b;\n font-size: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s ease;\n}\n\n.close-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: #e2e8f0;\n color: #334155;\n}\n\n.close-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n\n\n.panel-body[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n scroll-behavior: smooth;\n -webkit-overflow-scrolling: touch;\n}\n\n\n\n.form-section[_ngcontent-%COMP%] {\n margin-bottom: 28px;\n}\n\n.form-section[_ngcontent-%COMP%]:last-child {\n margin-bottom: 0;\n}\n\n.section-title[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n font-weight: 600;\n color: #334155;\n margin: 0 0 16px 0;\n padding-bottom: 10px;\n border-bottom: 1px solid #f1f5f9;\n}\n\n.section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #6366f1;\n font-size: 14px;\n}\n\n\n\n.form-group[_ngcontent-%COMP%] {\n margin-bottom: 18px;\n}\n\n.form-group[_ngcontent-%COMP%]:last-child {\n margin-bottom: 0;\n}\n\n.form-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: block;\n font-size: 13px;\n font-weight: 500;\n color: #475569;\n margin-bottom: 6px;\n}\n\n.form-group[_ngcontent-%COMP%] label.required[_ngcontent-%COMP%]::after {\n content: '*';\n color: #ef4444;\n margin-left: 4px;\n}\n\n.form-group[_ngcontent-%COMP%] input[type=\"text\"][_ngcontent-%COMP%], \n.form-group[_ngcontent-%COMP%] select[_ngcontent-%COMP%], \n.form-group[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%] {\n width: 100%;\n padding: 10px 14px;\n border: 1px solid #d1d5db;\n border-radius: 8px;\n font-size: 14px;\n color: #1e293b;\n background: #ffffff;\n transition: all 0.15s ease;\n box-sizing: border-box;\n}\n\n.form-group[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus, \n.form-group[_ngcontent-%COMP%] select[_ngcontent-%COMP%]:focus, \n.form-group[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]:focus {\n outline: none;\n border-color: #6366f1;\n box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);\n}\n\n.form-group[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:disabled, \n.form-group[_ngcontent-%COMP%] select[_ngcontent-%COMP%]:disabled, \n.form-group[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]:disabled {\n background: #f8fafc;\n color: #94a3b8;\n cursor: not-allowed;\n}\n\n.form-group[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%] {\n resize: vertical;\n min-height: 80px;\n}\n\n.form-group[_ngcontent-%COMP%] select[_ngcontent-%COMP%] {\n cursor: pointer;\n}\n\n.field-hint[_ngcontent-%COMP%] {\n display: block;\n font-size: 12px;\n color: #94a3b8;\n margin-top: 5px;\n}\n\n\n\n.icon-suggestions[_ngcontent-%COMP%] {\n margin-top: 16px;\n}\n\n.suggestions-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 500;\n color: #64748b;\n margin: 0 0 10px 0;\n}\n\n.icon-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(6, 1fr);\n gap: 8px;\n}\n\n.icon-btn[_ngcontent-%COMP%] {\n width: 100%;\n aspect-ratio: 1;\n border: 2px solid #e5e7eb;\n border-radius: 8px;\n background: #ffffff;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n color: #64748b;\n transition: all 0.15s ease;\n}\n\n.icon-btn[_ngcontent-%COMP%]:hover:not(:disabled) {\n border-color: #6366f1;\n color: #6366f1;\n background: #f0f1ff;\n}\n\n.icon-btn.selected[_ngcontent-%COMP%] {\n border-color: #6366f1;\n background: #6366f1;\n color: #ffffff;\n}\n\n.icon-btn[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n\n\n.icon-preview[_ngcontent-%COMP%] {\n margin-top: 16px;\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.preview-label[_ngcontent-%COMP%] {\n font-size: 12px;\n font-weight: 500;\n color: #64748b;\n}\n\n.preview-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n border-radius: 12px;\n background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 20px;\n box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);\n}\n\n\n\n.panel-footer[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 24px;\n border-top: 1px solid #e5e7eb;\n background: #f8fafc;\n}\n\n.footer-left[_ngcontent-%COMP%], \n.footer-right[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.btn-primary[_ngcontent-%COMP%], \n.btn-secondary[_ngcontent-%COMP%], \n.btn-delete[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n border: none;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.btn-primary[_ngcontent-%COMP%] {\n background: #6366f1;\n color: #ffffff;\n}\n\n.btn-primary[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: #4f46e5;\n}\n\n.btn-primary[_ngcontent-%COMP%]:disabled {\n background: #c7d2fe;\n cursor: not-allowed;\n}\n\n.btn-secondary[_ngcontent-%COMP%] {\n background: #ffffff;\n color: #475569;\n border: 1px solid #d1d5db;\n}\n\n.btn-secondary[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: #f1f5f9;\n border-color: #94a3b8;\n}\n\n.btn-secondary[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.btn-delete[_ngcontent-%COMP%] {\n background: transparent;\n color: #dc2626;\n padding: 10px 16px;\n}\n\n.btn-delete[_ngcontent-%COMP%]:hover:not(:disabled) {\n background: #fef2f2;\n}\n\n.btn-delete[_ngcontent-%COMP%]:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n\n\n@media (max-width: 768px) {\n .edit-panel[_ngcontent-%COMP%] {\n max-width: 100%;\n }\n\n .panel-header[_ngcontent-%COMP%] {\n padding: 16px 20px;\n }\n\n .header-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n font-size: 18px;\n }\n\n .header-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 16px;\n }\n\n .panel-body[_ngcontent-%COMP%] {\n padding: 20px;\n }\n\n .icon-grid[_ngcontent-%COMP%] {\n grid-template-columns: repeat(4, 1fr);\n }\n\n .panel-footer[_ngcontent-%COMP%] {\n padding: 14px 20px;\n flex-direction: column-reverse;\n gap: 12px;\n }\n\n .footer-left[_ngcontent-%COMP%], \n .footer-right[_ngcontent-%COMP%] {\n width: 100%;\n }\n\n .footer-right[_ngcontent-%COMP%] {\n flex-direction: row;\n }\n\n .footer-right[_ngcontent-%COMP%] .btn-primary[_ngcontent-%COMP%], \n .footer-right[_ngcontent-%COMP%] .btn-secondary[_ngcontent-%COMP%] {\n flex: 1;\n justify-content: center;\n }\n\n .btn-delete[_ngcontent-%COMP%] {\n width: 100%;\n justify-content: center;\n background: #fef2f2;\n }\n}\n\n@media (max-width: 480px) {\n .panel-header[_ngcontent-%COMP%] {\n padding: 14px 16px;\n }\n\n .header-content[_ngcontent-%COMP%] {\n gap: 12px;\n }\n\n .header-icon[_ngcontent-%COMP%] {\n width: 36px;\n height: 36px;\n font-size: 16px;\n border-radius: 10px;\n }\n\n .header-text[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n font-size: 15px;\n }\n\n .header-subtitle[_ngcontent-%COMP%] {\n font-size: 12px;\n }\n\n .panel-body[_ngcontent-%COMP%] {\n padding: 16px;\n }\n\n .icon-grid[_ngcontent-%COMP%] {\n grid-template-columns: repeat(4, 1fr);\n gap: 6px;\n }\n\n .icon-btn[_ngcontent-%COMP%] {\n font-size: 14px;\n }\n\n .preview-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n font-size: 18px;\n }\n\n .panel-footer[_ngcontent-%COMP%] {\n padding: 12px 16px;\n }\n\n .btn-primary[_ngcontent-%COMP%], \n .btn-secondary[_ngcontent-%COMP%] {\n padding: 10px 16px;\n font-size: 13px;\n }\n}\n\n\n\n.panel-body[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 6px;\n}\n\n.panel-body[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.panel-body[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: #d1d5db;\n border-radius: 3px;\n}\n\n.panel-body[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover {\n background: #94a3b8;\n}\n\n\n\n@keyframes _ngcontent-%COMP%_spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n\n.fa-spin[_ngcontent-%COMP%] {\n animation: _ngcontent-%COMP%_spin 1s linear infinite;\n}"], changeDetection: 0 });
440
+ }
441
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CredentialCategoryEditPanelComponent, [{
442
+ type: Component,
443
+ args: [{ selector: 'mj-credential-category-edit-panel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"panel-backdrop\" *ngIf=\"isOpen\" (click)=\"onBackdropClick($event)\">\n <div class=\"edit-panel\" [class.open]=\"isOpen\">\n <!-- Panel Header -->\n <div class=\"panel-header\">\n <div class=\"header-content\">\n <div class=\"header-icon\" [style.backgroundColor]=\"'#6366f1' + '15'\" [style.color]=\"'#6366f1'\">\n <i [class]=\"iconClass || 'fa-solid fa-folder'\"></i>\n </div>\n <div class=\"header-text\">\n <h2>{{panelTitle}}</h2>\n <span class=\"header-subtitle\" *ngIf=\"parentId\">\n Under: {{getParentPath(parentId)}}\n </span>\n <span class=\"header-subtitle\" *ngIf=\"!parentId\">Root category</span>\n </div>\n </div>\n <button class=\"close-btn\" (click)=\"closePanel()\" [disabled]=\"isSaving\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <!-- Panel Body -->\n <div class=\"panel-body\">\n <mj-loading *ngIf=\"isLoading\" text=\"Loading...\"></mj-loading>\n\n <form *ngIf=\"!isLoading\" class=\"category-form\" (submit)=\"$event.preventDefault(); save()\">\n <!-- Basic Info Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-info-circle\"></i>\n Basic Information\n </h3>\n\n <div class=\"form-group\">\n <label for=\"categoryName\" class=\"required\">Name</label>\n <input\n type=\"text\"\n id=\"categoryName\"\n name=\"categoryName\"\n [(ngModel)]=\"name\"\n placeholder=\"e.g., Production, Development, API Keys\"\n [disabled]=\"isSaving\"\n required\n />\n </div>\n\n <div class=\"form-group\">\n <label for=\"categoryParent\">Parent Category</label>\n <select\n id=\"categoryParent\"\n name=\"categoryParent\"\n [(ngModel)]=\"parentId\"\n [disabled]=\"isSaving\"\n >\n <option [ngValue]=\"''\">No parent (root category)</option>\n <option *ngFor=\"let cat of availableParentCategories\" [ngValue]=\"cat.ID\">\n {{getParentPath(cat.ID)}}\n </option>\n </select>\n <span class=\"field-hint\">Select a parent to create a subcategory</span>\n </div>\n\n <div class=\"form-group\">\n <label for=\"categoryDescription\">Description</label>\n <textarea\n id=\"categoryDescription\"\n name=\"categoryDescription\"\n [(ngModel)]=\"description\"\n placeholder=\"Optional description of this category...\"\n rows=\"3\"\n [disabled]=\"isSaving\"\n ></textarea>\n </div>\n </div>\n\n <!-- Icon Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-icons\"></i>\n Icon\n </h3>\n\n <div class=\"form-group\">\n <label for=\"categoryIcon\">Custom Icon Class</label>\n <input\n type=\"text\"\n id=\"categoryIcon\"\n name=\"categoryIcon\"\n [(ngModel)]=\"iconClass\"\n placeholder=\"e.g., fa-solid fa-folder\"\n [disabled]=\"isSaving\"\n />\n <span class=\"field-hint\">Font Awesome icon class</span>\n </div>\n\n <div class=\"icon-suggestions\">\n <p class=\"suggestions-label\">Quick pick:</p>\n <div class=\"icon-grid\">\n <button\n type=\"button\"\n class=\"icon-btn\"\n *ngFor=\"let suggestion of iconSuggestions\"\n [class.selected]=\"iconClass === suggestion.icon\"\n (click)=\"selectIcon(suggestion.icon)\"\n [disabled]=\"isSaving\"\n [title]=\"suggestion.label\"\n >\n <i [class]=\"suggestion.icon\"></i>\n </button>\n </div>\n </div>\n\n <div class=\"icon-preview\" *ngIf=\"iconClass\">\n <div class=\"preview-label\">Preview:</div>\n <div class=\"preview-icon\">\n <i [class]=\"iconClass\"></i>\n </div>\n </div>\n </div>\n </form>\n </div>\n\n <!-- Panel Footer -->\n <div class=\"panel-footer\">\n <div class=\"footer-left\">\n <button\n class=\"btn-delete\"\n *ngIf=\"!isNew\"\n (click)=\"deleteCategory()\"\n [disabled]=\"isSaving\"\n >\n <i class=\"fa-solid fa-trash\"></i>\n <span>Delete</span>\n </button>\n </div>\n <div class=\"footer-right\">\n <button\n class=\"btn-secondary\"\n (click)=\"closePanel()\"\n [disabled]=\"isSaving\"\n >\n Cancel\n </button>\n <button\n class=\"btn-primary\"\n (click)=\"save()\"\n [disabled]=\"isSaving || !canSave\"\n >\n <i class=\"fa-solid fa-spinner fa-spin\" *ngIf=\"isSaving\"></i>\n <i class=\"fa-solid fa-check\" *ngIf=\"!isSaving\"></i>\n <span>{{isNew ? 'Create' : 'Save'}}</span>\n </button>\n </div>\n </div>\n </div>\n</div>\n", styles: ["/* Panel Backdrop */\n.panel-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.5);\n z-index: 1000;\n display: flex;\n justify-content: flex-end;\n animation: fadeIn 0.2s ease-out;\n}\n\n@keyframes fadeIn {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n/* Slide-in Panel */\n.edit-panel {\n width: 100%;\n max-width: 500px;\n height: 100%;\n background: #ffffff;\n display: flex;\n flex-direction: column;\n box-shadow: -4px 0 24px rgba(0, 0, 0, 0.15);\n transform: translateX(100%);\n animation: slideIn 0.3s ease-out forwards;\n}\n\n@keyframes slideIn {\n from { transform: translateX(100%); }\n to { transform: translateX(0); }\n}\n\n/* Panel Header */\n.panel-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 20px 24px;\n border-bottom: 1px solid #e5e7eb;\n background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);\n}\n\n.header-content {\n display: flex;\n align-items: center;\n gap: 16px;\n}\n\n.header-icon {\n width: 48px;\n height: 48px;\n border-radius: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 20px;\n flex-shrink: 0;\n}\n\n.header-text h2 {\n font-size: 18px;\n font-weight: 600;\n color: #1e293b;\n margin: 0 0 4px 0;\n}\n\n.header-subtitle {\n font-size: 13px;\n color: #64748b;\n}\n\n.close-btn {\n width: 36px;\n height: 36px;\n border: none;\n background: #f1f5f9;\n border-radius: 8px;\n cursor: pointer;\n color: #64748b;\n font-size: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.15s ease;\n}\n\n.close-btn:hover:not(:disabled) {\n background: #e2e8f0;\n color: #334155;\n}\n\n.close-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Panel Body */\n.panel-body {\n flex: 1;\n overflow-y: auto;\n padding: 24px;\n scroll-behavior: smooth;\n -webkit-overflow-scrolling: touch;\n}\n\n/* Form Sections */\n.form-section {\n margin-bottom: 28px;\n}\n\n.form-section:last-child {\n margin-bottom: 0;\n}\n\n.section-title {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n font-weight: 600;\n color: #334155;\n margin: 0 0 16px 0;\n padding-bottom: 10px;\n border-bottom: 1px solid #f1f5f9;\n}\n\n.section-title i {\n color: #6366f1;\n font-size: 14px;\n}\n\n/* Form Groups */\n.form-group {\n margin-bottom: 18px;\n}\n\n.form-group:last-child {\n margin-bottom: 0;\n}\n\n.form-group label {\n display: block;\n font-size: 13px;\n font-weight: 500;\n color: #475569;\n margin-bottom: 6px;\n}\n\n.form-group label.required::after {\n content: '*';\n color: #ef4444;\n margin-left: 4px;\n}\n\n.form-group input[type=\"text\"],\n.form-group select,\n.form-group textarea {\n width: 100%;\n padding: 10px 14px;\n border: 1px solid #d1d5db;\n border-radius: 8px;\n font-size: 14px;\n color: #1e293b;\n background: #ffffff;\n transition: all 0.15s ease;\n box-sizing: border-box;\n}\n\n.form-group input:focus,\n.form-group select:focus,\n.form-group textarea:focus {\n outline: none;\n border-color: #6366f1;\n box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.1);\n}\n\n.form-group input:disabled,\n.form-group select:disabled,\n.form-group textarea:disabled {\n background: #f8fafc;\n color: #94a3b8;\n cursor: not-allowed;\n}\n\n.form-group textarea {\n resize: vertical;\n min-height: 80px;\n}\n\n.form-group select {\n cursor: pointer;\n}\n\n.field-hint {\n display: block;\n font-size: 12px;\n color: #94a3b8;\n margin-top: 5px;\n}\n\n/* Icon Suggestions */\n.icon-suggestions {\n margin-top: 16px;\n}\n\n.suggestions-label {\n font-size: 12px;\n font-weight: 500;\n color: #64748b;\n margin: 0 0 10px 0;\n}\n\n.icon-grid {\n display: grid;\n grid-template-columns: repeat(6, 1fr);\n gap: 8px;\n}\n\n.icon-btn {\n width: 100%;\n aspect-ratio: 1;\n border: 2px solid #e5e7eb;\n border-radius: 8px;\n background: #ffffff;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 16px;\n color: #64748b;\n transition: all 0.15s ease;\n}\n\n.icon-btn:hover:not(:disabled) {\n border-color: #6366f1;\n color: #6366f1;\n background: #f0f1ff;\n}\n\n.icon-btn.selected {\n border-color: #6366f1;\n background: #6366f1;\n color: #ffffff;\n}\n\n.icon-btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Icon Preview */\n.icon-preview {\n margin-top: 16px;\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.preview-label {\n font-size: 12px;\n font-weight: 500;\n color: #64748b;\n}\n\n.preview-icon {\n width: 48px;\n height: 48px;\n border-radius: 12px;\n background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);\n display: flex;\n align-items: center;\n justify-content: center;\n color: white;\n font-size: 20px;\n box-shadow: 0 4px 12px rgba(99, 102, 241, 0.3);\n}\n\n/* Panel Footer */\n.panel-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 16px 24px;\n border-top: 1px solid #e5e7eb;\n background: #f8fafc;\n}\n\n.footer-left,\n.footer-right {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n\n.btn-primary,\n.btn-secondary,\n.btn-delete {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 20px;\n border: none;\n border-radius: 8px;\n font-size: 14px;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n.btn-primary {\n background: #6366f1;\n color: #ffffff;\n}\n\n.btn-primary:hover:not(:disabled) {\n background: #4f46e5;\n}\n\n.btn-primary:disabled {\n background: #c7d2fe;\n cursor: not-allowed;\n}\n\n.btn-secondary {\n background: #ffffff;\n color: #475569;\n border: 1px solid #d1d5db;\n}\n\n.btn-secondary:hover:not(:disabled) {\n background: #f1f5f9;\n border-color: #94a3b8;\n}\n\n.btn-secondary:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.btn-delete {\n background: transparent;\n color: #dc2626;\n padding: 10px 16px;\n}\n\n.btn-delete:hover:not(:disabled) {\n background: #fef2f2;\n}\n\n.btn-delete:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Mobile Responsiveness */\n@media (max-width: 768px) {\n .edit-panel {\n max-width: 100%;\n }\n\n .panel-header {\n padding: 16px 20px;\n }\n\n .header-icon {\n width: 40px;\n height: 40px;\n font-size: 18px;\n }\n\n .header-text h2 {\n font-size: 16px;\n }\n\n .panel-body {\n padding: 20px;\n }\n\n .icon-grid {\n grid-template-columns: repeat(4, 1fr);\n }\n\n .panel-footer {\n padding: 14px 20px;\n flex-direction: column-reverse;\n gap: 12px;\n }\n\n .footer-left,\n .footer-right {\n width: 100%;\n }\n\n .footer-right {\n flex-direction: row;\n }\n\n .footer-right .btn-primary,\n .footer-right .btn-secondary {\n flex: 1;\n justify-content: center;\n }\n\n .btn-delete {\n width: 100%;\n justify-content: center;\n background: #fef2f2;\n }\n}\n\n@media (max-width: 480px) {\n .panel-header {\n padding: 14px 16px;\n }\n\n .header-content {\n gap: 12px;\n }\n\n .header-icon {\n width: 36px;\n height: 36px;\n font-size: 16px;\n border-radius: 10px;\n }\n\n .header-text h2 {\n font-size: 15px;\n }\n\n .header-subtitle {\n font-size: 12px;\n }\n\n .panel-body {\n padding: 16px;\n }\n\n .icon-grid {\n grid-template-columns: repeat(4, 1fr);\n gap: 6px;\n }\n\n .icon-btn {\n font-size: 14px;\n }\n\n .preview-icon {\n width: 40px;\n height: 40px;\n font-size: 18px;\n }\n\n .panel-footer {\n padding: 12px 16px;\n }\n\n .btn-primary,\n .btn-secondary {\n padding: 10px 16px;\n font-size: 13px;\n }\n}\n\n/* Custom scrollbar */\n.panel-body::-webkit-scrollbar {\n width: 6px;\n}\n\n.panel-body::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.panel-body::-webkit-scrollbar-thumb {\n background: #d1d5db;\n border-radius: 3px;\n}\n\n.panel-body::-webkit-scrollbar-thumb:hover {\n background: #94a3b8;\n}\n\n/* Animations */\n@keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n}\n\n.fa-spin {\n animation: spin 1s linear infinite;\n}\n"] }]
444
+ }], () => [{ type: i0.ChangeDetectorRef }], { category: [{
445
+ type: Input
446
+ }], isOpen: [{
447
+ type: Input
448
+ }], close: [{
449
+ type: Output
450
+ }], saved: [{
451
+ type: Output
452
+ }], deleted: [{
453
+ type: Output
454
+ }] }); })();
455
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CredentialCategoryEditPanelComponent, { className: "CredentialCategoryEditPanelComponent", filePath: "src/Credentials/components/credential-category-edit-panel.component.ts", lineNumber: 16 }); })();
456
+ //# sourceMappingURL=credential-category-edit-panel.component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-category-edit-panel.component.js","sourceRoot":"","sources":["../../../src/Credentials/components/credential-category-edit-panel.component.ts","../../../src/Credentials/components/credential-category-edit-panel.component.html"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import { EventEmitter, ChangeDetectorRef, OnInit, OnDestroy } from '@angular/core';
2
+ import { CredentialEntity, CredentialTypeEntity, CredentialCategoryEntity } from '@memberjunction/core-entities';
3
+ import * as i0 from "@angular/core";
4
+ export declare function LoadCredentialEditPanel(): void;
5
+ interface FieldSchemaProperty {
6
+ name: string;
7
+ type: string;
8
+ title: string;
9
+ description: string;
10
+ isSecret: boolean;
11
+ required: boolean;
12
+ order: number;
13
+ }
14
+ interface CredentialValues {
15
+ [key: string]: string | number | boolean;
16
+ }
17
+ export declare class CredentialEditPanelComponent implements OnInit, OnDestroy {
18
+ private cdr;
19
+ credential: CredentialEntity | null;
20
+ credentialTypes: CredentialTypeEntity[];
21
+ isOpen: boolean;
22
+ close: EventEmitter<void>;
23
+ saved: EventEmitter<CredentialEntity>;
24
+ deleted: EventEmitter<string>;
25
+ isLoading: boolean;
26
+ isSaving: boolean;
27
+ isNew: boolean;
28
+ categories: CredentialCategoryEntity[];
29
+ name: string;
30
+ description: string;
31
+ selectedTypeId: string;
32
+ selectedCategoryId: string;
33
+ isActive: boolean;
34
+ isDefault: boolean;
35
+ expiresAt: Date | null;
36
+ credentialValues: CredentialValues;
37
+ schemaFields: FieldSchemaProperty[];
38
+ showSecretFields: Set<string>;
39
+ private _metadata;
40
+ constructor(cdr: ChangeDetectorRef);
41
+ ngOnInit(): void;
42
+ ngOnDestroy(): void;
43
+ get selectedType(): CredentialTypeEntity | null;
44
+ get panelTitle(): string;
45
+ get canSave(): boolean;
46
+ open(credential: CredentialEntity | null, preselectedTypeId?: string, preselectedCategoryId?: string): Promise<void>;
47
+ private resetForm;
48
+ private populateFromCredential;
49
+ private loadCategories;
50
+ onTypeChange(): void;
51
+ toggleSecretVisibility(fieldName: string): void;
52
+ isSecretVisible(fieldName: string): boolean;
53
+ save(): Promise<void>;
54
+ deleteCredential(): Promise<void>;
55
+ closePanel(): void;
56
+ onBackdropClick(event: MouseEvent): void;
57
+ get groupedCredentialTypes(): Array<{
58
+ category: string;
59
+ types: CredentialTypeEntity[];
60
+ }>;
61
+ getTypeIcon(type: CredentialTypeEntity): string;
62
+ getTypeColor(type: CredentialTypeEntity): string;
63
+ onValueChange(fieldName: string, value: string): void;
64
+ formatDateForInput(date: Date | null): string;
65
+ onExpiresAtChange(value: string): void;
66
+ static ɵfac: i0.ɵɵFactoryDeclaration<CredentialEditPanelComponent, never>;
67
+ static ɵcmp: i0.ɵɵComponentDeclaration<CredentialEditPanelComponent, "mj-credential-edit-panel", never, { "credential": { "alias": "credential"; "required": false; }; "credentialTypes": { "alias": "credentialTypes"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; }, { "close": "close"; "saved": "saved"; "deleted": "deleted"; }, never, never, false, never>;
68
+ }
69
+ export {};
70
+ //# sourceMappingURL=credential-edit-panel.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credential-edit-panel.component.d.ts","sourceRoot":"","sources":["../../../src/Credentials/components/credential-edit-panel.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,iBAAiB,EAA2B,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACtI,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;;AAIjH,wBAAgB,uBAAuB,SAEtC;AAED,UAAU,mBAAmB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,gBAAgB;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CAC5C;AAED,qBAMa,4BAA6B,YAAW,MAAM,EAAE,SAAS;IA8BtD,OAAO,CAAC,GAAG;IA7Bd,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAC3C,eAAe,EAAE,oBAAoB,EAAE,CAAM;IAC7C,MAAM,UAAS;IAEd,KAAK,qBAA4B;IACjC,KAAK,iCAAwC;IAC7C,OAAO,uBAA8B;IAExC,SAAS,UAAS;IAClB,QAAQ,UAAS;IACjB,KAAK,UAAS;IACd,UAAU,EAAE,wBAAwB,EAAE,CAAM;IAG5C,IAAI,SAAM;IACV,WAAW,SAAM;IACjB,cAAc,SAAM;IACpB,kBAAkB,SAAM;IACxB,QAAQ,UAAQ;IAChB,SAAS,UAAS;IAClB,SAAS,EAAE,IAAI,GAAG,IAAI,CAAQ;IAG9B,gBAAgB,EAAE,gBAAgB,CAAM;IACxC,YAAY,EAAE,mBAAmB,EAAE,CAAM;IACzC,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IAEjD,OAAO,CAAC,SAAS,CAAkB;gBAEf,GAAG,EAAE,iBAAiB;IAE1C,QAAQ,IAAI,IAAI;IAIhB,WAAW,IAAI,IAAI;IAInB,IAAW,YAAY,IAAI,oBAAoB,GAAG,IAAI,CAErD;IAED,IAAW,UAAU,IAAI,MAAM,CAE9B;IAED,IAAW,OAAO,IAAI,OAAO,CAW5B;IAEY,IAAI,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,qBAAqB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BjI,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,sBAAsB;YAuBhB,cAAc;IAkBrB,YAAY,IAAI,IAAI;IAyCpB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAS/C,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIrC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA8DrB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAwCvC,UAAU,IAAI,IAAI;IAQlB,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAM/C,IAAW,sBAAsB,IAAI,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,oBAAoB,EAAE,CAAA;KAAE,CAAC,CAU9F;IAEM,WAAW,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;IAY/C,YAAY,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM;IAYhD,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKrD,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,MAAM;IAM7C,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;yCAxWpC,4BAA4B;2CAA5B,4BAA4B;CA4WxC"}