@memberjunction/ng-core-entity-forms 2.80.1 → 2.82.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 (87) hide show
  1. package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts +2 -2
  2. package/dist/lib/custom/AIAgents/add-action-dialog.component.d.ts.map +1 -1
  3. package/dist/lib/custom/AIAgents/add-action-dialog.component.js +4 -4
  4. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts +2 -2
  5. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.d.ts.map +1 -1
  6. package/dist/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.js +4 -4
  7. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts +51 -3
  8. package/dist/lib/custom/AIAgents/ai-agent-form.component.d.ts.map +1 -1
  9. package/dist/lib/custom/AIAgents/ai-agent-form.component.js +722 -163
  10. package/dist/lib/custom/AIAgents/ai-agent-form.component.js.map +1 -1
  11. package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts +3 -2
  12. package/dist/lib/custom/AIAgents/ai-agent-management.service.d.ts.map +1 -1
  13. package/dist/lib/custom/AIAgents/ai-agent-management.service.js +74 -46
  14. package/dist/lib/custom/AIAgents/ai-agent-management.service.js.map +1 -1
  15. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts +2 -2
  16. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.d.ts.map +1 -1
  17. package/dist/lib/custom/AIAgents/create-prompt-dialog.component.js +4 -4
  18. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts +2 -2
  19. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.d.ts.map +1 -1
  20. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js +39 -32
  21. package/dist/lib/custom/AIAgents/create-sub-agent-dialog.component.js.map +1 -1
  22. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.d.ts.map +1 -1
  23. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js +2 -2
  24. package/dist/lib/custom/AIAgents/prompt-selector-dialog.component.js.map +1 -1
  25. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts +2 -2
  26. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.d.ts.map +1 -1
  27. package/dist/lib/custom/AIAgents/sub-agent-advanced-settings-dialog.component.js +4 -4
  28. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts +2 -2
  29. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.d.ts.map +1 -1
  30. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js +29 -25
  31. package/dist/lib/custom/AIAgents/sub-agent-selector-dialog.component.js.map +1 -1
  32. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js +299 -283
  33. package/dist/lib/custom/AIPromptRuns/ai-prompt-run-form.component.js.map +1 -1
  34. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js +474 -456
  35. package/dist/lib/custom/AIPrompts/ai-prompt-form.component.js.map +1 -1
  36. package/dist/lib/custom/Templates/templates-form.component.d.ts +5 -0
  37. package/dist/lib/custom/Templates/templates-form.component.d.ts.map +1 -1
  38. package/dist/lib/custom/Templates/templates-form.component.js +21 -2
  39. package/dist/lib/custom/Templates/templates-form.component.js.map +1 -1
  40. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts +6 -0
  41. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.d.ts.map +1 -1
  42. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js +70 -16
  43. package/dist/lib/custom/ai-agent-run/ai-agent-run-analytics.component.js.map +1 -1
  44. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts +6 -5
  45. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.d.ts.map +1 -1
  46. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js +8 -22
  47. package/dist/lib/custom/ai-agent-run/ai-agent-run-data.service.js.map +1 -1
  48. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts +5 -4
  49. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.d.ts.map +1 -1
  50. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js +30 -24
  51. package/dist/lib/custom/ai-agent-run/ai-agent-run-timeline.component.js.map +1 -1
  52. package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.d.ts +8 -4
  53. package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.d.ts.map +1 -1
  54. package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js +39 -18
  55. package/dist/lib/custom/ai-agent-run/ai-agent-run-visualization.component.js.map +1 -1
  56. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts +20 -3
  57. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.d.ts.map +1 -1
  58. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js +317 -140
  59. package/dist/lib/custom/ai-agent-run/ai-agent-run.component.js.map +1 -1
  60. package/dist/lib/generated/Entities/AIAgent/sections/details.component.d.ts.map +1 -1
  61. package/dist/lib/generated/Entities/AIAgent/sections/details.component.js +13 -4
  62. package/dist/lib/generated/Entities/AIAgent/sections/details.component.js.map +1 -1
  63. package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.d.ts.map +1 -1
  64. package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.js +13 -4
  65. package/dist/lib/generated/Entities/AIAgentRun/sections/details.component.js.map +1 -1
  66. package/dist/lib/generated/Entities/AIPrompt/sections/details.component.d.ts.map +1 -1
  67. package/dist/lib/generated/Entities/AIPrompt/sections/details.component.js +13 -4
  68. package/dist/lib/generated/Entities/AIPrompt/sections/details.component.js.map +1 -1
  69. package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.d.ts.map +1 -1
  70. package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.js +13 -4
  71. package/dist/lib/generated/Entities/AIPromptRun/sections/details.component.js.map +1 -1
  72. package/dist/lib/generated/Entities/Entity/sections/details.component.d.ts.map +1 -1
  73. package/dist/lib/generated/Entities/Entity/sections/details.component.js +13 -4
  74. package/dist/lib/generated/Entities/Entity/sections/details.component.js.map +1 -1
  75. package/dist/lib/generated/Entities/Query/sections/details.component.d.ts.map +1 -1
  76. package/dist/lib/generated/Entities/Query/sections/details.component.js +40 -4
  77. package/dist/lib/generated/Entities/Query/sections/details.component.js.map +1 -1
  78. package/dist/lib/generated/Entities/QueryCategory/sections/details.component.d.ts.map +1 -1
  79. package/dist/lib/generated/Entities/QueryCategory/sections/details.component.js +40 -4
  80. package/dist/lib/generated/Entities/QueryCategory/sections/details.component.js.map +1 -1
  81. package/dist/lib/generated/Entities/User/user.form.component.js +6 -6
  82. package/dist/lib/generated/Entities/User/user.form.component.js.map +1 -1
  83. package/dist/lib/shared/components/template-editor.component.d.ts +5 -0
  84. package/dist/lib/shared/components/template-editor.component.d.ts.map +1 -1
  85. package/dist/lib/shared/components/template-editor.component.js +21 -2
  86. package/dist/lib/shared/components/template-editor.component.js.map +1 -1
  87. package/package.json +17 -16
@@ -1,6 +1,6 @@
1
1
  import { OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
2
2
  import { FormControl } from '@angular/forms';
3
- import { DialogRef } from '@progress/kendo-angular-dialog';
3
+ import { WindowRef } from '@progress/kendo-angular-dialog';
4
4
  import { Subject, BehaviorSubject } from 'rxjs';
5
5
  import { ActionEntity, ActionCategoryEntity } from '@memberjunction/core-entities';
6
6
  import * as i0 from "@angular/core";
@@ -41,7 +41,7 @@ export declare class AddActionDialogComponent implements OnInit, OnDestroy {
41
41
  get selectedCount(): number;
42
42
  get totalActionCount(): number;
43
43
  get filteredCount(): number;
44
- constructor(dialogRef: DialogRef, cdr: ChangeDetectorRef);
44
+ constructor(dialogRef: WindowRef, cdr: ChangeDetectorRef);
45
45
  ngOnInit(): void;
46
46
  ngOnDestroy(): void;
47
47
  private initializeData;
@@ -1 +1 @@
1
- {"version":3,"file":"add-action-dialog.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/add-action-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,eAAe,EAA2E,MAAM,MAAM,CAAC;AAEzH,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;;AAEnF,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,qBAKa,wBAAyB,YAAW,MAAM,EAAE,SAAS;IAuC9D,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,GAAG;IArCb,OAAO,EAAE,MAAM,CAAM;IACrB,SAAS,EAAE,MAAM,CAAM;IACvB,iBAAiB,EAAE,MAAM,EAAE,CAAM;IAGjC,OAAO,CAAC,QAAQ,CAAuB;IAChC,MAAM,0BAAiC;IAG9C,WAAW,uCAAgD;IAC3D,WAAW,0CAAmD;IAC9D,gBAAgB,uCAAgD;IAChE,aAAa,sCAA+C;IAC5D,gBAAgB,+BAA+C;IAC/D,UAAU,2BAAuC;IAGjD,aAAa,6BAAuB;IACpC,mBAAmB,0BAAsC;IACzD,SAAS,mCAAgD;IACzD,kBAAkB,cAAqB;IAGvC,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;gBAGS,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,iBAAiB;IAGhC,QAAQ;IAMR,WAAW;YAKG,cAAc;YAad,wBAAwB;IAmCtC,OAAO,CAAC,iBAAiB;IAgDzB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,wBAAwB;IAgBhC,cAAc,CAAC,UAAU,EAAE,MAAM;IAIjC,cAAc;IAKd,qBAAqB,CAAC,MAAM,EAAE,iBAAiB;IA4B/C,WAAW;IAIX,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;IAsBhD,MAAM;IAKN,kBAAkB;yCAzSP,wBAAwB;2CAAxB,wBAAwB;CAuTpC"}
1
+ {"version":3,"file":"add-action-dialog.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/add-action-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAa,SAAS,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,eAAe,EAA2E,MAAM,MAAM,CAAC;AAEzH,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;;AAEnF,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,qBAKa,wBAAyB,YAAW,MAAM,EAAE,SAAS;IAuC9D,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,GAAG;IArCb,OAAO,EAAE,MAAM,CAAM;IACrB,SAAS,EAAE,MAAM,CAAM;IACvB,iBAAiB,EAAE,MAAM,EAAE,CAAM;IAGjC,OAAO,CAAC,QAAQ,CAAuB;IAChC,MAAM,0BAAiC;IAG9C,WAAW,uCAAgD;IAC3D,WAAW,0CAAmD;IAC9D,gBAAgB,uCAAgD;IAChE,aAAa,sCAA+C;IAC5D,gBAAgB,+BAA+C;IAC/D,UAAU,2BAAuC;IAGjD,aAAa,6BAAuB;IACpC,mBAAmB,0BAAsC;IACzD,SAAS,mCAAgD;IACzD,kBAAkB,cAAqB;IAGvC,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;gBAGS,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,iBAAiB;IAGhC,QAAQ;IAMR,WAAW;YAKG,cAAc;YAad,wBAAwB;IAmCtC,OAAO,CAAC,iBAAiB;IAgDzB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,wBAAwB;IAgBhC,cAAc,CAAC,UAAU,EAAE,MAAM;IAIjC,cAAc;IAKd,qBAAqB,CAAC,MAAM,EAAE,iBAAiB;IA4B/C,WAAW;IAIX,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM;IAsBhD,MAAM;IAKN,kBAAkB;yCAzSP,wBAAwB;2CAAxB,wBAAwB;CAuTpC"}
@@ -496,7 +496,7 @@ export class AddActionDialogComponent {
496
496
  this.result.next(selectedActions);
497
497
  this.dialogRef.close();
498
498
  }
499
- static { this.ɵfac = function AddActionDialogComponent_Factory(t) { return new (t || AddActionDialogComponent)(i0.ɵɵdirectiveInject(i1.DialogRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
499
+ static { this.ɵfac = function AddActionDialogComponent_Factory(t) { return new (t || AddActionDialogComponent)(i0.ɵɵdirectiveInject(i1.WindowRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
500
500
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AddActionDialogComponent, selectors: [["mj-add-action-dialog"]], decls: 44, vars: 40, consts: [[1, "add-action-dialog"], [1, "dialog-header"], [1, "search-section"], ["placeholder", "Search actions by name, description, or category...", 1, "search-input", 3, "formControl", "clearButton"], ["kendoTextBoxPrefixTemplate", ""], [1, "header-actions"], ["kendoButton", "", "size", "small", "kendoTooltip", "", 3, "click", "toggleable", "selected", "title"], [1, "fa-solid"], [1, "stats"], [1, "stat-item"], [1, "fa-solid", "fa-bolt"], [1, "dialog-content"], [1, "category-sidebar"], [1, "sidebar-header"], [1, "fa-solid", "fa-folder-tree"], [1, "category-list"], [1, "category-item", 3, "selected"], [1, "actions-container"], [1, "loading-state"], [1, "empty-state"], [1, "actions-grid"], [1, "actions-list"], [1, "selection-summary"], [1, "dialog-footer"], ["kendoButton", "", "look", "flat", 3, "click"], ["kendoButton", "", "themeColor", "primary", 3, "click", "disabled"], [1, "fa-solid", "fa-plus"], [1, "fa-solid", "fa-search"], [1, "category-item", 3, "click"], [1, "category-name"], [1, "category-count"], [1, "loading-spinner"], [1, "fa-solid", "fa-spinner", "fa-spin", "fa-2x"], [1, "fa-solid", "fa-search-minus"], ["kendoButton", "", 3, "click"], [1, "action-card", 3, "selected", "existing"], [1, "action-card", 3, "click"], [1, "selection-indicator"], [1, "card-header"], [1, "action-icon"], [1, "action-name"], [1, "card-body"], [1, "action-description"], [1, "category-badge"], [1, "type-badge"], [1, "existing-overlay"], [1, "fa-solid", "fa-folder"], [1, "fa-solid", "fa-tag"], [1, "fa-solid", "fa-check"], [1, "list-header"], [1, "col-select"], [1, "col-name"], [1, "col-category"], [1, "col-type"], [1, "col-description"], [1, "col-status"], [1, "list-item", 3, "selected", "existing"], [1, "list-item", 3, "click"], [1, "status-badge", "existing"], [1, "status-badge", "available"], [1, "summary-content"], [1, "fa-solid", "fa-check-circle"]], template: function AddActionDialogComponent_Template(rf, ctx) { if (rf & 1) {
501
501
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "kendo-textbox", 3);
502
502
  i0.ɵɵtemplate(4, AddActionDialogComponent_ng_template_4_Template, 1, 0, "ng-template", 4);
@@ -568,11 +568,11 @@ export class AddActionDialogComponent {
568
568
  i0.ɵɵproperty("disabled", ctx.selectedCount === 0);
569
569
  i0.ɵɵadvance(2);
570
570
  i0.ɵɵtextInterpolate1(" Add Selected (", ctx.selectedCount, ") ");
571
- } }, dependencies: [i2.NgControlStatus, i2.FormControlDirective, i3.TextBoxComponent, i3.TextBoxPrefixTemplateDirective, i4.ButtonComponent, i5.AsyncPipe], styles: [".add-action-dialog[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-bottom: 1px solid #e0e0e0;\n background: #f8f9fa;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] .search-section[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] .search-section[_ngcontent-%COMP%] .search-input[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 400px;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] .header-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] .header-actions[_ngcontent-%COMP%] .stats[_ngcontent-%COMP%] .stat-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n color: #6c757d;\n font-size: 0.9rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] .header-actions[_ngcontent-%COMP%] .stats[_ngcontent-%COMP%] .stat-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #28a745;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] {\n display: flex;\n flex: 1;\n overflow: hidden;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] {\n width: 250px;\n background: #f8f9fa;\n border-right: 1px solid #e0e0e0;\n overflow-y: auto;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .sidebar-header[_ngcontent-%COMP%] {\n padding: 1rem;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .sidebar-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n color: #495057;\n font-size: 1rem;\n font-weight: 600;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .sidebar-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 0.5rem;\n color: #6c757d;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] {\n padding: 0.5rem 0;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 0.75rem 1rem;\n cursor: pointer;\n transition: all 0.2s ease;\n border-left: 3px solid transparent;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%]:hover {\n background: #e9ecef;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item.selected[_ngcontent-%COMP%] {\n background: #e3f2fd;\n border-left-color: #2196f3;\n color: #1976d2;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item.selected[_ngcontent-%COMP%] .category-icon[_ngcontent-%COMP%] {\n color: #1976d2;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] .category-icon[_ngcontent-%COMP%] {\n width: 16px;\n text-align: center;\n margin-right: 0.75rem;\n color: #6c757d;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] .category-name[_ngcontent-%COMP%] {\n flex: 1;\n font-weight: 500;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] .category-count[_ngcontent-%COMP%] {\n background: #dee2e6;\n color: #495057;\n padding: 0.25rem 0.5rem;\n border-radius: 12px;\n font-size: 0.8rem;\n font-weight: 600;\n min-width: 24px;\n text-align: center;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item.selected[_ngcontent-%COMP%] .category-count[_ngcontent-%COMP%] {\n background: #bbdefb;\n color: #1976d2;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] {\n flex: 1;\n padding: 1.5rem;\n overflow-y: auto;\n background: white;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .loading-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 200px;\n color: #6c757d;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .loading-state[_ngcontent-%COMP%] .loading-spinner[_ngcontent-%COMP%] {\n margin-bottom: 1rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .loading-state[_ngcontent-%COMP%] .loading-spinner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #2196f3;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .loading-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin-top: 1rem;\n font-size: 1.1rem;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 300px;\n color: #6c757d;\n text-align: center;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 3rem;\n margin-bottom: 1rem;\n color: #dee2e6;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 0.5rem 0;\n color: #495057;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0 0 1.5rem 0;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n gap: 1.5rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] {\n position: relative;\n background: white;\n border: 2px solid #e0e0e0;\n border-radius: 8px;\n padding: 1.5rem;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%]:hover {\n border-color: #2196f3;\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.15);\n transform: translateY(-2px);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card.selected[_ngcontent-%COMP%] {\n border-color: #28a745;\n background: #f8fff9;\n box-shadow: 0 4px 12px rgba(40, 167, 69, 0.15);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card.selected[_ngcontent-%COMP%] .selection-indicator[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #28a745;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card.existing[_ngcontent-%COMP%] {\n border-color: #6c757d;\n background: #f8f9fa;\n cursor: default;\n opacity: 0.7;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card.existing[_ngcontent-%COMP%]:hover {\n transform: none;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .selection-indicator[_ngcontent-%COMP%] {\n position: absolute;\n top: 1rem;\n right: 1rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .selection-indicator[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.25rem;\n color: #dee2e6;\n transition: color 0.2s ease;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n margin-bottom: 1rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-header[_ngcontent-%COMP%] .action-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n background: #e3f2fd;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 1rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-header[_ngcontent-%COMP%] .action-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.25rem;\n color: #1976d2;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-header[_ngcontent-%COMP%] .action-name[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.1rem;\n font-weight: 600;\n color: #212529;\n line-height: 1.2;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .action-description[_ngcontent-%COMP%] {\n margin: 0 0 1rem 0;\n color: #6c757d;\n line-height: 1.4;\n font-size: 0.9rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .category-badge[_ngcontent-%COMP%], \n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .type-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n background: #f8f9fa;\n color: #495057;\n padding: 0.25rem 0.5rem;\n border-radius: 4px;\n font-size: 0.8rem;\n font-weight: 500;\n margin-right: 0.5rem;\n margin-bottom: 0.5rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .category-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .type-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .type-badge[_ngcontent-%COMP%] {\n background: #fff3cd;\n color: #856404;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .existing-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(108, 117, 125, 0.9);\n color: white;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .existing-overlay[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 2rem;\n margin-bottom: 0.5rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .existing-overlay[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-weight: 600;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 40px 1fr 150px 100px 2fr 120px;\n gap: 1rem;\n padding: 1rem;\n background: #f8f9fa;\n border-radius: 6px;\n font-weight: 600;\n color: #495057;\n margin-bottom: 0.5rem;\n font-size: 0.9rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 40px 1fr 150px 100px 2fr 120px;\n gap: 1rem;\n padding: 1rem;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n margin-bottom: 0.5rem;\n cursor: pointer;\n transition: all 0.2s ease;\n align-items: center;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%]:hover {\n background: #f8f9fa;\n border-color: #2196f3;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item.selected[_ngcontent-%COMP%] {\n background: #f8fff9;\n border-color: #28a745;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item.selected[_ngcontent-%COMP%] .col-select[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #28a745;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item.existing[_ngcontent-%COMP%] {\n background: #f8f9fa;\n opacity: 0.7;\n cursor: default;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item.existing[_ngcontent-%COMP%]:hover {\n background: #f8f9fa;\n border-color: #e0e0e0;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-select[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.25rem;\n color: #dee2e6;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-name[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 500;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-name[_ngcontent-%COMP%] .action-icon[_ngcontent-%COMP%] {\n color: #1976d2;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-description[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 0.9rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n border-radius: 4px;\n font-size: 0.8rem;\n font-weight: 500;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .status-badge.existing[_ngcontent-%COMP%] {\n background: #6c757d;\n color: white;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .status-badge.available[_ngcontent-%COMP%] {\n background: #d4edda;\n color: #155724;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .selection-summary[_ngcontent-%COMP%] {\n padding: 1rem 1.5rem;\n background: #d4edda;\n border-top: 1px solid #c3e6cb;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .selection-summary[_ngcontent-%COMP%] .summary-content[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n color: #155724;\n font-weight: 500;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .selection-summary[_ngcontent-%COMP%] .summary-content[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #28a745;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-top: 1px solid #e0e0e0;\n background: #f8f9fa;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-footer[_ngcontent-%COMP%] button[kendoButton][_ngcontent-%COMP%] {\n min-width: 120px;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-footer[_ngcontent-%COMP%] button[kendoButton][look=\"primary\"][_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 0.5rem;\n}\n\n\n\n@media (max-width: 768px) {\n .add-action-dialog[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n\n .add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] {\n width: 100%;\n max-height: 200px;\n }\n\n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] {\n grid-template-columns: 40px 1fr 80px;\n gap: 0.5rem;\n }\n\n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .col-category[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .col-type[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .col-description[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-category[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-type[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-description[_ngcontent-%COMP%] {\n display: none;\n }\n}"] }); }
571
+ } }, dependencies: [i2.NgControlStatus, i2.FormControlDirective, i3.TextBoxComponent, i3.TextBoxPrefixTemplateDirective, i4.ButtonComponent, i5.AsyncPipe], styles: [".add-action-dialog[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n\n\n[_nghost-%COMP%] .k-dialog, \n[_nghost-%COMP%] .k-window {\n z-index: 10000 !important;\n}\n\n[_nghost-%COMP%] .k-overlay {\n z-index: 9999 !important;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-bottom: 1px solid #e0e0e0;\n background: #f8f9fa;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] .search-section[_ngcontent-%COMP%] {\n flex: 1;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] .search-section[_ngcontent-%COMP%] .search-input[_ngcontent-%COMP%] {\n width: 100%;\n max-width: 400px;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] .header-actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] .header-actions[_ngcontent-%COMP%] .stats[_ngcontent-%COMP%] .stat-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n color: #6c757d;\n font-size: 0.9rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-header[_ngcontent-%COMP%] .header-actions[_ngcontent-%COMP%] .stats[_ngcontent-%COMP%] .stat-item[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #28a745;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] {\n display: flex;\n flex: 1;\n overflow: hidden;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] {\n width: 250px;\n background: #f8f9fa;\n border-right: 1px solid #e0e0e0;\n overflow-y: auto;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .sidebar-header[_ngcontent-%COMP%] {\n padding: 1rem;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .sidebar-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] {\n margin: 0;\n color: #495057;\n font-size: 1rem;\n font-weight: 600;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .sidebar-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 0.5rem;\n color: #6c757d;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] {\n padding: 0.5rem 0;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n padding: 0.75rem 1rem;\n cursor: pointer;\n transition: all 0.2s ease;\n border-left: 3px solid transparent;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%]:hover {\n background: #e9ecef;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item.selected[_ngcontent-%COMP%] {\n background: #e3f2fd;\n border-left-color: #2196f3;\n color: #1976d2;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item.selected[_ngcontent-%COMP%] .category-icon[_ngcontent-%COMP%] {\n color: #1976d2;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] .category-icon[_ngcontent-%COMP%] {\n width: 16px;\n text-align: center;\n margin-right: 0.75rem;\n color: #6c757d;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] .category-name[_ngcontent-%COMP%] {\n flex: 1;\n font-weight: 500;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item[_ngcontent-%COMP%] .category-count[_ngcontent-%COMP%] {\n background: #dee2e6;\n color: #495057;\n padding: 0.25rem 0.5rem;\n border-radius: 12px;\n font-size: 0.8rem;\n font-weight: 600;\n min-width: 24px;\n text-align: center;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] .category-list[_ngcontent-%COMP%] .category-item.selected[_ngcontent-%COMP%] .category-count[_ngcontent-%COMP%] {\n background: #bbdefb;\n color: #1976d2;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] {\n flex: 1;\n padding: 1.5rem;\n overflow-y: auto;\n background: white;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .loading-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 200px;\n color: #6c757d;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .loading-state[_ngcontent-%COMP%] .loading-spinner[_ngcontent-%COMP%] {\n margin-bottom: 1rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .loading-state[_ngcontent-%COMP%] .loading-spinner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #2196f3;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .loading-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin-top: 1rem;\n font-size: 1.1rem;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 300px;\n color: #6c757d;\n text-align: center;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 3rem;\n margin-bottom: 1rem;\n color: #dee2e6;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] {\n margin: 0 0 0.5rem 0;\n color: #495057;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .empty-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin: 0 0 1.5rem 0;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n gap: 1.5rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] {\n position: relative;\n background: white;\n border: 2px solid #e0e0e0;\n border-radius: 8px;\n padding: 1.5rem;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%]:hover {\n border-color: #2196f3;\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.15);\n transform: translateY(-2px);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card.selected[_ngcontent-%COMP%] {\n border-color: #28a745;\n background: #f8fff9;\n box-shadow: 0 4px 12px rgba(40, 167, 69, 0.15);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card.selected[_ngcontent-%COMP%] .selection-indicator[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #28a745;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card.existing[_ngcontent-%COMP%] {\n border-color: #6c757d;\n background: #f8f9fa;\n cursor: default;\n opacity: 0.7;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card.existing[_ngcontent-%COMP%]:hover {\n transform: none;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .selection-indicator[_ngcontent-%COMP%] {\n position: absolute;\n top: 1rem;\n right: 1rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .selection-indicator[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.25rem;\n color: #dee2e6;\n transition: color 0.2s ease;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n margin-bottom: 1rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-header[_ngcontent-%COMP%] .action-icon[_ngcontent-%COMP%] {\n width: 40px;\n height: 40px;\n background: #e3f2fd;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 1rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-header[_ngcontent-%COMP%] .action-icon[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.25rem;\n color: #1976d2;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-header[_ngcontent-%COMP%] .action-name[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 1.1rem;\n font-weight: 600;\n color: #212529;\n line-height: 1.2;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .action-description[_ngcontent-%COMP%] {\n margin: 0 0 1rem 0;\n color: #6c757d;\n line-height: 1.4;\n font-size: 0.9rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .category-badge[_ngcontent-%COMP%], \n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .type-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n background: #f8f9fa;\n color: #495057;\n padding: 0.25rem 0.5rem;\n border-radius: 4px;\n font-size: 0.8rem;\n font-weight: 500;\n margin-right: 0.5rem;\n margin-bottom: 0.5rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .category-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%], \n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .type-badge[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 0.7rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .card-body[_ngcontent-%COMP%] .type-badge[_ngcontent-%COMP%] {\n background: #fff3cd;\n color: #856404;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .existing-overlay[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(108, 117, 125, 0.9);\n color: white;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .existing-overlay[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 2rem;\n margin-bottom: 0.5rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] .action-card[_ngcontent-%COMP%] .existing-overlay[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n font-weight: 600;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 40px 1fr 150px 100px 2fr 120px;\n gap: 1rem;\n padding: 1rem;\n background: #f8f9fa;\n border-radius: 6px;\n font-weight: 600;\n color: #495057;\n margin-bottom: 0.5rem;\n font-size: 0.9rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 40px 1fr 150px 100px 2fr 120px;\n gap: 1rem;\n padding: 1rem;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n margin-bottom: 0.5rem;\n cursor: pointer;\n transition: all 0.2s ease;\n align-items: center;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%]:hover {\n background: #f8f9fa;\n border-color: #2196f3;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item.selected[_ngcontent-%COMP%] {\n background: #f8fff9;\n border-color: #28a745;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item.selected[_ngcontent-%COMP%] .col-select[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #28a745;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item.existing[_ngcontent-%COMP%] {\n background: #f8f9fa;\n opacity: 0.7;\n cursor: default;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item.existing[_ngcontent-%COMP%]:hover {\n background: #f8f9fa;\n border-color: #e0e0e0;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-select[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n font-size: 1.25rem;\n color: #dee2e6;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-name[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 500;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-name[_ngcontent-%COMP%] .action-icon[_ngcontent-%COMP%] {\n color: #1976d2;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-description[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 0.9rem;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .status-badge[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n border-radius: 4px;\n font-size: 0.8rem;\n font-weight: 500;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .status-badge.existing[_ngcontent-%COMP%] {\n background: #6c757d;\n color: white;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .status-badge.available[_ngcontent-%COMP%] {\n background: #d4edda;\n color: #155724;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .selection-summary[_ngcontent-%COMP%] {\n padding: 1rem 1.5rem;\n background: #d4edda;\n border-top: 1px solid #c3e6cb;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .selection-summary[_ngcontent-%COMP%] .summary-content[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n color: #155724;\n font-weight: 500;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .selection-summary[_ngcontent-%COMP%] .summary-content[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #28a745;\n}\n\n\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-top: 1px solid #e0e0e0;\n background: #f8f9fa;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-footer[_ngcontent-%COMP%] button[kendoButton][_ngcontent-%COMP%] {\n min-width: 120px;\n}\n\n.add-action-dialog[_ngcontent-%COMP%] .dialog-footer[_ngcontent-%COMP%] button[kendoButton][look=\"primary\"][_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 0.5rem;\n}\n\n\n\n@media (max-width: 768px) {\n .add-action-dialog[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] {\n flex-direction: column;\n }\n\n .add-action-dialog[_ngcontent-%COMP%] .category-sidebar[_ngcontent-%COMP%] {\n width: 100%;\n max-height: 200px;\n }\n\n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] {\n grid-template-columns: 40px 1fr 80px;\n gap: 0.5rem;\n }\n\n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .col-category[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .col-type[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-header[_ngcontent-%COMP%] .col-description[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-category[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-type[_ngcontent-%COMP%], \n .add-action-dialog[_ngcontent-%COMP%] .actions-container[_ngcontent-%COMP%] .actions-list[_ngcontent-%COMP%] .list-item[_ngcontent-%COMP%] .col-description[_ngcontent-%COMP%] {\n display: none;\n }\n}"] }); }
572
572
  }
573
573
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AddActionDialogComponent, [{
574
574
  type: Component,
575
- args: [{ selector: 'mj-add-action-dialog', template: "<!-- Add Action Dialog -->\n<div class=\"add-action-dialog\">\n \n <!-- Dialog Header -->\n <div class=\"dialog-header\">\n <div class=\"search-section\">\n <kendo-textbox \n [formControl]=\"searchControl\" \n placeholder=\"Search actions by name, description, or category...\"\n class=\"search-input\"\n [clearButton]=\"true\">\n <ng-template kendoTextBoxPrefixTemplate>\n <i class=\"fa-solid fa-search\"></i>\n </ng-template>\n </kendo-textbox>\n </div>\n \n <div class=\"header-actions\">\n <!-- View Toggle -->\n <button kendoButton \n [toggleable]=\"true\" \n [selected]=\"(viewMode$ | async) === 'grid'\"\n (click)=\"toggleViewMode()\"\n size=\"small\"\n kendoTooltip\n [title]=\"(viewMode$ | async) === 'grid' ? 'Switch to list view' : 'Switch to grid view'\">\n <i class=\"fa-solid\" \n [class.fa-th]=\"(viewMode$ | async) === 'grid'\" \n [class.fa-list]=\"(viewMode$ | async) === 'list'\"></i>\n </button>\n \n <!-- Stats -->\n <div class=\"stats\">\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-bolt\"></i>\n {{ filteredCount }} of {{ totalActionCount }} actions\n </span>\n </div>\n </div>\n </div>\n\n <!-- Main Content -->\n <div class=\"dialog-content\">\n \n <!-- Category Sidebar -->\n <div class=\"category-sidebar\">\n <div class=\"sidebar-header\">\n <h4><i class=\"fa-solid fa-folder-tree\"></i> Categories</h4>\n </div>\n \n <div class=\"category-list\">\n @for (category of categoryTree$ | async; track category.id) {\n <div class=\"category-item\" \n [class.selected]=\"(selectedCategoryId$ | async) === category.id\"\n (click)=\"selectCategory(category.id)\">\n <i class=\"fa-solid {{ category.icon }} category-icon\"></i>\n <span class=\"category-name\">{{ category.name }}</span>\n <span class=\"category-count\">{{ category.count }}</span>\n </div>\n }\n </div>\n </div>\n\n <!-- Actions Display -->\n <div class=\"actions-container\">\n \n <!-- Loading State -->\n @if (isLoading$ | async) {\n <div class=\"loading-state\">\n <div class=\"loading-spinner\">\n <i class=\"fa-solid fa-spinner fa-spin fa-2x\"></i>\n </div>\n <p>Loading actions...</p>\n </div>\n }\n\n <!-- Empty State -->\n @if (!(isLoading$ | async) && filteredCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-search-minus\"></i>\n <h3>No actions found</h3>\n <p>Try adjusting your search criteria or selecting a different category</p>\n <button kendoButton (click)=\"clearSearch()\">Clear Search</button>\n </div>\n }\n\n <!-- Grid View -->\n @if (!(isLoading$ | async) && (viewMode$ | async) === 'grid' && filteredCount > 0) {\n <div class=\"actions-grid\">\n @for (action of filteredActions$ | async; track action.ID) {\n <div class=\"action-card\" \n [class.selected]=\"action.selected\"\n [class.existing]=\"existingActionIds.includes(action.ID)\"\n (click)=\"toggleActionSelection(action)\">\n \n <!-- Selection Indicator -->\n <div class=\"selection-indicator\">\n <i class=\"fa-solid\" \n [class.fa-check-circle]=\"action.selected\" \n [class.fa-circle]=\"!action.selected\"></i>\n </div>\n \n <!-- Card Content -->\n <div class=\"card-header\">\n <div class=\"action-icon\">\n <i class=\"fa-solid {{ getActionIcon(action) }}\"></i>\n </div>\n <h3 class=\"action-name\">{{ action.Name }}</h3>\n </div>\n \n <div class=\"card-body\">\n <p class=\"action-description\">{{ action.Description || 'No description available' }}</p>\n \n @if (action.categoryName) {\n <div class=\"category-badge\">\n <i class=\"fa-solid fa-folder\"></i>\n {{ action.categoryName }}\n </div>\n }\n \n @if (action.Type) {\n <div class=\"type-badge\">\n <i class=\"fa-solid fa-tag\"></i>\n {{ action.Type }}\n </div>\n }\n </div>\n \n <!-- Existing Action Overlay -->\n @if (existingActionIds.includes(action.ID)) {\n <div class=\"existing-overlay\">\n <i class=\"fa-solid fa-check\"></i>\n <span>Already Added</span>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <!-- List View -->\n @if (!(isLoading$ | async) && (viewMode$ | async) === 'list' && filteredCount > 0) {\n <div class=\"actions-list\">\n \n <!-- List Header -->\n <div class=\"list-header\">\n <span class=\"col-select\"></span>\n <span class=\"col-name\">Name</span>\n <span class=\"col-category\">Category</span>\n <span class=\"col-type\">Type</span>\n <span class=\"col-description\">Description</span>\n <span class=\"col-status\">Status</span>\n </div>\n \n <!-- List Items -->\n @for (action of filteredActions$ | async; track action.ID) {\n <div class=\"list-item\" \n [class.selected]=\"action.selected\"\n [class.existing]=\"existingActionIds.includes(action.ID)\"\n (click)=\"toggleActionSelection(action)\">\n \n <span class=\"col-select\">\n <i class=\"fa-solid\" \n [class.fa-check-circle]=\"action.selected\" \n [class.fa-circle]=\"!action.selected\"></i>\n </span>\n \n <span class=\"col-name\">\n <i class=\"fa-solid {{ getActionIcon(action) }} action-icon\"></i>\n {{ action.Name }}\n </span>\n \n <span class=\"col-category\">{{ action.categoryName || '-' }}</span>\n <span class=\"col-type\">{{ action.Type || '-' }}</span>\n <span class=\"col-description\">{{ action.Description || '-' }}</span>\n \n <span class=\"col-status\">\n @if (existingActionIds.includes(action.ID)) {\n <span class=\"status-badge existing\">\n <i class=\"fa-solid fa-check\"></i>\n Added\n </span>\n } @else {\n <span class=\"status-badge available\">\n <i class=\"fa-solid fa-plus\"></i>\n Available\n </span>\n }\n </span>\n </div>\n }\n </div>\n }\n </div>\n </div>\n\n <!-- Selected Actions Summary -->\n @if (selectedCount > 0) {\n <div class=\"selection-summary\">\n <div class=\"summary-content\">\n <i class=\"fa-solid fa-check-circle\"></i>\n <span>{{ selectedCount }} action{{ selectedCount === 1 ? '' : 's' }} selected</span>\n </div>\n </div>\n }\n\n <!-- Dialog Footer -->\n <div class=\"dialog-footer\">\n <button kendoButton \n look=\"flat\" \n (click)=\"cancel()\">\n Cancel\n </button>\n \n <button kendoButton \n themeColor=\"primary\" \n [disabled]=\"selectedCount === 0\"\n (click)=\"addSelectedActions()\">\n <i class=\"fa-solid fa-plus\"></i>\n Add Selected ({{ selectedCount }})\n </button>\n </div>\n</div>", styles: [".add-action-dialog {\n display: flex;\n flex-direction: column;\n height: 100%;\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n/* === Dialog Header === */\n.add-action-dialog .dialog-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-bottom: 1px solid #e0e0e0;\n background: #f8f9fa;\n}\n\n.add-action-dialog .dialog-header .search-section {\n flex: 1;\n}\n\n.add-action-dialog .dialog-header .search-section .search-input {\n width: 100%;\n max-width: 400px;\n}\n\n.add-action-dialog .dialog-header .header-actions {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n\n.add-action-dialog .dialog-header .header-actions .stats .stat-item {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n color: #6c757d;\n font-size: 0.9rem;\n}\n\n.add-action-dialog .dialog-header .header-actions .stats .stat-item i {\n color: #28a745;\n}\n\n/* === Main Content === */\n.add-action-dialog .dialog-content {\n display: flex;\n flex: 1;\n overflow: hidden;\n}\n\n/* === Category Sidebar === */\n.add-action-dialog .category-sidebar {\n width: 250px;\n background: #f8f9fa;\n border-right: 1px solid #e0e0e0;\n overflow-y: auto;\n}\n\n.add-action-dialog .category-sidebar .sidebar-header {\n padding: 1rem;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.add-action-dialog .category-sidebar .sidebar-header h4 {\n margin: 0;\n color: #495057;\n font-size: 1rem;\n font-weight: 600;\n}\n\n.add-action-dialog .category-sidebar .sidebar-header h4 i {\n margin-right: 0.5rem;\n color: #6c757d;\n}\n\n.add-action-dialog .category-sidebar .category-list {\n padding: 0.5rem 0;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item {\n display: flex;\n align-items: center;\n padding: 0.75rem 1rem;\n cursor: pointer;\n transition: all 0.2s ease;\n border-left: 3px solid transparent;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item:hover {\n background: #e9ecef;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item.selected {\n background: #e3f2fd;\n border-left-color: #2196f3;\n color: #1976d2;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item.selected .category-icon {\n color: #1976d2;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item .category-icon {\n width: 16px;\n text-align: center;\n margin-right: 0.75rem;\n color: #6c757d;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item .category-name {\n flex: 1;\n font-weight: 500;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item .category-count {\n background: #dee2e6;\n color: #495057;\n padding: 0.25rem 0.5rem;\n border-radius: 12px;\n font-size: 0.8rem;\n font-weight: 600;\n min-width: 24px;\n text-align: center;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item.selected .category-count {\n background: #bbdefb;\n color: #1976d2;\n}\n\n/* === Actions Container === */\n.add-action-dialog .actions-container {\n flex: 1;\n padding: 1.5rem;\n overflow-y: auto;\n background: white;\n}\n\n/* Loading State */\n.add-action-dialog .actions-container .loading-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 200px;\n color: #6c757d;\n}\n\n.add-action-dialog .actions-container .loading-state .loading-spinner {\n margin-bottom: 1rem;\n}\n\n.add-action-dialog .actions-container .loading-state .loading-spinner i {\n color: #2196f3;\n}\n\n.add-action-dialog .actions-container .loading-state p {\n margin-top: 1rem;\n font-size: 1.1rem;\n}\n\n/* Empty State */\n.add-action-dialog .actions-container .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 300px;\n color: #6c757d;\n text-align: center;\n}\n\n.add-action-dialog .actions-container .empty-state i {\n font-size: 3rem;\n margin-bottom: 1rem;\n color: #dee2e6;\n}\n\n.add-action-dialog .actions-container .empty-state h3 {\n margin: 0 0 0.5rem 0;\n color: #495057;\n}\n\n.add-action-dialog .actions-container .empty-state p {\n margin: 0 0 1.5rem 0;\n}\n\n/* === Grid View === */\n.add-action-dialog .actions-container .actions-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n gap: 1.5rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card {\n position: relative;\n background: white;\n border: 2px solid #e0e0e0;\n border-radius: 8px;\n padding: 1.5rem;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card:hover {\n border-color: #2196f3;\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.15);\n transform: translateY(-2px);\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card.selected {\n border-color: #28a745;\n background: #f8fff9;\n box-shadow: 0 4px 12px rgba(40, 167, 69, 0.15);\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card.selected .selection-indicator i {\n color: #28a745;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card.existing {\n border-color: #6c757d;\n background: #f8f9fa;\n cursor: default;\n opacity: 0.7;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card.existing:hover {\n transform: none;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .selection-indicator {\n position: absolute;\n top: 1rem;\n right: 1rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .selection-indicator i {\n font-size: 1.25rem;\n color: #dee2e6;\n transition: color 0.2s ease;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-header {\n display: flex;\n align-items: center;\n margin-bottom: 1rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-header .action-icon {\n width: 40px;\n height: 40px;\n background: #e3f2fd;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 1rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-header .action-icon i {\n font-size: 1.25rem;\n color: #1976d2;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-header .action-name {\n margin: 0;\n font-size: 1.1rem;\n font-weight: 600;\n color: #212529;\n line-height: 1.2;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .action-description {\n margin: 0 0 1rem 0;\n color: #6c757d;\n line-height: 1.4;\n font-size: 0.9rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .category-badge,\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .type-badge {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n background: #f8f9fa;\n color: #495057;\n padding: 0.25rem 0.5rem;\n border-radius: 4px;\n font-size: 0.8rem;\n font-weight: 500;\n margin-right: 0.5rem;\n margin-bottom: 0.5rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .category-badge i,\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .type-badge i {\n font-size: 0.7rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .type-badge {\n background: #fff3cd;\n color: #856404;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .existing-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(108, 117, 125, 0.9);\n color: white;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .existing-overlay i {\n font-size: 2rem;\n margin-bottom: 0.5rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .existing-overlay span {\n font-weight: 600;\n}\n\n/* === List View === */\n.add-action-dialog .actions-container .actions-list .list-header {\n display: grid;\n grid-template-columns: 40px 1fr 150px 100px 2fr 120px;\n gap: 1rem;\n padding: 1rem;\n background: #f8f9fa;\n border-radius: 6px;\n font-weight: 600;\n color: #495057;\n margin-bottom: 0.5rem;\n font-size: 0.9rem;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item {\n display: grid;\n grid-template-columns: 40px 1fr 150px 100px 2fr 120px;\n gap: 1rem;\n padding: 1rem;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n margin-bottom: 0.5rem;\n cursor: pointer;\n transition: all 0.2s ease;\n align-items: center;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item:hover {\n background: #f8f9fa;\n border-color: #2196f3;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item.selected {\n background: #f8fff9;\n border-color: #28a745;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item.selected .col-select i {\n color: #28a745;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item.existing {\n background: #f8f9fa;\n opacity: 0.7;\n cursor: default;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item.existing:hover {\n background: #f8f9fa;\n border-color: #e0e0e0;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .col-select i {\n font-size: 1.25rem;\n color: #dee2e6;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .col-name {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 500;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .col-name .action-icon {\n color: #1976d2;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .col-description {\n color: #6c757d;\n font-size: 0.9rem;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .status-badge {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n border-radius: 4px;\n font-size: 0.8rem;\n font-weight: 500;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .status-badge.existing {\n background: #6c757d;\n color: white;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .status-badge.available {\n background: #d4edda;\n color: #155724;\n}\n\n/* === Selection Summary === */\n.add-action-dialog .selection-summary {\n padding: 1rem 1.5rem;\n background: #d4edda;\n border-top: 1px solid #c3e6cb;\n}\n\n.add-action-dialog .selection-summary .summary-content {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n color: #155724;\n font-weight: 500;\n}\n\n.add-action-dialog .selection-summary .summary-content i {\n color: #28a745;\n}\n\n/* === Dialog Footer === */\n.add-action-dialog .dialog-footer {\n display: flex;\n justify-content: flex-end;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-top: 1px solid #e0e0e0;\n background: #f8f9fa;\n}\n\n.add-action-dialog .dialog-footer button[kendoButton] {\n min-width: 120px;\n}\n\n.add-action-dialog .dialog-footer button[kendoButton][look=\"primary\"] i {\n margin-right: 0.5rem;\n}\n\n/* === Responsive Design === */\n@media (max-width: 768px) {\n .add-action-dialog .dialog-content {\n flex-direction: column;\n }\n\n .add-action-dialog .category-sidebar {\n width: 100%;\n max-height: 200px;\n }\n\n .add-action-dialog .actions-container .actions-grid {\n grid-template-columns: 1fr;\n }\n\n .add-action-dialog .actions-container .actions-list .list-header,\n .add-action-dialog .actions-container .actions-list .list-item {\n grid-template-columns: 40px 1fr 80px;\n gap: 0.5rem;\n }\n\n .add-action-dialog .actions-container .actions-list .list-header .col-category,\n .add-action-dialog .actions-container .actions-list .list-header .col-type,\n .add-action-dialog .actions-container .actions-list .list-header .col-description,\n .add-action-dialog .actions-container .actions-list .list-item .col-category,\n .add-action-dialog .actions-container .actions-list .list-item .col-type,\n .add-action-dialog .actions-container .actions-list .list-item .col-description {\n display: none;\n }\n}"] }]
576
- }], () => [{ type: i1.DialogRef }, { type: i0.ChangeDetectorRef }], null); })();
575
+ args: [{ selector: 'mj-add-action-dialog', template: "<!-- Add Action Dialog -->\n<div class=\"add-action-dialog\">\n \n <!-- Dialog Header -->\n <div class=\"dialog-header\">\n <div class=\"search-section\">\n <kendo-textbox \n [formControl]=\"searchControl\" \n placeholder=\"Search actions by name, description, or category...\"\n class=\"search-input\"\n [clearButton]=\"true\">\n <ng-template kendoTextBoxPrefixTemplate>\n <i class=\"fa-solid fa-search\"></i>\n </ng-template>\n </kendo-textbox>\n </div>\n \n <div class=\"header-actions\">\n <!-- View Toggle -->\n <button kendoButton \n [toggleable]=\"true\" \n [selected]=\"(viewMode$ | async) === 'grid'\"\n (click)=\"toggleViewMode()\"\n size=\"small\"\n kendoTooltip\n [title]=\"(viewMode$ | async) === 'grid' ? 'Switch to list view' : 'Switch to grid view'\">\n <i class=\"fa-solid\" \n [class.fa-th]=\"(viewMode$ | async) === 'grid'\" \n [class.fa-list]=\"(viewMode$ | async) === 'list'\"></i>\n </button>\n \n <!-- Stats -->\n <div class=\"stats\">\n <span class=\"stat-item\">\n <i class=\"fa-solid fa-bolt\"></i>\n {{ filteredCount }} of {{ totalActionCount }} actions\n </span>\n </div>\n </div>\n </div>\n\n <!-- Main Content -->\n <div class=\"dialog-content\">\n \n <!-- Category Sidebar -->\n <div class=\"category-sidebar\">\n <div class=\"sidebar-header\">\n <h4><i class=\"fa-solid fa-folder-tree\"></i> Categories</h4>\n </div>\n \n <div class=\"category-list\">\n @for (category of categoryTree$ | async; track category.id) {\n <div class=\"category-item\" \n [class.selected]=\"(selectedCategoryId$ | async) === category.id\"\n (click)=\"selectCategory(category.id)\">\n <i class=\"fa-solid {{ category.icon }} category-icon\"></i>\n <span class=\"category-name\">{{ category.name }}</span>\n <span class=\"category-count\">{{ category.count }}</span>\n </div>\n }\n </div>\n </div>\n\n <!-- Actions Display -->\n <div class=\"actions-container\">\n \n <!-- Loading State -->\n @if (isLoading$ | async) {\n <div class=\"loading-state\">\n <div class=\"loading-spinner\">\n <i class=\"fa-solid fa-spinner fa-spin fa-2x\"></i>\n </div>\n <p>Loading actions...</p>\n </div>\n }\n\n <!-- Empty State -->\n @if (!(isLoading$ | async) && filteredCount === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-search-minus\"></i>\n <h3>No actions found</h3>\n <p>Try adjusting your search criteria or selecting a different category</p>\n <button kendoButton (click)=\"clearSearch()\">Clear Search</button>\n </div>\n }\n\n <!-- Grid View -->\n @if (!(isLoading$ | async) && (viewMode$ | async) === 'grid' && filteredCount > 0) {\n <div class=\"actions-grid\">\n @for (action of filteredActions$ | async; track action.ID) {\n <div class=\"action-card\" \n [class.selected]=\"action.selected\"\n [class.existing]=\"existingActionIds.includes(action.ID)\"\n (click)=\"toggleActionSelection(action)\">\n \n <!-- Selection Indicator -->\n <div class=\"selection-indicator\">\n <i class=\"fa-solid\" \n [class.fa-check-circle]=\"action.selected\" \n [class.fa-circle]=\"!action.selected\"></i>\n </div>\n \n <!-- Card Content -->\n <div class=\"card-header\">\n <div class=\"action-icon\">\n <i class=\"fa-solid {{ getActionIcon(action) }}\"></i>\n </div>\n <h3 class=\"action-name\">{{ action.Name }}</h3>\n </div>\n \n <div class=\"card-body\">\n <p class=\"action-description\">{{ action.Description || 'No description available' }}</p>\n \n @if (action.categoryName) {\n <div class=\"category-badge\">\n <i class=\"fa-solid fa-folder\"></i>\n {{ action.categoryName }}\n </div>\n }\n \n @if (action.Type) {\n <div class=\"type-badge\">\n <i class=\"fa-solid fa-tag\"></i>\n {{ action.Type }}\n </div>\n }\n </div>\n \n <!-- Existing Action Overlay -->\n @if (existingActionIds.includes(action.ID)) {\n <div class=\"existing-overlay\">\n <i class=\"fa-solid fa-check\"></i>\n <span>Already Added</span>\n </div>\n }\n </div>\n }\n </div>\n }\n\n <!-- List View -->\n @if (!(isLoading$ | async) && (viewMode$ | async) === 'list' && filteredCount > 0) {\n <div class=\"actions-list\">\n \n <!-- List Header -->\n <div class=\"list-header\">\n <span class=\"col-select\"></span>\n <span class=\"col-name\">Name</span>\n <span class=\"col-category\">Category</span>\n <span class=\"col-type\">Type</span>\n <span class=\"col-description\">Description</span>\n <span class=\"col-status\">Status</span>\n </div>\n \n <!-- List Items -->\n @for (action of filteredActions$ | async; track action.ID) {\n <div class=\"list-item\" \n [class.selected]=\"action.selected\"\n [class.existing]=\"existingActionIds.includes(action.ID)\"\n (click)=\"toggleActionSelection(action)\">\n \n <span class=\"col-select\">\n <i class=\"fa-solid\" \n [class.fa-check-circle]=\"action.selected\" \n [class.fa-circle]=\"!action.selected\"></i>\n </span>\n \n <span class=\"col-name\">\n <i class=\"fa-solid {{ getActionIcon(action) }} action-icon\"></i>\n {{ action.Name }}\n </span>\n \n <span class=\"col-category\">{{ action.categoryName || '-' }}</span>\n <span class=\"col-type\">{{ action.Type || '-' }}</span>\n <span class=\"col-description\">{{ action.Description || '-' }}</span>\n \n <span class=\"col-status\">\n @if (existingActionIds.includes(action.ID)) {\n <span class=\"status-badge existing\">\n <i class=\"fa-solid fa-check\"></i>\n Added\n </span>\n } @else {\n <span class=\"status-badge available\">\n <i class=\"fa-solid fa-plus\"></i>\n Available\n </span>\n }\n </span>\n </div>\n }\n </div>\n }\n </div>\n </div>\n\n <!-- Selected Actions Summary -->\n @if (selectedCount > 0) {\n <div class=\"selection-summary\">\n <div class=\"summary-content\">\n <i class=\"fa-solid fa-check-circle\"></i>\n <span>{{ selectedCount }} action{{ selectedCount === 1 ? '' : 's' }} selected</span>\n </div>\n </div>\n }\n\n <!-- Dialog Footer -->\n <div class=\"dialog-footer\">\n <button kendoButton \n look=\"flat\" \n (click)=\"cancel()\">\n Cancel\n </button>\n \n <button kendoButton \n themeColor=\"primary\" \n [disabled]=\"selectedCount === 0\"\n (click)=\"addSelectedActions()\">\n <i class=\"fa-solid fa-plus\"></i>\n Add Selected ({{ selectedCount }})\n </button>\n </div>\n</div>", styles: [".add-action-dialog {\n display: flex;\n flex-direction: column;\n height: 100%;\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n/* Ensure dialog appears above banner and other elements */\n:host ::ng-deep .k-dialog,\n:host ::ng-deep .k-window {\n z-index: 10000 !important;\n}\n\n:host ::ng-deep .k-overlay {\n z-index: 9999 !important;\n}\n\n/* === Dialog Header === */\n.add-action-dialog .dialog-header {\n display: flex;\n align-items: center;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-bottom: 1px solid #e0e0e0;\n background: #f8f9fa;\n}\n\n.add-action-dialog .dialog-header .search-section {\n flex: 1;\n}\n\n.add-action-dialog .dialog-header .search-section .search-input {\n width: 100%;\n max-width: 400px;\n}\n\n.add-action-dialog .dialog-header .header-actions {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n\n.add-action-dialog .dialog-header .header-actions .stats .stat-item {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n color: #6c757d;\n font-size: 0.9rem;\n}\n\n.add-action-dialog .dialog-header .header-actions .stats .stat-item i {\n color: #28a745;\n}\n\n/* === Main Content === */\n.add-action-dialog .dialog-content {\n display: flex;\n flex: 1;\n overflow: hidden;\n}\n\n/* === Category Sidebar === */\n.add-action-dialog .category-sidebar {\n width: 250px;\n background: #f8f9fa;\n border-right: 1px solid #e0e0e0;\n overflow-y: auto;\n}\n\n.add-action-dialog .category-sidebar .sidebar-header {\n padding: 1rem;\n border-bottom: 1px solid #e0e0e0;\n}\n\n.add-action-dialog .category-sidebar .sidebar-header h4 {\n margin: 0;\n color: #495057;\n font-size: 1rem;\n font-weight: 600;\n}\n\n.add-action-dialog .category-sidebar .sidebar-header h4 i {\n margin-right: 0.5rem;\n color: #6c757d;\n}\n\n.add-action-dialog .category-sidebar .category-list {\n padding: 0.5rem 0;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item {\n display: flex;\n align-items: center;\n padding: 0.75rem 1rem;\n cursor: pointer;\n transition: all 0.2s ease;\n border-left: 3px solid transparent;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item:hover {\n background: #e9ecef;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item.selected {\n background: #e3f2fd;\n border-left-color: #2196f3;\n color: #1976d2;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item.selected .category-icon {\n color: #1976d2;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item .category-icon {\n width: 16px;\n text-align: center;\n margin-right: 0.75rem;\n color: #6c757d;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item .category-name {\n flex: 1;\n font-weight: 500;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item .category-count {\n background: #dee2e6;\n color: #495057;\n padding: 0.25rem 0.5rem;\n border-radius: 12px;\n font-size: 0.8rem;\n font-weight: 600;\n min-width: 24px;\n text-align: center;\n}\n\n.add-action-dialog .category-sidebar .category-list .category-item.selected .category-count {\n background: #bbdefb;\n color: #1976d2;\n}\n\n/* === Actions Container === */\n.add-action-dialog .actions-container {\n flex: 1;\n padding: 1.5rem;\n overflow-y: auto;\n background: white;\n}\n\n/* Loading State */\n.add-action-dialog .actions-container .loading-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 200px;\n color: #6c757d;\n}\n\n.add-action-dialog .actions-container .loading-state .loading-spinner {\n margin-bottom: 1rem;\n}\n\n.add-action-dialog .actions-container .loading-state .loading-spinner i {\n color: #2196f3;\n}\n\n.add-action-dialog .actions-container .loading-state p {\n margin-top: 1rem;\n font-size: 1.1rem;\n}\n\n/* Empty State */\n.add-action-dialog .actions-container .empty-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 300px;\n color: #6c757d;\n text-align: center;\n}\n\n.add-action-dialog .actions-container .empty-state i {\n font-size: 3rem;\n margin-bottom: 1rem;\n color: #dee2e6;\n}\n\n.add-action-dialog .actions-container .empty-state h3 {\n margin: 0 0 0.5rem 0;\n color: #495057;\n}\n\n.add-action-dialog .actions-container .empty-state p {\n margin: 0 0 1.5rem 0;\n}\n\n/* === Grid View === */\n.add-action-dialog .actions-container .actions-grid {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));\n gap: 1.5rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card {\n position: relative;\n background: white;\n border: 2px solid #e0e0e0;\n border-radius: 8px;\n padding: 1.5rem;\n cursor: pointer;\n transition: all 0.2s ease;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card:hover {\n border-color: #2196f3;\n box-shadow: 0 4px 12px rgba(33, 150, 243, 0.15);\n transform: translateY(-2px);\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card.selected {\n border-color: #28a745;\n background: #f8fff9;\n box-shadow: 0 4px 12px rgba(40, 167, 69, 0.15);\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card.selected .selection-indicator i {\n color: #28a745;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card.existing {\n border-color: #6c757d;\n background: #f8f9fa;\n cursor: default;\n opacity: 0.7;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card.existing:hover {\n transform: none;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .selection-indicator {\n position: absolute;\n top: 1rem;\n right: 1rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .selection-indicator i {\n font-size: 1.25rem;\n color: #dee2e6;\n transition: color 0.2s ease;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-header {\n display: flex;\n align-items: center;\n margin-bottom: 1rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-header .action-icon {\n width: 40px;\n height: 40px;\n background: #e3f2fd;\n border-radius: 8px;\n display: flex;\n align-items: center;\n justify-content: center;\n margin-right: 1rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-header .action-icon i {\n font-size: 1.25rem;\n color: #1976d2;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-header .action-name {\n margin: 0;\n font-size: 1.1rem;\n font-weight: 600;\n color: #212529;\n line-height: 1.2;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .action-description {\n margin: 0 0 1rem 0;\n color: #6c757d;\n line-height: 1.4;\n font-size: 0.9rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .category-badge,\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .type-badge {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n background: #f8f9fa;\n color: #495057;\n padding: 0.25rem 0.5rem;\n border-radius: 4px;\n font-size: 0.8rem;\n font-weight: 500;\n margin-right: 0.5rem;\n margin-bottom: 0.5rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .category-badge i,\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .type-badge i {\n font-size: 0.7rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .card-body .type-badge {\n background: #fff3cd;\n color: #856404;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .existing-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(108, 117, 125, 0.9);\n color: white;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n border-radius: 6px;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .existing-overlay i {\n font-size: 2rem;\n margin-bottom: 0.5rem;\n}\n\n.add-action-dialog .actions-container .actions-grid .action-card .existing-overlay span {\n font-weight: 600;\n}\n\n/* === List View === */\n.add-action-dialog .actions-container .actions-list .list-header {\n display: grid;\n grid-template-columns: 40px 1fr 150px 100px 2fr 120px;\n gap: 1rem;\n padding: 1rem;\n background: #f8f9fa;\n border-radius: 6px;\n font-weight: 600;\n color: #495057;\n margin-bottom: 0.5rem;\n font-size: 0.9rem;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item {\n display: grid;\n grid-template-columns: 40px 1fr 150px 100px 2fr 120px;\n gap: 1rem;\n padding: 1rem;\n border: 1px solid #e0e0e0;\n border-radius: 6px;\n margin-bottom: 0.5rem;\n cursor: pointer;\n transition: all 0.2s ease;\n align-items: center;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item:hover {\n background: #f8f9fa;\n border-color: #2196f3;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item.selected {\n background: #f8fff9;\n border-color: #28a745;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item.selected .col-select i {\n color: #28a745;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item.existing {\n background: #f8f9fa;\n opacity: 0.7;\n cursor: default;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item.existing:hover {\n background: #f8f9fa;\n border-color: #e0e0e0;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .col-select i {\n font-size: 1.25rem;\n color: #dee2e6;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .col-name {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 500;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .col-name .action-icon {\n color: #1976d2;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .col-description {\n color: #6c757d;\n font-size: 0.9rem;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .status-badge {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n border-radius: 4px;\n font-size: 0.8rem;\n font-weight: 500;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .status-badge.existing {\n background: #6c757d;\n color: white;\n}\n\n.add-action-dialog .actions-container .actions-list .list-item .status-badge.available {\n background: #d4edda;\n color: #155724;\n}\n\n/* === Selection Summary === */\n.add-action-dialog .selection-summary {\n padding: 1rem 1.5rem;\n background: #d4edda;\n border-top: 1px solid #c3e6cb;\n}\n\n.add-action-dialog .selection-summary .summary-content {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n color: #155724;\n font-weight: 500;\n}\n\n.add-action-dialog .selection-summary .summary-content i {\n color: #28a745;\n}\n\n/* === Dialog Footer === */\n.add-action-dialog .dialog-footer {\n display: flex;\n justify-content: flex-end;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-top: 1px solid #e0e0e0;\n background: #f8f9fa;\n}\n\n.add-action-dialog .dialog-footer button[kendoButton] {\n min-width: 120px;\n}\n\n.add-action-dialog .dialog-footer button[kendoButton][look=\"primary\"] i {\n margin-right: 0.5rem;\n}\n\n/* === Responsive Design === */\n@media (max-width: 768px) {\n .add-action-dialog .dialog-content {\n flex-direction: column;\n }\n\n .add-action-dialog .category-sidebar {\n width: 100%;\n max-height: 200px;\n }\n\n .add-action-dialog .actions-container .actions-grid {\n grid-template-columns: 1fr;\n }\n\n .add-action-dialog .actions-container .actions-list .list-header,\n .add-action-dialog .actions-container .actions-list .list-item {\n grid-template-columns: 40px 1fr 80px;\n gap: 0.5rem;\n }\n\n .add-action-dialog .actions-container .actions-list .list-header .col-category,\n .add-action-dialog .actions-container .actions-list .list-header .col-type,\n .add-action-dialog .actions-container .actions-list .list-header .col-description,\n .add-action-dialog .actions-container .actions-list .list-item .col-category,\n .add-action-dialog .actions-container .actions-list .list-item .col-type,\n .add-action-dialog .actions-container .actions-list .list-item .col-description {\n display: none;\n }\n}"] }]
576
+ }], () => [{ type: i1.WindowRef }, { type: i0.ChangeDetectorRef }], null); })();
577
577
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AddActionDialogComponent, { className: "AddActionDialogComponent", filePath: "src/lib/custom/AIAgents/add-action-dialog.component.ts", lineNumber: 31 }); })();
578
578
  //# sourceMappingURL=add-action-dialog.component.js.map
@@ -1,6 +1,6 @@
1
1
  import { OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
2
2
  import { FormGroup, FormBuilder } from '@angular/forms';
3
- import { DialogRef } from '@progress/kendo-angular-dialog';
3
+ import { WindowRef } from '@progress/kendo-angular-dialog';
4
4
  import { Subject, BehaviorSubject } from 'rxjs';
5
5
  import { AIAgentPromptEntity, AIConfigurationEntity } from '@memberjunction/core-entities';
6
6
  import * as i0 from "@angular/core";
@@ -38,7 +38,7 @@ export declare class AgentPromptAdvancedSettingsDialogComponent implements OnIni
38
38
  value: string;
39
39
  }[];
40
40
  executionOrderError: string | null;
41
- constructor(dialogRef: DialogRef, fb: FormBuilder, cdr: ChangeDetectorRef);
41
+ constructor(dialogRef: WindowRef, fb: FormBuilder, cdr: ChangeDetectorRef);
42
42
  ngOnInit(): void;
43
43
  ngOnDestroy(): void;
44
44
  private initializeForm;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-prompt-advanced-settings-dialog.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,WAAW,EAAc,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,eAAe,EAAa,MAAM,MAAM,CAAC;AAE3D,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;;AAG3F,MAAM,WAAW,mCAAmC;IAClD,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,QAAQ,CAAC;IACjG,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,YAAY,GAAG,SAAS,CAAC;CAC1D;AAED;;;GAGG;AACH,qBAKa,0CAA2C,YAAW,MAAM,EAAE,SAAS;IAuChF,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,GAAG;IAtCb,WAAW,EAAG,mBAAmB,CAAC;IAClC,eAAe,EAAE,mBAAmB,EAAE,CAAM;IAG5C,OAAO,CAAC,QAAQ,CAAuB;IAChC,MAAM,sDAA6D;IAG1E,YAAY,EAAG,SAAS,CAAC;IACzB,UAAU,2BAAuC;IACjD,SAAS,2BAAuC;IAGhD,eAAe,2CAAoD;IAGnE,sBAAsB;;;;QAOpB;IAEF,aAAa;;;QAKX;IAGF,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAQ;gBAGhC,SAAS,EAAE,SAAS,EACpB,EAAE,EAAE,WAAW,EACf,GAAG,EAAE,iBAAiB;IAGhC,QAAQ;IAKR,WAAW;IAKX,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,sBAAsB;YAqBhB,gBAAgB;IAiC9B,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAK1C,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IASxC,sBAAsB,IAAI,OAAO;IAMjC,oBAAoB,IAAI,OAAO;IAK/B,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOpD,MAAM;IAKA,IAAI;yCA1LC,0CAA0C;2CAA1C,0CAA0C;CA+NtD"}
1
+ {"version":3,"file":"agent-prompt-advanced-settings-dialog.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,SAAS,EAAE,WAAW,EAAc,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAa,SAAS,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,eAAe,EAAa,MAAM,MAAM,CAAC;AAE3D,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;;AAG3F,MAAM,WAAW,mCAAmC;IAClD,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,EAAE,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,QAAQ,CAAC;IACjG,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,YAAY,GAAG,SAAS,CAAC;CAC1D;AAED;;;GAGG;AACH,qBAKa,0CAA2C,YAAW,MAAM,EAAE,SAAS;IAuChF,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,GAAG;IAtCb,WAAW,EAAG,mBAAmB,CAAC;IAClC,eAAe,EAAE,mBAAmB,EAAE,CAAM;IAG5C,OAAO,CAAC,QAAQ,CAAuB;IAChC,MAAM,sDAA6D;IAG1E,YAAY,EAAG,SAAS,CAAC;IACzB,UAAU,2BAAuC;IACjD,SAAS,2BAAuC;IAGhD,eAAe,2CAAoD;IAGnE,sBAAsB;;;;QAOpB;IAEF,aAAa;;;QAKX;IAGF,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAQ;gBAGhC,SAAS,EAAE,SAAS,EACpB,EAAE,EAAE,WAAW,EACf,GAAG,EAAE,iBAAiB;IAGhC,QAAQ;IAKR,WAAW;IAKX,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,sBAAsB;YAqBhB,gBAAgB;IAiC9B,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAK1C,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IASxC,sBAAsB,IAAI,OAAO;IAMjC,oBAAoB,IAAI,OAAO;IAK/B,6BAA6B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOpD,MAAM;IAKA,IAAI;yCA1LC,0CAA0C;2CAA1C,0CAA0C;CA+NtD"}
@@ -362,7 +362,7 @@ export class AgentPromptAdvancedSettingsDialogComponent {
362
362
  this.isSaving$.next(false);
363
363
  }
364
364
  }
365
- static { this.ɵfac = function AgentPromptAdvancedSettingsDialogComponent_Factory(t) { return new (t || AgentPromptAdvancedSettingsDialogComponent)(i0.ɵɵdirectiveInject(i1.DialogRef), i0.ɵɵdirectiveInject(i2.FormBuilder), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
365
+ static { this.ɵfac = function AgentPromptAdvancedSettingsDialogComponent_Factory(t) { return new (t || AgentPromptAdvancedSettingsDialogComponent)(i0.ɵɵdirectiveInject(i1.WindowRef), i0.ɵɵdirectiveInject(i2.FormBuilder), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
366
366
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AgentPromptAdvancedSettingsDialogComponent, selectors: [["mj-agent-prompt-advanced-settings-dialog"]], decls: 14, vars: 14, consts: [[1, "prompt-advanced-settings-dialog"], [1, "loading-state"], [1, "advanced-form", 3, "formGroup"], [1, "dialog-footer"], ["kendoButton", "", "look", "flat", 3, "click", "disabled"], ["kendoButton", "", "themeColor", "primary", 3, "click", "disabled"], [1, "loading-spinner"], [1, "fa-solid", "fa-spinner", "fa-spin", "fa-2x"], [1, "form-section"], [1, "section-title"], [1, "fa-solid", "fa-list-ol"], [1, "form-grid"], [1, "form-field"], ["for", "executionOrder"], ["formControlName", "executionOrder", 1, "form-control", 3, "min", "format"], [1, "field-error"], [1, "field-hint"], ["for", "purpose"], ["formControlName", "purpose", "placeholder", "e.g., Initialize, ProcessData, Summarize", 1, "form-control"], ["for", "status"], ["formControlName", "status", "textField", "text", "valueField", "value", 1, "form-control", 3, "data", "valuePrimitive"], [1, "fa-solid", "fa-comments"], [1, "form-field", "full-width"], ["for", "contextBehavior"], ["formControlName", "contextBehavior", "textField", "text", "valueField", "value", 1, "form-control", 3, "data", "valuePrimitive"], ["kendoDropDownListItemTemplate", ""], [1, "fa-solid", "fa-cog"], ["for", "configurationID"], ["formControlName", "configurationID", "textField", "Name", "valueField", "ID", 1, "form-control", 3, "data", "valuePrimitive", "defaultItem"], [1, "context-behavior-option"], [1, "option-title"], [1, "option-description"], ["for", "contextMessageCount"], ["formControlName", "contextMessageCount", 1, "form-control", 3, "min", "format"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-save"]], template: function AgentPromptAdvancedSettingsDialogComponent_Template(rf, ctx) { if (rf & 1) {
367
367
  i0.ɵɵelementStart(0, "div", 0);
368
368
  i0.ɵɵtemplate(1, AgentPromptAdvancedSettingsDialogComponent_Conditional_1_Template, 5, 0, "div", 1);
@@ -390,11 +390,11 @@ export class AgentPromptAdvancedSettingsDialogComponent {
390
390
  i0.ɵɵproperty("disabled", i0.ɵɵpipeBind1(9, 8, ctx.isSaving$) || false || (i0.ɵɵpipeBind1(10, 10, ctx.isLoading$) || false) || ctx.hasExecutionOrderError());
391
391
  i0.ɵɵadvance(3);
392
392
  i0.ɵɵconditional(i0.ɵɵpipeBind1(12, 12, ctx.isSaving$) ? 11 : 13);
393
- } }, dependencies: [i2.ɵNgNoValidate, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormGroupDirective, i2.FormControlName, i3.TextBoxComponent, i3.NumericTextBoxComponent, i4.ItemTemplateDirective, i4.DropDownListComponent, i5.ButtonComponent, i6.AsyncPipe], styles: [".prompt-advanced-settings-dialog[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n\n\n.loading-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 300px;\n color: #6c757d;\n}\n\n.loading-spinner[_ngcontent-%COMP%] {\n margin-bottom: 1rem;\n}\n\n.loading-spinner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #2196f3;\n}\n\n.loading-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin-top: 1rem;\n font-size: 1.1rem;\n}\n\n\n\n.advanced-form[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 1.5rem;\n}\n\n.form-section[_ngcontent-%COMP%] {\n margin-bottom: 2rem;\n background: white;\n border-radius: 8px;\n border: 1px solid #e0e0e0;\n overflow: hidden;\n}\n\n.section-title[_ngcontent-%COMP%] {\n margin: 0;\n padding: 1rem 1.5rem;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e0e0;\n color: #495057;\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #2196f3;\n}\n\n.form-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 1.5rem;\n padding: 1.5rem;\n}\n\n.form-field[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.form-field.full-width[_ngcontent-%COMP%] {\n grid-column: 1 / -1;\n}\n\n\n\nlabel[_ngcontent-%COMP%] {\n font-weight: 600;\n color: #495057;\n font-size: 0.9rem;\n}\n\n.form-control[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.field-hint[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 0.8rem;\n margin-top: 0.25rem;\n line-height: 1.3;\n}\n\n.field-error[_ngcontent-%COMP%] {\n color: #dc3545;\n font-size: 0.8rem;\n margin-top: 0.25rem;\n}\n\n\n\n.form-control.ng-invalid.ng-touched[_ngcontent-%COMP%], \n.error-border[_ngcontent-%COMP%] {\n border-color: #dc3545 !important;\n}\n\n.form-control.ng-valid.ng-touched[_ngcontent-%COMP%] {\n border-color: #28a745;\n}\n\n\n\n.context-behavior-option[_ngcontent-%COMP%] {\n padding: 0.5rem 0;\n}\n\n.option-title[_ngcontent-%COMP%] {\n font-weight: 500;\n color: #333;\n font-size: 0.9rem;\n}\n\n.option-description[_ngcontent-%COMP%] {\n font-size: 0.8rem;\n color: #666;\n margin-top: 0.25rem;\n line-height: 1.3;\n}\n\n\n\n.dialog-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-top: 1px solid #e0e0e0;\n background: #f8f9fa;\n}\n\n.dialog-footer[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n min-width: 120px;\n}\n\n.dialog-footer[_ngcontent-%COMP%] button[themeColor=\"primary\"][_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 0.5rem;\n}\n\n\n\n\n\n\n.form-section[_ngcontent-%COMP%]:first-child .section-title[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #e3f2fd, #f8f9fa);\n}\n\n\n\n.form-section[_ngcontent-%COMP%]:nth-child(2) .section-title[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #f3e5f5, #f8f9fa);\n}\n\n\n\n.form-section[_ngcontent-%COMP%]:nth-child(3) .section-title[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #e8f5e8, #f8f9fa);\n}\n\n\n\n@media (max-width: 768px) {\n .form-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n \n .form-field.full-width[_ngcontent-%COMP%] {\n grid-column: 1;\n }\n \n .advanced-form[_ngcontent-%COMP%] {\n padding: 1rem;\n }\n \n .section-title[_ngcontent-%COMP%] {\n padding: 0.75rem 1rem;\n font-size: 1rem;\n }\n \n .dialog-footer[_ngcontent-%COMP%] {\n padding: 1rem;\n flex-direction: column;\n }\n \n .dialog-footer[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n width: 100%;\n }\n}\n\n\n\n.error-border[_ngcontent-%COMP%] {\n border: 2px solid #dc3545 !important;\n background-color: #fff5f5;\n}"] }); }
393
+ } }, dependencies: [i2.ɵNgNoValidate, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormGroupDirective, i2.FormControlName, i3.TextBoxComponent, i3.NumericTextBoxComponent, i4.ItemTemplateDirective, i4.DropDownListComponent, i5.ButtonComponent, i6.AsyncPipe], styles: [".prompt-advanced-settings-dialog[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n\n\n[_nghost-%COMP%] .k-dialog, \n[_nghost-%COMP%] .k-window {\n z-index: 10000 !important;\n}\n\n[_nghost-%COMP%] .k-overlay {\n z-index: 9999 !important;\n}\n\n\n\n.loading-state[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 300px;\n color: #6c757d;\n}\n\n.loading-spinner[_ngcontent-%COMP%] {\n margin-bottom: 1rem;\n}\n\n.loading-spinner[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #2196f3;\n}\n\n.loading-state[_ngcontent-%COMP%] p[_ngcontent-%COMP%] {\n margin-top: 1rem;\n font-size: 1.1rem;\n}\n\n\n\n.advanced-form[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 1.5rem;\n}\n\n.form-section[_ngcontent-%COMP%] {\n margin-bottom: 2rem;\n background: white;\n border-radius: 8px;\n border: 1px solid #e0e0e0;\n overflow: hidden;\n}\n\n.section-title[_ngcontent-%COMP%] {\n margin: 0;\n padding: 1rem 1.5rem;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e0e0;\n color: #495057;\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.section-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n color: #2196f3;\n}\n\n.form-grid[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 1.5rem;\n padding: 1.5rem;\n}\n\n.form-field[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.form-field.full-width[_ngcontent-%COMP%] {\n grid-column: 1 / -1;\n}\n\n\n\nlabel[_ngcontent-%COMP%] {\n font-weight: 600;\n color: #495057;\n font-size: 0.9rem;\n}\n\n.form-control[_ngcontent-%COMP%] {\n width: 100%;\n}\n\n.field-hint[_ngcontent-%COMP%] {\n color: #6c757d;\n font-size: 0.8rem;\n margin-top: 0.25rem;\n line-height: 1.3;\n}\n\n.field-error[_ngcontent-%COMP%] {\n color: #dc3545;\n font-size: 0.8rem;\n margin-top: 0.25rem;\n}\n\n\n\n.form-control.ng-invalid.ng-touched[_ngcontent-%COMP%], \n.error-border[_ngcontent-%COMP%] {\n border-color: #dc3545 !important;\n}\n\n.form-control.ng-valid.ng-touched[_ngcontent-%COMP%] {\n border-color: #28a745;\n}\n\n\n\n.context-behavior-option[_ngcontent-%COMP%] {\n padding: 0.5rem 0;\n}\n\n.option-title[_ngcontent-%COMP%] {\n font-weight: 500;\n color: #333;\n font-size: 0.9rem;\n}\n\n.option-description[_ngcontent-%COMP%] {\n font-size: 0.8rem;\n color: #666;\n margin-top: 0.25rem;\n line-height: 1.3;\n}\n\n\n\n.dialog-footer[_ngcontent-%COMP%] {\n display: flex;\n justify-content: flex-end;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-top: 1px solid #e0e0e0;\n background: #f8f9fa;\n}\n\n.dialog-footer[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n min-width: 120px;\n}\n\n.dialog-footer[_ngcontent-%COMP%] button[themeColor=\"primary\"][_ngcontent-%COMP%] i[_ngcontent-%COMP%] {\n margin-right: 0.5rem;\n}\n\n\n\n\n\n\n.form-section[_ngcontent-%COMP%]:first-child .section-title[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #e3f2fd, #f8f9fa);\n}\n\n\n\n.form-section[_ngcontent-%COMP%]:nth-child(2) .section-title[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #f3e5f5, #f8f9fa);\n}\n\n\n\n.form-section[_ngcontent-%COMP%]:nth-child(3) .section-title[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, #e8f5e8, #f8f9fa);\n}\n\n\n\n@media (max-width: 768px) {\n .form-grid[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n \n .form-field.full-width[_ngcontent-%COMP%] {\n grid-column: 1;\n }\n \n .advanced-form[_ngcontent-%COMP%] {\n padding: 1rem;\n }\n \n .section-title[_ngcontent-%COMP%] {\n padding: 0.75rem 1rem;\n font-size: 1rem;\n }\n \n .dialog-footer[_ngcontent-%COMP%] {\n padding: 1rem;\n flex-direction: column;\n }\n \n .dialog-footer[_ngcontent-%COMP%] button[_ngcontent-%COMP%] {\n width: 100%;\n }\n}\n\n\n\n.error-border[_ngcontent-%COMP%] {\n border: 2px solid #dc3545 !important;\n background-color: #fff5f5;\n}"] }); }
394
394
  }
395
395
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AgentPromptAdvancedSettingsDialogComponent, [{
396
396
  type: Component,
397
- args: [{ selector: 'mj-agent-prompt-advanced-settings-dialog', template: "<!-- Prompt Advanced Settings Dialog -->\n<div class=\"prompt-advanced-settings-dialog\">\n \n <!-- Loading State -->\n @if (isLoading$ | async) {\n <div class=\"loading-state\">\n <div class=\"loading-spinner\">\n <i class=\"fa-solid fa-spinner fa-spin fa-2x\"></i>\n </div>\n <p>Loading prompt settings...</p>\n </div>\n } @else {\n \n <!-- Form Content -->\n <form [formGroup]=\"advancedForm\" class=\"advanced-form\">\n \n <!-- Execution Configuration Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-list-ol\"></i>\n Execution Configuration\n </h3>\n \n <div class=\"form-grid\">\n <!-- Execution Order -->\n <div class=\"form-field\">\n <label for=\"executionOrder\">Execution Order *</label>\n <kendo-numerictextbox \n formControlName=\"executionOrder\"\n [min]=\"0\"\n [format]=\"'0'\"\n [class.error-border]=\"hasExecutionOrderError()\"\n class=\"form-control\">\n </kendo-numerictextbox>\n @if (isFieldInvalid('executionOrder')) {\n <div class=\"field-error\">{{ getFieldError('executionOrder') }}</div>\n }\n @if (hasExecutionOrderError()) {\n <div class=\"field-error\">{{ executionOrderError }}</div>\n }\n <small class=\"field-hint\">Order in which this prompt executes (0 = first). Must be unique among agent prompts.</small>\n </div>\n \n <!-- Purpose -->\n <div class=\"form-field\">\n <label for=\"purpose\">Purpose</label>\n <kendo-textbox \n formControlName=\"purpose\"\n placeholder=\"e.g., Initialize, ProcessData, Summarize\"\n class=\"form-control\">\n </kendo-textbox>\n <small class=\"field-hint\">Functional purpose of this prompt within the agent workflow</small>\n </div>\n \n <!-- Status -->\n <div class=\"form-field\">\n <label for=\"status\">Status *</label>\n <kendo-dropdownlist \n formControlName=\"status\"\n [data]=\"statusOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n class=\"form-control\">\n </kendo-dropdownlist>\n @if (isFieldInvalid('status')) {\n <div class=\"field-error\">{{ getFieldError('status') }}</div>\n }\n <small class=\"field-hint\">Current status of this prompt mapping</small>\n </div>\n </div>\n </div>\n\n <!-- Context Behavior Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-comments\"></i>\n Context Behavior\n </h3>\n \n <div class=\"form-grid\">\n <!-- Context Behavior -->\n <div class=\"form-field full-width\">\n <label for=\"contextBehavior\">Context Behavior *</label>\n <kendo-dropdownlist \n formControlName=\"contextBehavior\"\n [data]=\"contextBehaviorOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n class=\"form-control\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <div class=\"context-behavior-option\">\n <div class=\"option-title\">{{ dataItem.text }}</div>\n <div class=\"option-description\">{{ dataItem.description }}</div>\n </div>\n </ng-template>\n </kendo-dropdownlist>\n @if (isFieldInvalid('contextBehavior')) {\n <div class=\"field-error\">{{ getFieldError('contextBehavior') }}</div>\n }\n <small class=\"field-hint\">{{ getContextBehaviorDescription(advancedForm.get('contextBehavior')?.value) }}</small>\n </div>\n \n <!-- Context Message Count (conditional) -->\n @if (requiresMessageCount()) {\n <div class=\"form-field\">\n <label for=\"contextMessageCount\">Message Count *</label>\n <kendo-numerictextbox \n formControlName=\"contextMessageCount\"\n [min]=\"1\"\n [format]=\"'0'\"\n class=\"form-control\">\n </kendo-numerictextbox>\n @if (isFieldInvalid('contextMessageCount')) {\n <div class=\"field-error\">{{ getFieldError('contextMessageCount') }}</div>\n }\n <small class=\"field-hint\">Number of messages to include for {{ advancedForm.get('contextBehavior')?.value }}</small>\n </div>\n }\n </div>\n </div>\n\n <!-- AI Configuration Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-cog\"></i>\n AI Configuration Override\n </h3>\n \n <div class=\"form-grid\">\n <!-- Configuration Override -->\n <div class=\"form-field full-width\">\n <label for=\"configurationID\">AI Configuration</label>\n <kendo-dropdownlist \n formControlName=\"configurationID\"\n [data]=\"configurations$ | async\"\n textField=\"Name\"\n valueField=\"ID\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"{ Name: 'Use Agent Default', ID: null }\"\n class=\"form-control\">\n </kendo-dropdownlist>\n <small class=\"field-hint\">Override the agent's default AI configuration for this specific prompt</small>\n </div>\n </div>\n </div>\n </form>\n }\n\n <!-- Dialog Footer -->\n <div class=\"dialog-footer\">\n <button kendoButton \n look=\"flat\" \n (click)=\"cancel()\"\n [disabled]=\"(isSaving$ | async) || false\">\n Cancel\n </button>\n \n <button kendoButton \n themeColor=\"primary\" \n (click)=\"save()\"\n [disabled]=\"((isSaving$ | async) || false) || ((isLoading$ | async) || false) || hasExecutionOrderError()\">\n @if (isSaving$ | async) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Saving...\n } @else {\n <i class=\"fa-solid fa-save\"></i>\n Save Settings\n }\n </button>\n </div>\n</div>", styles: [".prompt-advanced-settings-dialog {\n display: flex;\n flex-direction: column;\n height: 100%;\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n/* === Loading State === */\n.loading-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 300px;\n color: #6c757d;\n}\n\n.loading-spinner {\n margin-bottom: 1rem;\n}\n\n.loading-spinner i {\n color: #2196f3;\n}\n\n.loading-state p {\n margin-top: 1rem;\n font-size: 1.1rem;\n}\n\n/* === Form Layout === */\n.advanced-form {\n flex: 1;\n overflow-y: auto;\n padding: 1.5rem;\n}\n\n.form-section {\n margin-bottom: 2rem;\n background: white;\n border-radius: 8px;\n border: 1px solid #e0e0e0;\n overflow: hidden;\n}\n\n.section-title {\n margin: 0;\n padding: 1rem 1.5rem;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e0e0;\n color: #495057;\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.section-title i {\n color: #2196f3;\n}\n\n.form-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 1.5rem;\n padding: 1.5rem;\n}\n\n.form-field {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.form-field.full-width {\n grid-column: 1 / -1;\n}\n\n/* === Form Controls === */\nlabel {\n font-weight: 600;\n color: #495057;\n font-size: 0.9rem;\n}\n\n.form-control {\n width: 100%;\n}\n\n.field-hint {\n color: #6c757d;\n font-size: 0.8rem;\n margin-top: 0.25rem;\n line-height: 1.3;\n}\n\n.field-error {\n color: #dc3545;\n font-size: 0.8rem;\n margin-top: 0.25rem;\n}\n\n/* === Validation States === */\n.form-control.ng-invalid.ng-touched,\n.error-border {\n border-color: #dc3545 !important;\n}\n\n.form-control.ng-valid.ng-touched {\n border-color: #28a745;\n}\n\n/* === Context Behavior Option Template === */\n.context-behavior-option {\n padding: 0.5rem 0;\n}\n\n.option-title {\n font-weight: 500;\n color: #333;\n font-size: 0.9rem;\n}\n\n.option-description {\n font-size: 0.8rem;\n color: #666;\n margin-top: 0.25rem;\n line-height: 1.3;\n}\n\n/* === Dialog Footer === */\n.dialog-footer {\n display: flex;\n justify-content: flex-end;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-top: 1px solid #e0e0e0;\n background: #f8f9fa;\n}\n\n.dialog-footer button {\n min-width: 120px;\n}\n\n.dialog-footer button[themeColor=\"primary\"] i {\n margin-right: 0.5rem;\n}\n\n/* === Section-Specific Styling === */\n\n/* Execution Configuration */\n.form-section:first-child .section-title {\n background: linear-gradient(135deg, #e3f2fd, #f8f9fa);\n}\n\n/* Context Behavior */\n.form-section:nth-child(2) .section-title {\n background: linear-gradient(135deg, #f3e5f5, #f8f9fa);\n}\n\n/* AI Configuration */\n.form-section:nth-child(3) .section-title {\n background: linear-gradient(135deg, #e8f5e8, #f8f9fa);\n}\n\n/* === Responsive Design === */\n@media (max-width: 768px) {\n .form-grid {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n \n .form-field.full-width {\n grid-column: 1;\n }\n \n .advanced-form {\n padding: 1rem;\n }\n \n .section-title {\n padding: 0.75rem 1rem;\n font-size: 1rem;\n }\n \n .dialog-footer {\n padding: 1rem;\n flex-direction: column;\n }\n \n .dialog-footer button {\n width: 100%;\n }\n}\n\n/* === Error Highlighting === */\n.error-border {\n border: 2px solid #dc3545 !important;\n background-color: #fff5f5;\n}"] }]
398
- }], () => [{ type: i1.DialogRef }, { type: i2.FormBuilder }, { type: i0.ChangeDetectorRef }], null); })();
397
+ args: [{ selector: 'mj-agent-prompt-advanced-settings-dialog', template: "<!-- Prompt Advanced Settings Dialog -->\n<div class=\"prompt-advanced-settings-dialog\">\n \n <!-- Loading State -->\n @if (isLoading$ | async) {\n <div class=\"loading-state\">\n <div class=\"loading-spinner\">\n <i class=\"fa-solid fa-spinner fa-spin fa-2x\"></i>\n </div>\n <p>Loading prompt settings...</p>\n </div>\n } @else {\n \n <!-- Form Content -->\n <form [formGroup]=\"advancedForm\" class=\"advanced-form\">\n \n <!-- Execution Configuration Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-list-ol\"></i>\n Execution Configuration\n </h3>\n \n <div class=\"form-grid\">\n <!-- Execution Order -->\n <div class=\"form-field\">\n <label for=\"executionOrder\">Execution Order *</label>\n <kendo-numerictextbox \n formControlName=\"executionOrder\"\n [min]=\"0\"\n [format]=\"'0'\"\n [class.error-border]=\"hasExecutionOrderError()\"\n class=\"form-control\">\n </kendo-numerictextbox>\n @if (isFieldInvalid('executionOrder')) {\n <div class=\"field-error\">{{ getFieldError('executionOrder') }}</div>\n }\n @if (hasExecutionOrderError()) {\n <div class=\"field-error\">{{ executionOrderError }}</div>\n }\n <small class=\"field-hint\">Order in which this prompt executes (0 = first). Must be unique among agent prompts.</small>\n </div>\n \n <!-- Purpose -->\n <div class=\"form-field\">\n <label for=\"purpose\">Purpose</label>\n <kendo-textbox \n formControlName=\"purpose\"\n placeholder=\"e.g., Initialize, ProcessData, Summarize\"\n class=\"form-control\">\n </kendo-textbox>\n <small class=\"field-hint\">Functional purpose of this prompt within the agent workflow</small>\n </div>\n \n <!-- Status -->\n <div class=\"form-field\">\n <label for=\"status\">Status *</label>\n <kendo-dropdownlist \n formControlName=\"status\"\n [data]=\"statusOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n class=\"form-control\">\n </kendo-dropdownlist>\n @if (isFieldInvalid('status')) {\n <div class=\"field-error\">{{ getFieldError('status') }}</div>\n }\n <small class=\"field-hint\">Current status of this prompt mapping</small>\n </div>\n </div>\n </div>\n\n <!-- Context Behavior Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-comments\"></i>\n Context Behavior\n </h3>\n \n <div class=\"form-grid\">\n <!-- Context Behavior -->\n <div class=\"form-field full-width\">\n <label for=\"contextBehavior\">Context Behavior *</label>\n <kendo-dropdownlist \n formControlName=\"contextBehavior\"\n [data]=\"contextBehaviorOptions\"\n textField=\"text\"\n valueField=\"value\"\n [valuePrimitive]=\"true\"\n class=\"form-control\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <div class=\"context-behavior-option\">\n <div class=\"option-title\">{{ dataItem.text }}</div>\n <div class=\"option-description\">{{ dataItem.description }}</div>\n </div>\n </ng-template>\n </kendo-dropdownlist>\n @if (isFieldInvalid('contextBehavior')) {\n <div class=\"field-error\">{{ getFieldError('contextBehavior') }}</div>\n }\n <small class=\"field-hint\">{{ getContextBehaviorDescription(advancedForm.get('contextBehavior')?.value) }}</small>\n </div>\n \n <!-- Context Message Count (conditional) -->\n @if (requiresMessageCount()) {\n <div class=\"form-field\">\n <label for=\"contextMessageCount\">Message Count *</label>\n <kendo-numerictextbox \n formControlName=\"contextMessageCount\"\n [min]=\"1\"\n [format]=\"'0'\"\n class=\"form-control\">\n </kendo-numerictextbox>\n @if (isFieldInvalid('contextMessageCount')) {\n <div class=\"field-error\">{{ getFieldError('contextMessageCount') }}</div>\n }\n <small class=\"field-hint\">Number of messages to include for {{ advancedForm.get('contextBehavior')?.value }}</small>\n </div>\n }\n </div>\n </div>\n\n <!-- AI Configuration Section -->\n <div class=\"form-section\">\n <h3 class=\"section-title\">\n <i class=\"fa-solid fa-cog\"></i>\n AI Configuration Override\n </h3>\n \n <div class=\"form-grid\">\n <!-- Configuration Override -->\n <div class=\"form-field full-width\">\n <label for=\"configurationID\">AI Configuration</label>\n <kendo-dropdownlist \n formControlName=\"configurationID\"\n [data]=\"configurations$ | async\"\n textField=\"Name\"\n valueField=\"ID\"\n [valuePrimitive]=\"true\"\n [defaultItem]=\"{ Name: 'Use Agent Default', ID: null }\"\n class=\"form-control\">\n </kendo-dropdownlist>\n <small class=\"field-hint\">Override the agent's default AI configuration for this specific prompt</small>\n </div>\n </div>\n </div>\n </form>\n }\n\n <!-- Dialog Footer -->\n <div class=\"dialog-footer\">\n <button kendoButton \n look=\"flat\" \n (click)=\"cancel()\"\n [disabled]=\"(isSaving$ | async) || false\">\n Cancel\n </button>\n \n <button kendoButton \n themeColor=\"primary\" \n (click)=\"save()\"\n [disabled]=\"((isSaving$ | async) || false) || ((isLoading$ | async) || false) || hasExecutionOrderError()\">\n @if (isSaving$ | async) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n Saving...\n } @else {\n <i class=\"fa-solid fa-save\"></i>\n Save Settings\n }\n </button>\n </div>\n</div>", styles: [".prompt-advanced-settings-dialog {\n display: flex;\n flex-direction: column;\n height: 100%;\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n}\n\n/* Ensure dialog appears above banner and other elements */\n:host ::ng-deep .k-dialog,\n:host ::ng-deep .k-window {\n z-index: 10000 !important;\n}\n\n:host ::ng-deep .k-overlay {\n z-index: 9999 !important;\n}\n\n/* === Loading State === */\n.loading-state {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 300px;\n color: #6c757d;\n}\n\n.loading-spinner {\n margin-bottom: 1rem;\n}\n\n.loading-spinner i {\n color: #2196f3;\n}\n\n.loading-state p {\n margin-top: 1rem;\n font-size: 1.1rem;\n}\n\n/* === Form Layout === */\n.advanced-form {\n flex: 1;\n overflow-y: auto;\n padding: 1.5rem;\n}\n\n.form-section {\n margin-bottom: 2rem;\n background: white;\n border-radius: 8px;\n border: 1px solid #e0e0e0;\n overflow: hidden;\n}\n\n.section-title {\n margin: 0;\n padding: 1rem 1.5rem;\n background: #f8f9fa;\n border-bottom: 1px solid #e0e0e0;\n color: #495057;\n font-size: 1.1rem;\n font-weight: 600;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.section-title i {\n color: #2196f3;\n}\n\n.form-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 1.5rem;\n padding: 1.5rem;\n}\n\n.form-field {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n}\n\n.form-field.full-width {\n grid-column: 1 / -1;\n}\n\n/* === Form Controls === */\nlabel {\n font-weight: 600;\n color: #495057;\n font-size: 0.9rem;\n}\n\n.form-control {\n width: 100%;\n}\n\n.field-hint {\n color: #6c757d;\n font-size: 0.8rem;\n margin-top: 0.25rem;\n line-height: 1.3;\n}\n\n.field-error {\n color: #dc3545;\n font-size: 0.8rem;\n margin-top: 0.25rem;\n}\n\n/* === Validation States === */\n.form-control.ng-invalid.ng-touched,\n.error-border {\n border-color: #dc3545 !important;\n}\n\n.form-control.ng-valid.ng-touched {\n border-color: #28a745;\n}\n\n/* === Context Behavior Option Template === */\n.context-behavior-option {\n padding: 0.5rem 0;\n}\n\n.option-title {\n font-weight: 500;\n color: #333;\n font-size: 0.9rem;\n}\n\n.option-description {\n font-size: 0.8rem;\n color: #666;\n margin-top: 0.25rem;\n line-height: 1.3;\n}\n\n/* === Dialog Footer === */\n.dialog-footer {\n display: flex;\n justify-content: flex-end;\n gap: 1rem;\n padding: 1rem 1.5rem;\n border-top: 1px solid #e0e0e0;\n background: #f8f9fa;\n}\n\n.dialog-footer button {\n min-width: 120px;\n}\n\n.dialog-footer button[themeColor=\"primary\"] i {\n margin-right: 0.5rem;\n}\n\n/* === Section-Specific Styling === */\n\n/* Execution Configuration */\n.form-section:first-child .section-title {\n background: linear-gradient(135deg, #e3f2fd, #f8f9fa);\n}\n\n/* Context Behavior */\n.form-section:nth-child(2) .section-title {\n background: linear-gradient(135deg, #f3e5f5, #f8f9fa);\n}\n\n/* AI Configuration */\n.form-section:nth-child(3) .section-title {\n background: linear-gradient(135deg, #e8f5e8, #f8f9fa);\n}\n\n/* === Responsive Design === */\n@media (max-width: 768px) {\n .form-grid {\n grid-template-columns: 1fr;\n gap: 1rem;\n padding: 1rem;\n }\n \n .form-field.full-width {\n grid-column: 1;\n }\n \n .advanced-form {\n padding: 1rem;\n }\n \n .section-title {\n padding: 0.75rem 1rem;\n font-size: 1rem;\n }\n \n .dialog-footer {\n padding: 1rem;\n flex-direction: column;\n }\n \n .dialog-footer button {\n width: 100%;\n }\n}\n\n/* === Error Highlighting === */\n.error-border {\n border: 2px solid #dc3545 !important;\n background-color: #fff5f5;\n}"] }]
398
+ }], () => [{ type: i1.WindowRef }, { type: i2.FormBuilder }, { type: i0.ChangeDetectorRef }], null); })();
399
399
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AgentPromptAdvancedSettingsDialogComponent, { className: "AgentPromptAdvancedSettingsDialogComponent", filePath: "src/lib/custom/AIAgents/agent-prompt-advanced-settings-dialog.component.ts", lineNumber: 27 }); })();
400
400
  //# sourceMappingURL=agent-prompt-advanced-settings-dialog.component.js.map
@@ -1,4 +1,4 @@
1
- import { ViewContainerRef, ElementRef, ChangeDetectorRef, AfterViewInit } from '@angular/core';
1
+ import { ViewContainerRef, ElementRef, ChangeDetectorRef, AfterViewInit, OnDestroy } from '@angular/core';
2
2
  import { Router, ActivatedRoute } from '@angular/router';
3
3
  import { ActionEntity, AIAgentEntity, AIAgentLearningCycleEntity, AIAgentNoteEntity, AIAgentRunEntity, AIPromptEntityExtended, AIAgentTypeEntity } from '@memberjunction/core-entities';
4
4
  import { AIAgentFormComponent } from '../../generated/Entities/AIAgent/aiagent.form.component';
@@ -37,7 +37,7 @@ import * as i0 from "@angular/core";
37
37
  * <mj-ai-agent-form [recordId]="agentId"></mj-ai-agent-form>
38
38
  * ```
39
39
  */
40
- export declare class AIAgentFormComponentExtended extends AIAgentFormComponent implements AfterViewInit {
40
+ export declare class AIAgentFormComponentExtended extends AIAgentFormComponent implements AfterViewInit, OnDestroy {
41
41
  protected sharedService: SharedService;
42
42
  private dialogService;
43
43
  private viewContainerRef;
@@ -45,6 +45,14 @@ export declare class AIAgentFormComponentExtended extends AIAgentFormComponent i
45
45
  private testHarnessService;
46
46
  /** The AI Agent entity being edited */
47
47
  record: AIAgentEntity;
48
+ /** Subject for managing component lifecycle and cleaning up subscriptions */
49
+ private destroy$;
50
+ /** Track active timeouts for cleanup */
51
+ private activeTimeouts;
52
+ /** Helper method to create tracked setTimeout calls */
53
+ private setTrackedTimeout;
54
+ /** Remove timeout from tracking array */
55
+ private removeTimeoutFromTracking;
48
56
  /** ViewChild for dynamic custom section container */
49
57
  private _customSectionContainer;
50
58
  set customSectionContainer(container: ViewContainerRef);
@@ -92,6 +100,33 @@ export declare class AIAgentFormComponentExtended extends AIAgentFormComponent i
92
100
  text: string;
93
101
  value: string;
94
102
  }[];
103
+ /** Agent status options for the dropdown */
104
+ statusOptions: {
105
+ text: string;
106
+ value: string;
107
+ }[];
108
+ /** Agent types loaded from the database */
109
+ agentTypes: any[];
110
+ /** Currently selected context compression prompt */
111
+ selectedContextCompressionPrompt: any;
112
+ /**
113
+ * Loads agent types from the database for the dropdown
114
+ * @private
115
+ */
116
+ private loadAgentTypes;
117
+ /**
118
+ * Loads the context compression prompt details for display
119
+ * @private
120
+ */
121
+ private loadContextCompressionPrompt;
122
+ /**
123
+ * Opens the prompt selector dialog for context compression prompt
124
+ */
125
+ openContextCompressionPromptSelector(): Promise<void>;
126
+ /**
127
+ * Clears the selected context compression prompt
128
+ */
129
+ clearContextCompressionPrompt(): void;
95
130
  /** Cache for permission checks to avoid repeated calculations */
96
131
  private _permissionCache;
97
132
  /** Check if user can create AI Agent Actions */
@@ -140,13 +175,15 @@ export declare class AIAgentFormComponentExtended extends AIAgentFormComponent i
140
175
  /** Now using BaseFormComponent's PendingRecords system exclusively */
141
176
  /** Flag to indicate if there are unsaved changes */
142
177
  hasUnsavedChanges: boolean;
178
+ private _changeDetectionCount;
179
+ private static readonly MAX_CHANGE_DETECTIONS;
143
180
  /** Snapshots of original data for reverting UI changes */
144
181
  private originalSnapshots;
145
182
  constructor(elementRef: ElementRef, sharedService: SharedService, router: Router, route: ActivatedRoute, cdr: ChangeDetectorRef, dialogService: DialogService, viewContainerRef: ViewContainerRef, agentManagementService: AIAgentManagementService, testHarnessService: AITestHarnessDialogService);
146
183
  /**
147
184
  * After view initialization, load any custom form section if defined
148
185
  */
149
- ngAfterViewInit(): Promise<void>;
186
+ ngOnInit(): Promise<void>;
150
187
  /**
151
188
  * Loads counts and preview data for all related entities including sub-agents,
152
189
  * prompts, actions, learning cycles, notes, and execution history.
@@ -278,8 +315,15 @@ export declare class AIAgentFormComponentExtended extends AIAgentFormComponent i
278
315
  formatCost(cost: number | null): string;
279
316
  /**
280
317
  * Gets the running time for an execution that hasn't completed yet
318
+ * Uses a cached timestamp to avoid ExpressionChangedAfterItHasBeenCheckedError
281
319
  */
320
+ private _runningTimeCache;
321
+ private _runningTimeUpdater;
282
322
  getRunningTime(startDate: Date): string;
323
+ /**
324
+ * Starts the background timer for updating running times
325
+ */
326
+ private startRunningTimeUpdater;
283
327
  /**
284
328
  * Gets the priority badge color
285
329
  */
@@ -374,6 +418,10 @@ export declare class AIAgentFormComponentExtended extends AIAgentFormComponent i
374
418
  * after handling validation and pending record population
375
419
  */
376
420
  protected InternalSaveRecord(): Promise<boolean>;
421
+ /**
422
+ * Component cleanup - critical for preventing memory leaks
423
+ */
424
+ ngOnDestroy(): void;
377
425
  static ɵfac: i0.ɵɵFactoryDeclaration<AIAgentFormComponentExtended, never>;
378
426
  static ɵcmp: i0.ɵɵComponentDeclaration<AIAgentFormComponentExtended, "mj-ai-agent-form", never, {}, {}, never, never, false, never>;
379
427
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ai-agent-form.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/ai-agent-form.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ai-agent-form.component.d.ts","sourceRoot":"","sources":["../../../../src/lib/custom/AIAgents/ai-agent-form.component.ts"],"names":[],"mappings":"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"}