verben-workflow-ui 0.5.77 → 0.5.78

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 (182) hide show
  1. package/README.md +13 -0
  2. package/esm2022/src/lib/components/actors/actors.component.mjs +5 -5
  3. package/esm2022/src/lib/components/actors/actors.facade.mjs +3 -3
  4. package/esm2022/src/lib/components/actors/actors.form.component.mjs +5 -5
  5. package/esm2022/src/lib/components/actors/actors.module.mjs +4 -4
  6. package/esm2022/src/lib/components/actors/actors.service.mjs +3 -3
  7. package/esm2022/src/lib/components/actors/actors.state.mjs +3 -3
  8. package/esm2022/src/lib/components/designer/components/label-editor.component.mjs +6 -6
  9. package/esm2022/src/lib/components/designer/components/node-selector.component.mjs +4 -4
  10. package/esm2022/src/lib/components/designer/components/swimlane-label.component.mjs +3 -3
  11. package/esm2022/src/lib/components/designer/components/swimlane-popup.component.mjs +3 -3
  12. package/esm2022/src/lib/components/designer/components/wf-canvas.component.mjs +6 -6
  13. package/esm2022/src/lib/components/designer/components/wf-designer.component.mjs +3 -3
  14. package/esm2022/src/lib/components/designer/components/wf-toolbar.component.mjs +6 -6
  15. package/esm2022/src/lib/components/designer/services/canvas-state.service.mjs +3 -3
  16. package/esm2022/src/lib/components/designer/services/connection-segment-interaction.service.mjs +3 -3
  17. package/esm2022/src/lib/components/designer/services/connection.service.mjs +3 -3
  18. package/esm2022/src/lib/components/designer/services/keyboard-handler.service.mjs +3 -3
  19. package/esm2022/src/lib/components/designer/services/label-management.service.mjs +3 -3
  20. package/esm2022/src/lib/components/designer/services/node-finder.service.mjs +3 -3
  21. package/esm2022/src/lib/components/designer/services/node-interaction.service.mjs +3 -3
  22. package/esm2022/src/lib/components/designer/services/node-precondition.service.mjs +3 -3
  23. package/esm2022/src/lib/components/designer/services/node-selection.service.mjs +3 -3
  24. package/esm2022/src/lib/components/designer/services/orthogonal-router.service.mjs +3 -3
  25. package/esm2022/src/lib/components/designer/services/position-update.service.mjs +3 -3
  26. package/esm2022/src/lib/components/designer/services/rendering.service.mjs +3 -3
  27. package/esm2022/src/lib/components/designer/services/swimlane-management.service.mjs +3 -3
  28. package/esm2022/src/lib/components/designer/services/swimlane-stats.service.mjs +3 -3
  29. package/esm2022/src/lib/components/designer/services/viewport.service.mjs +3 -3
  30. package/esm2022/src/lib/components/designer/services/wf-facade.service.mjs +3 -3
  31. package/esm2022/src/lib/components/designer/services/wf-mapper.service.mjs +3 -3
  32. package/esm2022/src/lib/components/designer/services/wf-persistence.service.mjs +3 -3
  33. package/esm2022/src/lib/components/designer/services/wf-state.service.mjs +3 -3
  34. package/esm2022/src/lib/components/expiration/expiration.component.mjs +3 -3
  35. package/esm2022/src/lib/components/expiration/expiration.module.mjs +4 -4
  36. package/esm2022/src/lib/components/file-render/file-render.component.mjs +5 -5
  37. package/esm2022/src/lib/components/file-render/file-render.module.mjs +4 -4
  38. package/esm2022/src/lib/components/file-upload/file-upload.component.mjs +5 -5
  39. package/esm2022/src/lib/components/file-upload/file-upload.module.mjs +4 -4
  40. package/esm2022/src/lib/components/flowable-status/flowable-status.component.mjs +5 -5
  41. package/esm2022/src/lib/components/flowable-status/flowable-status.facade.mjs +3 -3
  42. package/esm2022/src/lib/components/flowable-status/flowable-status.form.component.mjs +5 -5
  43. package/esm2022/src/lib/components/flowable-status/flowable-status.module.mjs +4 -4
  44. package/esm2022/src/lib/components/flowable-status/flowable-status.service.mjs +3 -3
  45. package/esm2022/src/lib/components/flowable-status/flowable-status.state.mjs +3 -3
  46. package/esm2022/src/lib/components/form-control/form-control.component.mjs +5 -5
  47. package/esm2022/src/lib/components/form-control/form-control.module.mjs +4 -4
  48. package/esm2022/src/lib/components/form-group/base-table-style.mjs +6 -6
  49. package/esm2022/src/lib/components/form-group/form-fields/form-fields.component.mjs +5 -5
  50. package/esm2022/src/lib/components/form-group/form-fields/form-fields.module.mjs +4 -4
  51. package/esm2022/src/lib/components/form-group/form-fields/form-fields.service.mjs +3 -3
  52. package/esm2022/src/lib/components/form-group/form-group.component.mjs +5 -5
  53. package/esm2022/src/lib/components/form-group/form-group.module.mjs +4 -4
  54. package/esm2022/src/lib/components/form-group/form-group.service.mjs +3 -3
  55. package/esm2022/src/lib/components/form-response/form-response.component.mjs +5 -5
  56. package/esm2022/src/lib/components/form-response/form-response.module.mjs +4 -4
  57. package/esm2022/src/lib/components/form-response/form-response.service.mjs +3 -3
  58. package/esm2022/src/lib/components/form-timer/form-timer.component.mjs +5 -5
  59. package/esm2022/src/lib/components/form-timer/form-timer.module.mjs +4 -4
  60. package/esm2022/src/lib/components/forms/base-table-style.mjs +6 -6
  61. package/esm2022/src/lib/components/forms/forms.component.mjs +5 -5
  62. package/esm2022/src/lib/components/forms/forms.module.mjs +4 -4
  63. package/esm2022/src/lib/components/forms/forms.service.mjs +3 -3
  64. package/esm2022/src/lib/components/journal/journal.component.mjs +3 -3
  65. package/esm2022/src/lib/components/journal/journal.module.mjs +4 -4
  66. package/esm2022/src/lib/components/my-queue/my-queue.component.mjs +5 -5
  67. package/esm2022/src/lib/components/my-queue/my-queue.facade.mjs +3 -3
  68. package/esm2022/src/lib/components/my-queue/my-queue.module.mjs +4 -4
  69. package/esm2022/src/lib/components/my-queue/my-queue.service.mjs +3 -3
  70. package/esm2022/src/lib/components/my-queue/my-queue.state.mjs +3 -3
  71. package/esm2022/src/lib/components/my-queue/tasks.form.component.mjs +5 -5
  72. package/esm2022/src/lib/components/operation-popup/operation-popup.component.mjs +5 -5
  73. package/esm2022/src/lib/components/operation-popup/operation-popup.facade.mjs +3 -3
  74. package/esm2022/src/lib/components/operation-popup/operation-popup.service.mjs +3 -3
  75. package/esm2022/src/lib/components/operation-popup/operation-popup.state.mjs +3 -3
  76. package/esm2022/src/lib/components/stage-details/stage-details.component.mjs +5 -5
  77. package/esm2022/src/lib/components/stage-details/stage-details.module.mjs +4 -4
  78. package/esm2022/src/lib/components/task-form/task-form.component.mjs +5 -5
  79. package/esm2022/src/lib/components/task-form/task-form.module.mjs +4 -4
  80. package/esm2022/src/lib/components/task-history/task-history.component.mjs +5 -5
  81. package/esm2022/src/lib/components/task-history/task-history.module.mjs +4 -4
  82. package/esm2022/src/lib/components/task-history/task-history.service.mjs +3 -3
  83. package/esm2022/src/lib/components/task-notification/base-table-style.mjs +6 -6
  84. package/esm2022/src/lib/components/task-notification/task-notification.component.mjs +5 -5
  85. package/esm2022/src/lib/components/task-notification/task-notification.module.mjs +4 -4
  86. package/esm2022/src/lib/components/task-notification/task-notification.service.mjs +3 -3
  87. package/esm2022/src/lib/components/tasks/tasks.component.mjs +5 -5
  88. package/esm2022/src/lib/components/tasks/tasks.facade.mjs +3 -3
  89. package/esm2022/src/lib/components/tasks/tasks.form.component.mjs +5 -5
  90. package/esm2022/src/lib/components/tasks/tasks.module.mjs +4 -4
  91. package/esm2022/src/lib/components/tasks/tasks.service.mjs +3 -3
  92. package/esm2022/src/lib/components/tasks/tasks.state.mjs +3 -3
  93. package/esm2022/src/lib/components/wf/wf.component.mjs +3 -3
  94. package/esm2022/src/lib/components/wf/wf.module.mjs +4 -4
  95. package/esm2022/src/lib/components/wf/wf.service.mjs +3 -3
  96. package/esm2022/src/lib/components/workflow/table-style.mjs +6 -6
  97. package/esm2022/src/lib/components/workflow/workflow.component.mjs +8 -8
  98. package/esm2022/src/lib/components/workflow/workflow.module.mjs +4 -4
  99. package/esm2022/src/lib/components/workflow-designer/action-dialog/action-dialog.component.mjs +5 -5
  100. package/esm2022/src/lib/components/workflow-designer/actor-tags-dialog/actor-tags-dialog.component.mjs +5 -5
  101. package/esm2022/src/lib/components/workflow-designer/conditions-popup/conditions-popup.component.mjs +3 -3
  102. package/esm2022/src/lib/components/workflow-designer/decision-popup/decision-popup.component.mjs +4 -4
  103. package/esm2022/src/lib/components/workflow-designer/designer-canvas/designer-canvas.component.mjs +3 -3
  104. package/esm2022/src/lib/components/workflow-designer/designer-toolbar/designer-toolbar.component.mjs +5 -5
  105. package/esm2022/src/lib/components/workflow-designer/escalation-dialog/escalation-dialog.component.mjs +5 -5
  106. package/esm2022/src/lib/components/workflow-designer/services/connection.service.mjs +3 -3
  107. package/esm2022/src/lib/components/workflow-designer/services/node-management.service.mjs +3 -3
  108. package/esm2022/src/lib/components/workflow-designer/services/popup.service.mjs +3 -3
  109. package/esm2022/src/lib/components/workflow-designer/services/swimlane.service.mjs +3 -3
  110. package/esm2022/src/lib/components/workflow-designer/services/transformer.service.mjs +3 -3
  111. package/esm2022/src/lib/components/workflow-designer/stage-dialog/stage-dialog.component.mjs +5 -5
  112. package/esm2022/src/lib/components/workflow-designer/stage-node/stage-node.component.mjs +5 -5
  113. package/esm2022/src/lib/components/workflow-designer/swimlane-dialog/swimlane-dialog.component.mjs +5 -5
  114. package/esm2022/src/lib/components/workflow-designer/workflow-data.service.mjs +3 -3
  115. package/esm2022/src/lib/components/workflow-designer/workflow-designer.component.mjs +4 -4
  116. package/esm2022/src/lib/components/workflow-designer/workflow-designer.module.mjs +4 -4
  117. package/esm2022/src/lib/components/workflow-designer/workflow-designer.state.mjs +3 -3
  118. package/esm2022/src/lib/components/workflows/workflow-form/workflow-form.component.mjs +5 -5
  119. package/esm2022/src/lib/components/workflows/workflows.component.mjs +5 -5
  120. package/esm2022/src/lib/components/workflows/workflows.facade.mjs +3 -3
  121. package/esm2022/src/lib/components/workflows/workflows.module.mjs +4 -4
  122. package/esm2022/src/lib/components/workflows/workflows.service.mjs +3 -3
  123. package/esm2022/src/lib/components/workflows/workflows.state.mjs +3 -3
  124. package/esm2022/src/lib/pipes/async-label.pipe.mjs +3 -3
  125. package/esm2022/src/lib/services/environment.service.mjs +3 -3
  126. package/esm2022/src/lib/services/http-web-request.service.mjs +3 -3
  127. package/esm2022/src/lib/services/label.service.mjs +3 -3
  128. package/esm2022/src/lib/services/util.service.mjs +3 -3
  129. package/esm2022/src/lib/shared/base-table-style.mjs +6 -6
  130. package/esm2022/src/lib/shared/components/base-data-view.component.mjs +3 -3
  131. package/esm2022/src/lib/shared/shared.module.mjs +4 -4
  132. package/fesm2022/verben-workflow-ui-src-lib-components-actors.mjs +21 -21
  133. package/fesm2022/verben-workflow-ui-src-lib-components-actors.mjs.map +1 -1
  134. package/fesm2022/verben-workflow-ui-src-lib-components-designer.mjs +85 -85
  135. package/fesm2022/verben-workflow-ui-src-lib-components-designer.mjs.map +1 -1
  136. package/fesm2022/verben-workflow-ui-src-lib-components-expiration.mjs +7 -7
  137. package/fesm2022/verben-workflow-ui-src-lib-components-expiration.mjs.map +1 -1
  138. package/fesm2022/verben-workflow-ui-src-lib-components-file-render.mjs +8 -8
  139. package/fesm2022/verben-workflow-ui-src-lib-components-file-render.mjs.map +1 -1
  140. package/fesm2022/verben-workflow-ui-src-lib-components-file-upload.mjs +8 -8
  141. package/fesm2022/verben-workflow-ui-src-lib-components-file-upload.mjs.map +1 -1
  142. package/fesm2022/verben-workflow-ui-src-lib-components-flowable-status.mjs +21 -21
  143. package/fesm2022/verben-workflow-ui-src-lib-components-flowable-status.mjs.map +1 -1
  144. package/fesm2022/verben-workflow-ui-src-lib-components-form-control.mjs +8 -8
  145. package/fesm2022/verben-workflow-ui-src-lib-components-form-control.mjs.map +1 -1
  146. package/fesm2022/verben-workflow-ui-src-lib-components-form-group.mjs +27 -27
  147. package/fesm2022/verben-workflow-ui-src-lib-components-form-group.mjs.map +1 -1
  148. package/fesm2022/verben-workflow-ui-src-lib-components-form-response.mjs +11 -11
  149. package/fesm2022/verben-workflow-ui-src-lib-components-form-response.mjs.map +1 -1
  150. package/fesm2022/verben-workflow-ui-src-lib-components-form-timer.mjs +8 -8
  151. package/fesm2022/verben-workflow-ui-src-lib-components-form-timer.mjs.map +1 -1
  152. package/fesm2022/verben-workflow-ui-src-lib-components-forms.mjs +16 -16
  153. package/fesm2022/verben-workflow-ui-src-lib-components-forms.mjs.map +1 -1
  154. package/fesm2022/verben-workflow-ui-src-lib-components-journal.mjs +7 -7
  155. package/fesm2022/verben-workflow-ui-src-lib-components-my-queue.mjs +21 -21
  156. package/fesm2022/verben-workflow-ui-src-lib-components-my-queue.mjs.map +1 -1
  157. package/fesm2022/verben-workflow-ui-src-lib-components-operation-popup.mjs +13 -13
  158. package/fesm2022/verben-workflow-ui-src-lib-components-operation-popup.mjs.map +1 -1
  159. package/fesm2022/verben-workflow-ui-src-lib-components-stage-details.mjs +8 -8
  160. package/fesm2022/verben-workflow-ui-src-lib-components-stage-details.mjs.map +1 -1
  161. package/fesm2022/verben-workflow-ui-src-lib-components-task-form.mjs +8 -8
  162. package/fesm2022/verben-workflow-ui-src-lib-components-task-form.mjs.map +1 -1
  163. package/fesm2022/verben-workflow-ui-src-lib-components-task-history.mjs +11 -11
  164. package/fesm2022/verben-workflow-ui-src-lib-components-task-history.mjs.map +1 -1
  165. package/fesm2022/verben-workflow-ui-src-lib-components-task-notification.mjs +16 -16
  166. package/fesm2022/verben-workflow-ui-src-lib-components-task-notification.mjs.map +1 -1
  167. package/fesm2022/verben-workflow-ui-src-lib-components-tasks.mjs +21 -21
  168. package/fesm2022/verben-workflow-ui-src-lib-components-tasks.mjs.map +1 -1
  169. package/fesm2022/verben-workflow-ui-src-lib-components-wf.mjs +10 -10
  170. package/fesm2022/verben-workflow-ui-src-lib-components-workflow-designer.mjs +67 -67
  171. package/fesm2022/verben-workflow-ui-src-lib-components-workflow-designer.mjs.map +1 -1
  172. package/fesm2022/verben-workflow-ui-src-lib-components-workflow.mjs +16 -16
  173. package/fesm2022/verben-workflow-ui-src-lib-components-workflow.mjs.map +1 -1
  174. package/fesm2022/verben-workflow-ui-src-lib-components-workflows.mjs +21 -21
  175. package/fesm2022/verben-workflow-ui-src-lib-components-workflows.mjs.map +1 -1
  176. package/fesm2022/verben-workflow-ui-src-lib-pipes.mjs +3 -3
  177. package/fesm2022/verben-workflow-ui-src-lib-services.mjs +12 -12
  178. package/fesm2022/verben-workflow-ui-src-lib-shared.mjs +12 -12
  179. package/fesm2022/verben-workflow-ui-src-lib-shared.mjs.map +1 -1
  180. package/package.json +36 -36
  181. package/src/lib/components/workflow/workflow.component.d.ts +1 -1
  182. package/styles/styles.css +19 -1436
@@ -74,10 +74,10 @@ class OperationPopupService {
74
74
  const url = `FillForm/${taskCode}`;
75
75
  return this.httpService.post(url, form);
76
76
  }
77
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationPopupService, deps: [{ token: i1.HttpWebRequestService }], target: i0.ɵɵFactoryTarget.Injectable });
78
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationPopupService });
77
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OperationPopupService, deps: [{ token: i1.HttpWebRequestService }], target: i0.ɵɵFactoryTarget.Injectable });
78
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OperationPopupService });
79
79
  }
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationPopupService, decorators: [{
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OperationPopupService, decorators: [{
81
81
  type: Injectable
82
82
  }], ctorParameters: () => [{ type: i1.HttpWebRequestService }] });
83
83
 
@@ -115,10 +115,10 @@ class OperationPopupState {
115
115
  this.nextActors.next([]);
116
116
  this.taskForms.next([]);
117
117
  }
118
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationPopupState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
119
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationPopupState });
118
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OperationPopupState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
119
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OperationPopupState });
120
120
  }
121
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationPopupState, decorators: [{
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OperationPopupState, decorators: [{
122
122
  type: Injectable
123
123
  }] });
124
124
 
@@ -461,10 +461,10 @@ class OperationPopupFacade {
461
461
  this.state.setIsUpdating(false);
462
462
  }
463
463
  }
464
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationPopupFacade, deps: [{ token: OperationPopupService }, { token: OperationPopupState }, { token: i1.UtilService }], target: i0.ɵɵFactoryTarget.Injectable });
465
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationPopupFacade });
464
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OperationPopupFacade, deps: [{ token: OperationPopupService }, { token: OperationPopupState }, { token: i1.UtilService }], target: i0.ɵɵFactoryTarget.Injectable });
465
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OperationPopupFacade });
466
466
  }
467
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationPopupFacade, decorators: [{
467
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OperationPopupFacade, decorators: [{
468
468
  type: Injectable
469
469
  }], ctorParameters: () => [{ type: OperationPopupService }, { type: OperationPopupState }, { type: i1.UtilService }] });
470
470
 
@@ -788,12 +788,12 @@ class OperationPopupComponent {
788
788
  };
789
789
  return labels[this.activeActionType || 'passon'] || 'Submit';
790
790
  }
791
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationPopupComponent, deps: [{ token: OperationPopupFacade }], target: i0.ɵɵFactoryTarget.Component });
792
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OperationPopupComponent, isStandalone: true, selector: "lib-operation-popup", inputs: { user: "user", task: "task", allowedActions: "allowedActions" }, outputs: { actionComplete: "actionComplete" }, providers: [OperationPopupService, OperationPopupState, OperationPopupFacade], ngImport: i0, template: "<verben-pop-Up [customStyles]=\"{ 'z-index': '99' }\" [enableMouseLeave]=\"false\" [customStyles]=\"{\n border: '1px solid #d4a10780',\n borderRadius: '5px',\n backgroundColor: 'white'\n }\" [(dropdownOpen)]=\"isPopupOpen\">\n\n <!-- Trigger (projected content from parent) -->\n <div dropdown-trigger>\n <ng-content select=\"[trigger]\"></ng-content>\n </div>\n\n <!-- Popup content -->\n <div class=\"bg-white rounded-sm\" dropdown-content>\n <!-- Step 1: Action Selection -->\n <div *ngIf=\"currentStep === 'action-selection'\">\n <div *ngFor=\"let action of filteredActions\" (click)=\"onActionSelect(action.value)\"\n class=\"cursor-pointer py-2 px-3 hover:bg-primary\">\n {{ action.label }}\n </div>\n </div>\n\n <!-- Step 2: Action Form -->\n <div *ngIf=\"currentStep === 'action-form'\" style=\"width: 16rem\">\n <div class=\"flex items-center gap-4 justify-between h-12 px-2 pt-4\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n (click)=\"currentStep = 'action-selection'; activeActionType = null\">\n <g opacity=\"0.6\">\n <path\n d=\"M6.74649 8.00338C6.91483 8.1347 7.0252 8.20455 7.11531 8.29396C7.98846 9.16222 8.85742 10.0347 9.72917 10.905C9.87167 11.0475 9.99391 11.1921 9.99321 11.4129C9.99251 11.6462 9.89472 11.8152 9.69564 11.9256C9.49307 12.038 9.2926 12.0206 9.10469 11.8899C9.03833 11.8438 8.98175 11.7845 8.92378 11.7272C7.85574 10.6592 6.79678 9.58203 5.71477 8.52867C5.3711 8.19407 5.38437 7.79173 5.70779 7.47599C6.7884 6.42123 7.84875 5.34551 8.91539 4.27607C9.11377 4.07769 9.32054 3.92262 9.623 4.04137C9.97924 4.18107 10.112 4.58901 9.89472 4.90335C9.82976 4.99765 9.74174 5.07728 9.66002 5.1597C8.80642 6.01469 7.95283 6.86968 7.09645 7.72257C7.01472 7.8043 6.91553 7.86856 6.74579 8.00408L6.74649 8.00338Z\"\n fill=\"black\" />\n </g>\n </svg>\n\n <h3 class=\"text-sm font-medium\">{{ submitButtonLabel }}</h3>\n </div>\n\n <div class=\"grid gap-2 max-h-96 overflow-y-auto p-2\">\n <!-- Action Dropdown (for PassOn, PassBack, SkipTo) -->\n <verben-drop-down *ngIf=\"showActionDropdown\" label=\"Action\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Action\"\n [options]=\"nextActions\" id=\"actions\" optionLabel=\"Name\" [ngModel]=\"selectedAction | async\"\n (ngModelChange)=\"selectedAction.next($event)\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Stage Dropdown (for PickTask, ReleaseTask) -->\n <verben-drop-down *ngIf=\"showStageDropdown\" label=\"Stages\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Stage\"\n [options]=\"task?.FullStages || []\" id=\"stages\" optionLabel=\"Name\" optionValue=\"Code\"\n [(ngModel)]=\"selectedStageCode\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Actor Dropdown -->\n <verben-drop-down *ngIf=\"showActorDropdown\" label=\"Actors\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Actor\"\n [options]=\"nextActors\" id=\"actors\" optionLabel=\"Name\" optionValue=\"Identifier\"\n [(ngModel)]=\"recipientCode\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Comment Textarea -->\n <textarea [(ngModel)]=\"comment\" placeholder=\"Enter Comment\"\n class=\"w-full p-1 text-xs border border-primary rounded-md\" style=\"height: 8rem\" [cols]=\"8\">\n </textarea>\n\n <!-- Submit Button -->\n <verbena-button [disable]=\"!canSubmit\" [text]=\"submitButtonLabel\" (click)=\"handleActionSubmit()\"\n class=\"text-xs w-full\" bgColor=\"#FFE681\" textColor=\"#404040\" borderRadius=\"10px\" fontSize=\"14px\"\n pd=\"10px 20px\" width=\"100%\" height=\"32px\">\n {{ submitButtonLabel }}\n </verbena-button>\n </div>\n </div>\n </div>\n</verben-pop-Up>\n\n<!-- Form Dialog for PassOn when form is required -->\n<verben-dialogue [showCloseIcon]=\"true\" [dismissOutsideClick]=\"true\" [closeOnEscape]=\"true\" [mode]=\"'drawer'\"\n [padding]=\"'0px'\" [drawerWidth]=\"'400px'\" [disableFooter]=\"false\" [isVisible]=\"isFormModalVisible\"\n [modalData]=\"stageForm\" [headerTemplate]=\"headerTemplate\" [bodyTemplate]=\"bodyTemplate\" [showCloseIcon]=\"false\" [style]=\"{ 'z-index': '99' }\">\n</verben-dialogue>\n<ng-template #headerTemplate>\n <div class=\"bg-[#FFE681] px-6 py-4 flex justify-between items-center\">\n <h1>Form</h1>\n <verben-svg class=\"cursor-pointer\" [icon]=\"'close-circle'\" (click)=\"isFormModalVisible = false\" [width]=\"15\"\n [height]=\"15\" [stroke]=\"'#fff'\"></verben-svg>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div *ngIf=\"stageForm?.Entities?.[active]; else emptyState\" class=\"mt-4\">\n <form-control [dataType]=\"dataType\"\n [formProperties]=\"stageForm?.Entities?.[active]?.Properties ?? []\"></form-control>\n\n <div class=\"flex gap-3 justify-end\">\n <verbena-button class=\"verben-primary-button\" (click)=\"submitForm()\"\n [disable]=\"!areRequiredPropertiesFilled()\" text=\"Save\"></verbena-button>\n </div>\n </div>\n\n <!-- Empty state template -->\n <ng-template #emptyState>\n <p class=\"mt-4 p-4 text-gray-600 text-center\">\n No entries available for the selected form group.\n </p>\n </ng-template>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: VerbenPopUpModule }, { kind: "component", type: i4.VerbenPopUpComponent, selector: "verben-pop-Up", inputs: ["dropdownOpen", "dropdownWidth", "color", "customStyles", "popUpClass", "border", "borderRadius", "enableMouseLeave", "cdkPosition"], outputs: ["dropdownOpenChange", "close"] }, { kind: "ngmodule", type: DropDownModule }, { kind: "component", type: i4.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "ngmodule", type: VerbenaButtonModule }, { kind: "component", type: i4.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "ngmodule", type: VerbenDialogueModule }, { kind: "component", type: i4.VerbenDialogueComponent, selector: "verben-dialogue", inputs: ["dialogueWidth", "headerTemplate", "bodyTemplate", "footerTemplate", "showCloseIcon", "dismissOutsideClick", "closeOnEscape", "isVisible", "size", "backdropColor", "customClass", "disableFooter", "margin", "padding", "borderRadius", "dialogueBgColor", "width", "closeIconClass", "boxShadow", "enableTransition", "modalData", "mode", "position", "drawerWidth"], outputs: ["openModal", "closeModal"] }, { kind: "ngmodule", type: FormControlerModule }, { kind: "component", type: i5.FormControlComponent, selector: "form-control", inputs: ["dataType", "value", "boolInputType", "formProperties", "disabled"] }, { kind: "ngmodule", type: FormTimerModule }, { kind: "ngmodule", type: SvgModule }, { kind: "component", type: i4.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }] });
791
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OperationPopupComponent, deps: [{ token: OperationPopupFacade }], target: i0.ɵɵFactoryTarget.Component });
792
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: OperationPopupComponent, isStandalone: true, selector: "lib-operation-popup", inputs: { user: "user", task: "task", allowedActions: "allowedActions" }, outputs: { actionComplete: "actionComplete" }, providers: [OperationPopupService, OperationPopupState, OperationPopupFacade], ngImport: i0, template: "<verben-pop-Up [customStyles]=\"{ 'z-index': '99' }\" [enableMouseLeave]=\"false\" [customStyles]=\"{\n border: '1px solid #d4a10780',\n borderRadius: '5px',\n backgroundColor: 'white'\n }\" [(dropdownOpen)]=\"isPopupOpen\">\n\n <!-- Trigger (projected content from parent) -->\n <div dropdown-trigger>\n <ng-content select=\"[trigger]\"></ng-content>\n </div>\n\n <!-- Popup content -->\n <div class=\"bg-white rounded-sm\" dropdown-content>\n <!-- Step 1: Action Selection -->\n <div *ngIf=\"currentStep === 'action-selection'\">\n <div *ngFor=\"let action of filteredActions\" (click)=\"onActionSelect(action.value)\"\n class=\"cursor-pointer py-2 px-3 hover:bg-primary\">\n {{ action.label }}\n </div>\n </div>\n\n <!-- Step 2: Action Form -->\n <div *ngIf=\"currentStep === 'action-form'\" style=\"width: 16rem\">\n <div class=\"flex items-center gap-4 justify-between h-12 px-2 pt-4\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n (click)=\"currentStep = 'action-selection'; activeActionType = null\">\n <g opacity=\"0.6\">\n <path\n d=\"M6.74649 8.00338C6.91483 8.1347 7.0252 8.20455 7.11531 8.29396C7.98846 9.16222 8.85742 10.0347 9.72917 10.905C9.87167 11.0475 9.99391 11.1921 9.99321 11.4129C9.99251 11.6462 9.89472 11.8152 9.69564 11.9256C9.49307 12.038 9.2926 12.0206 9.10469 11.8899C9.03833 11.8438 8.98175 11.7845 8.92378 11.7272C7.85574 10.6592 6.79678 9.58203 5.71477 8.52867C5.3711 8.19407 5.38437 7.79173 5.70779 7.47599C6.7884 6.42123 7.84875 5.34551 8.91539 4.27607C9.11377 4.07769 9.32054 3.92262 9.623 4.04137C9.97924 4.18107 10.112 4.58901 9.89472 4.90335C9.82976 4.99765 9.74174 5.07728 9.66002 5.1597C8.80642 6.01469 7.95283 6.86968 7.09645 7.72257C7.01472 7.8043 6.91553 7.86856 6.74579 8.00408L6.74649 8.00338Z\"\n fill=\"black\" />\n </g>\n </svg>\n\n <h3 class=\"text-sm font-medium\">{{ submitButtonLabel }}</h3>\n </div>\n\n <div class=\"grid gap-2 max-h-96 overflow-y-auto p-2\">\n <!-- Action Dropdown (for PassOn, PassBack, SkipTo) -->\n <verben-drop-down *ngIf=\"showActionDropdown\" label=\"Action\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Action\"\n [options]=\"nextActions\" id=\"actions\" optionLabel=\"Name\" [ngModel]=\"selectedAction | async\"\n (ngModelChange)=\"selectedAction.next($event)\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Stage Dropdown (for PickTask, ReleaseTask) -->\n <verben-drop-down *ngIf=\"showStageDropdown\" label=\"Stages\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Stage\"\n [options]=\"task?.FullStages || []\" id=\"stages\" optionLabel=\"Name\" optionValue=\"Code\"\n [(ngModel)]=\"selectedStageCode\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Actor Dropdown -->\n <verben-drop-down *ngIf=\"showActorDropdown\" label=\"Actors\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Actor\"\n [options]=\"nextActors\" id=\"actors\" optionLabel=\"Name\" optionValue=\"Identifier\"\n [(ngModel)]=\"recipientCode\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Comment Textarea -->\n <textarea [(ngModel)]=\"comment\" placeholder=\"Enter Comment\"\n class=\"w-full p-1 text-xs border border-primary rounded-md\" style=\"height: 8rem\" [cols]=\"8\">\n </textarea>\n\n <!-- Submit Button -->\n <verbena-button [disable]=\"!canSubmit\" [text]=\"submitButtonLabel\" (click)=\"handleActionSubmit()\"\n class=\"text-xs w-full\" bgColor=\"var(--vbn-color-primary)\" textColor=\"var(--vbn-color-on-primary)\" borderRadius=\"10px\" fontSize=\"14px\"\n pd=\"10px 20px\" width=\"100%\" height=\"32px\">\n {{ submitButtonLabel }}\n </verbena-button>\n </div>\n </div>\n </div>\n</verben-pop-Up>\n\n<!-- Form Dialog for PassOn when form is required -->\n<verben-dialogue [showCloseIcon]=\"true\" [dismissOutsideClick]=\"true\" [closeOnEscape]=\"true\" [mode]=\"'drawer'\"\n [padding]=\"'0px'\" [drawerWidth]=\"'400px'\" [disableFooter]=\"false\" [isVisible]=\"isFormModalVisible\"\n [modalData]=\"stageForm\" [headerTemplate]=\"headerTemplate\" [bodyTemplate]=\"bodyTemplate\" [showCloseIcon]=\"false\" [style]=\"{ 'z-index': '99' }\">\n</verben-dialogue>\n<ng-template #headerTemplate>\n <div class=\"bg-[var(--vbn-color-primary)] px-6 py-4 flex justify-between items-center\">\n <h1>Form</h1>\n <verben-svg class=\"cursor-pointer\" [icon]=\"'close-circle'\" (click)=\"isFormModalVisible = false\" [width]=\"15\"\n [height]=\"15\" [stroke]=\"'var(--vbn-color-surface)'\"></verben-svg>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div *ngIf=\"stageForm?.Entities?.[active]; else emptyState\" class=\"mt-4\">\n <form-control [dataType]=\"dataType\"\n [formProperties]=\"stageForm?.Entities?.[active]?.Properties ?? []\"></form-control>\n\n <div class=\"flex gap-3 justify-end\">\n <verbena-button class=\"verben-primary-button\" (click)=\"submitForm()\"\n [disable]=\"!areRequiredPropertiesFilled()\" text=\"Save\"></verbena-button>\n </div>\n </div>\n\n <!-- Empty state template -->\n <ng-template #emptyState>\n <p class=\"mt-4 p-4 text-gray-600 text-center\">\n No entries available for the selected form group.\n </p>\n </ng-template>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: VerbenPopUpModule }, { kind: "component", type: i4.VerbenPopUpComponent, selector: "verben-pop-Up", inputs: ["dropdownOpen", "dropdownWidth", "color", "customStyles", "popUpClass", "border", "borderRadius", "enableMouseLeave", "cdkPosition"], outputs: ["dropdownOpenChange", "close"] }, { kind: "ngmodule", type: DropDownModule }, { kind: "component", type: i4.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "overlayWidth", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "refPageSize", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "ngmodule", type: VerbenaButtonModule }, { kind: "component", type: i4.VerbenaButtonComponent, selector: "verbena-button", inputs: ["type", "text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "ngmodule", type: VerbenDialogueModule }, { kind: "component", type: i4.VerbenDialogueComponent, selector: "verben-dialogue", inputs: ["dialogueWidth", "headerTemplate", "bodyTemplate", "footerTemplate", "showCloseIcon", "dismissOutsideClick", "closeOnEscape", "isVisible", "size", "backdropColor", "customClass", "disableFooter", "margin", "padding", "borderRadius", "dialogueBgColor", "width", "closeIconClass", "boxShadow", "enableTransition", "modalData", "mode", "position", "drawerWidth"], outputs: ["openModal", "closeModal"] }, { kind: "ngmodule", type: FormControlerModule }, { kind: "component", type: i5.FormControlComponent, selector: "form-control", inputs: ["dataType", "value", "boolInputType", "formProperties", "disabled"] }, { kind: "ngmodule", type: FormTimerModule }, { kind: "ngmodule", type: SvgModule }, { kind: "component", type: i4.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }] });
793
793
  }
794
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OperationPopupComponent, decorators: [{
794
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: OperationPopupComponent, decorators: [{
795
795
  type: Component,
796
- args: [{ selector: 'lib-operation-popup', standalone: true, imports: [CommonModule, FormsModule, VerbenPopUpModule, DropDownModule, VerbenaButtonModule, VerbenDialogueModule, FormControlerModule, FormTimerModule, SvgModule], providers: [OperationPopupService, OperationPopupState, OperationPopupFacade], template: "<verben-pop-Up [customStyles]=\"{ 'z-index': '99' }\" [enableMouseLeave]=\"false\" [customStyles]=\"{\n border: '1px solid #d4a10780',\n borderRadius: '5px',\n backgroundColor: 'white'\n }\" [(dropdownOpen)]=\"isPopupOpen\">\n\n <!-- Trigger (projected content from parent) -->\n <div dropdown-trigger>\n <ng-content select=\"[trigger]\"></ng-content>\n </div>\n\n <!-- Popup content -->\n <div class=\"bg-white rounded-sm\" dropdown-content>\n <!-- Step 1: Action Selection -->\n <div *ngIf=\"currentStep === 'action-selection'\">\n <div *ngFor=\"let action of filteredActions\" (click)=\"onActionSelect(action.value)\"\n class=\"cursor-pointer py-2 px-3 hover:bg-primary\">\n {{ action.label }}\n </div>\n </div>\n\n <!-- Step 2: Action Form -->\n <div *ngIf=\"currentStep === 'action-form'\" style=\"width: 16rem\">\n <div class=\"flex items-center gap-4 justify-between h-12 px-2 pt-4\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n (click)=\"currentStep = 'action-selection'; activeActionType = null\">\n <g opacity=\"0.6\">\n <path\n d=\"M6.74649 8.00338C6.91483 8.1347 7.0252 8.20455 7.11531 8.29396C7.98846 9.16222 8.85742 10.0347 9.72917 10.905C9.87167 11.0475 9.99391 11.1921 9.99321 11.4129C9.99251 11.6462 9.89472 11.8152 9.69564 11.9256C9.49307 12.038 9.2926 12.0206 9.10469 11.8899C9.03833 11.8438 8.98175 11.7845 8.92378 11.7272C7.85574 10.6592 6.79678 9.58203 5.71477 8.52867C5.3711 8.19407 5.38437 7.79173 5.70779 7.47599C6.7884 6.42123 7.84875 5.34551 8.91539 4.27607C9.11377 4.07769 9.32054 3.92262 9.623 4.04137C9.97924 4.18107 10.112 4.58901 9.89472 4.90335C9.82976 4.99765 9.74174 5.07728 9.66002 5.1597C8.80642 6.01469 7.95283 6.86968 7.09645 7.72257C7.01472 7.8043 6.91553 7.86856 6.74579 8.00408L6.74649 8.00338Z\"\n fill=\"black\" />\n </g>\n </svg>\n\n <h3 class=\"text-sm font-medium\">{{ submitButtonLabel }}</h3>\n </div>\n\n <div class=\"grid gap-2 max-h-96 overflow-y-auto p-2\">\n <!-- Action Dropdown (for PassOn, PassBack, SkipTo) -->\n <verben-drop-down *ngIf=\"showActionDropdown\" label=\"Action\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Action\"\n [options]=\"nextActions\" id=\"actions\" optionLabel=\"Name\" [ngModel]=\"selectedAction | async\"\n (ngModelChange)=\"selectedAction.next($event)\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Stage Dropdown (for PickTask, ReleaseTask) -->\n <verben-drop-down *ngIf=\"showStageDropdown\" label=\"Stages\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Stage\"\n [options]=\"task?.FullStages || []\" id=\"stages\" optionLabel=\"Name\" optionValue=\"Code\"\n [(ngModel)]=\"selectedStageCode\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Actor Dropdown -->\n <verben-drop-down *ngIf=\"showActorDropdown\" label=\"Actors\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Actor\"\n [options]=\"nextActors\" id=\"actors\" optionLabel=\"Name\" optionValue=\"Identifier\"\n [(ngModel)]=\"recipientCode\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Comment Textarea -->\n <textarea [(ngModel)]=\"comment\" placeholder=\"Enter Comment\"\n class=\"w-full p-1 text-xs border border-primary rounded-md\" style=\"height: 8rem\" [cols]=\"8\">\n </textarea>\n\n <!-- Submit Button -->\n <verbena-button [disable]=\"!canSubmit\" [text]=\"submitButtonLabel\" (click)=\"handleActionSubmit()\"\n class=\"text-xs w-full\" bgColor=\"#FFE681\" textColor=\"#404040\" borderRadius=\"10px\" fontSize=\"14px\"\n pd=\"10px 20px\" width=\"100%\" height=\"32px\">\n {{ submitButtonLabel }}\n </verbena-button>\n </div>\n </div>\n </div>\n</verben-pop-Up>\n\n<!-- Form Dialog for PassOn when form is required -->\n<verben-dialogue [showCloseIcon]=\"true\" [dismissOutsideClick]=\"true\" [closeOnEscape]=\"true\" [mode]=\"'drawer'\"\n [padding]=\"'0px'\" [drawerWidth]=\"'400px'\" [disableFooter]=\"false\" [isVisible]=\"isFormModalVisible\"\n [modalData]=\"stageForm\" [headerTemplate]=\"headerTemplate\" [bodyTemplate]=\"bodyTemplate\" [showCloseIcon]=\"false\" [style]=\"{ 'z-index': '99' }\">\n</verben-dialogue>\n<ng-template #headerTemplate>\n <div class=\"bg-[#FFE681] px-6 py-4 flex justify-between items-center\">\n <h1>Form</h1>\n <verben-svg class=\"cursor-pointer\" [icon]=\"'close-circle'\" (click)=\"isFormModalVisible = false\" [width]=\"15\"\n [height]=\"15\" [stroke]=\"'#fff'\"></verben-svg>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div *ngIf=\"stageForm?.Entities?.[active]; else emptyState\" class=\"mt-4\">\n <form-control [dataType]=\"dataType\"\n [formProperties]=\"stageForm?.Entities?.[active]?.Properties ?? []\"></form-control>\n\n <div class=\"flex gap-3 justify-end\">\n <verbena-button class=\"verben-primary-button\" (click)=\"submitForm()\"\n [disable]=\"!areRequiredPropertiesFilled()\" text=\"Save\"></verbena-button>\n </div>\n </div>\n\n <!-- Empty state template -->\n <ng-template #emptyState>\n <p class=\"mt-4 p-4 text-gray-600 text-center\">\n No entries available for the selected form group.\n </p>\n </ng-template>\n </div>\n</ng-template>\n" }]
796
+ args: [{ selector: 'lib-operation-popup', standalone: true, imports: [CommonModule, FormsModule, VerbenPopUpModule, DropDownModule, VerbenaButtonModule, VerbenDialogueModule, FormControlerModule, FormTimerModule, SvgModule], providers: [OperationPopupService, OperationPopupState, OperationPopupFacade], template: "<verben-pop-Up [customStyles]=\"{ 'z-index': '99' }\" [enableMouseLeave]=\"false\" [customStyles]=\"{\n border: '1px solid #d4a10780',\n borderRadius: '5px',\n backgroundColor: 'white'\n }\" [(dropdownOpen)]=\"isPopupOpen\">\n\n <!-- Trigger (projected content from parent) -->\n <div dropdown-trigger>\n <ng-content select=\"[trigger]\"></ng-content>\n </div>\n\n <!-- Popup content -->\n <div class=\"bg-white rounded-sm\" dropdown-content>\n <!-- Step 1: Action Selection -->\n <div *ngIf=\"currentStep === 'action-selection'\">\n <div *ngFor=\"let action of filteredActions\" (click)=\"onActionSelect(action.value)\"\n class=\"cursor-pointer py-2 px-3 hover:bg-primary\">\n {{ action.label }}\n </div>\n </div>\n\n <!-- Step 2: Action Form -->\n <div *ngIf=\"currentStep === 'action-form'\" style=\"width: 16rem\">\n <div class=\"flex items-center gap-4 justify-between h-12 px-2 pt-4\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n (click)=\"currentStep = 'action-selection'; activeActionType = null\">\n <g opacity=\"0.6\">\n <path\n d=\"M6.74649 8.00338C6.91483 8.1347 7.0252 8.20455 7.11531 8.29396C7.98846 9.16222 8.85742 10.0347 9.72917 10.905C9.87167 11.0475 9.99391 11.1921 9.99321 11.4129C9.99251 11.6462 9.89472 11.8152 9.69564 11.9256C9.49307 12.038 9.2926 12.0206 9.10469 11.8899C9.03833 11.8438 8.98175 11.7845 8.92378 11.7272C7.85574 10.6592 6.79678 9.58203 5.71477 8.52867C5.3711 8.19407 5.38437 7.79173 5.70779 7.47599C6.7884 6.42123 7.84875 5.34551 8.91539 4.27607C9.11377 4.07769 9.32054 3.92262 9.623 4.04137C9.97924 4.18107 10.112 4.58901 9.89472 4.90335C9.82976 4.99765 9.74174 5.07728 9.66002 5.1597C8.80642 6.01469 7.95283 6.86968 7.09645 7.72257C7.01472 7.8043 6.91553 7.86856 6.74579 8.00408L6.74649 8.00338Z\"\n fill=\"black\" />\n </g>\n </svg>\n\n <h3 class=\"text-sm font-medium\">{{ submitButtonLabel }}</h3>\n </div>\n\n <div class=\"grid gap-2 max-h-96 overflow-y-auto p-2\">\n <!-- Action Dropdown (for PassOn, PassBack, SkipTo) -->\n <verben-drop-down *ngIf=\"showActionDropdown\" label=\"Action\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Action\"\n [options]=\"nextActions\" id=\"actions\" optionLabel=\"Name\" [ngModel]=\"selectedAction | async\"\n (ngModelChange)=\"selectedAction.next($event)\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Stage Dropdown (for PickTask, ReleaseTask) -->\n <verben-drop-down *ngIf=\"showStageDropdown\" label=\"Stages\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Stage\"\n [options]=\"task?.FullStages || []\" id=\"stages\" optionLabel=\"Name\" optionValue=\"Code\"\n [(ngModel)]=\"selectedStageCode\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Actor Dropdown -->\n <verben-drop-down *ngIf=\"showActorDropdown\" label=\"Actors\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Actor\"\n [options]=\"nextActors\" id=\"actors\" optionLabel=\"Name\" optionValue=\"Identifier\"\n [(ngModel)]=\"recipientCode\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Comment Textarea -->\n <textarea [(ngModel)]=\"comment\" placeholder=\"Enter Comment\"\n class=\"w-full p-1 text-xs border border-primary rounded-md\" style=\"height: 8rem\" [cols]=\"8\">\n </textarea>\n\n <!-- Submit Button -->\n <verbena-button [disable]=\"!canSubmit\" [text]=\"submitButtonLabel\" (click)=\"handleActionSubmit()\"\n class=\"text-xs w-full\" bgColor=\"var(--vbn-color-primary)\" textColor=\"var(--vbn-color-on-primary)\" borderRadius=\"10px\" fontSize=\"14px\"\n pd=\"10px 20px\" width=\"100%\" height=\"32px\">\n {{ submitButtonLabel }}\n </verbena-button>\n </div>\n </div>\n </div>\n</verben-pop-Up>\n\n<!-- Form Dialog for PassOn when form is required -->\n<verben-dialogue [showCloseIcon]=\"true\" [dismissOutsideClick]=\"true\" [closeOnEscape]=\"true\" [mode]=\"'drawer'\"\n [padding]=\"'0px'\" [drawerWidth]=\"'400px'\" [disableFooter]=\"false\" [isVisible]=\"isFormModalVisible\"\n [modalData]=\"stageForm\" [headerTemplate]=\"headerTemplate\" [bodyTemplate]=\"bodyTemplate\" [showCloseIcon]=\"false\" [style]=\"{ 'z-index': '99' }\">\n</verben-dialogue>\n<ng-template #headerTemplate>\n <div class=\"bg-[var(--vbn-color-primary)] px-6 py-4 flex justify-between items-center\">\n <h1>Form</h1>\n <verben-svg class=\"cursor-pointer\" [icon]=\"'close-circle'\" (click)=\"isFormModalVisible = false\" [width]=\"15\"\n [height]=\"15\" [stroke]=\"'var(--vbn-color-surface)'\"></verben-svg>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div *ngIf=\"stageForm?.Entities?.[active]; else emptyState\" class=\"mt-4\">\n <form-control [dataType]=\"dataType\"\n [formProperties]=\"stageForm?.Entities?.[active]?.Properties ?? []\"></form-control>\n\n <div class=\"flex gap-3 justify-end\">\n <verbena-button class=\"verben-primary-button\" (click)=\"submitForm()\"\n [disable]=\"!areRequiredPropertiesFilled()\" text=\"Save\"></verbena-button>\n </div>\n </div>\n\n <!-- Empty state template -->\n <ng-template #emptyState>\n <p class=\"mt-4 p-4 text-gray-600 text-center\">\n No entries available for the selected form group.\n </p>\n </ng-template>\n </div>\n</ng-template>\n" }]
797
797
  }], ctorParameters: () => [{ type: OperationPopupFacade }], propDecorators: { user: [{
798
798
  type: Input
799
799
  }], task: [{
@@ -1 +1 @@
1
- {"version":3,"file":"verben-workflow-ui-src-lib-components-operation-popup.mjs","sources":["../../../projects/verben-workflow-ui/src/lib/components/operation-popup/operation-popup.service.ts","../../../projects/verben-workflow-ui/src/lib/components/operation-popup/operation-popup.state.ts","../../../projects/verben-workflow-ui/src/lib/components/operation-popup/operation-popup.facade.ts","../../../projects/verben-workflow-ui/src/lib/components/operation-popup/operation-popup.component.ts","../../../projects/verben-workflow-ui/src/lib/components/operation-popup/operation-popup.component.html","../../../projects/verben-workflow-ui/src/lib/components/operation-popup/verben-workflow-ui-src-lib-components-operation-popup.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Actor, ErrorResponse, Form, Task, WorkflowAction } from 'verben-workflow-ui/src/lib/models';\nimport { HttpWebRequestService } from 'verben-workflow-ui/src/lib/services';\n\n@Injectable()\nexport class OperationPopupService {\n\n constructor(private httpService: HttpWebRequestService) { }\n\n getNextActions(taskCode: string): Promise<WorkflowAction[] | ErrorResponse> {\n const url = `GetNextActions/${taskCode}`;\n return this.httpService.get(url) as Promise<WorkflowAction[] | ErrorResponse>;\n }\n\n getPreviousActions(taskCode: string): Promise<WorkflowAction[] | ErrorResponse> {\n const url = `GetPreviousActions/${taskCode}`;\n return this.httpService.get(url) as Promise<WorkflowAction[] | ErrorResponse>;\n }\n\n getAllPreviousActions(taskCode: string): Promise<WorkflowAction[] | ErrorResponse> {\n const url = `GetAllPreviousActions/${taskCode}`;\n return this.httpService.get(url) as Promise<WorkflowAction[] | ErrorResponse>;\n }\n\n getNextActors(\n taskCode: string,\n forCurrentStage: boolean,\n stageCode?: string,\n ): Promise<Actor[] | ErrorResponse> {\n const url = `GetNextActors/${taskCode}${'/' + forCurrentStage + (stageCode ? '/' + stageCode : '')}`;\n return this.httpService.get(url) as Promise<Actor[] | ErrorResponse>;\n }\n\n passOn(\n fromStage: string,\n toStage: string,\n task: Task,\n comment: string,\n recipient?: string\n ): Promise<Task | ErrorResponse> {\n const url = `PassOn/${fromStage}/${toStage}/${comment}${recipient ? '/' + recipient : ''}`;\n return this.httpService.post(url, task);\n }\n\n passBack(\n fromStage: string,\n toStage: string,\n task: Task,\n comment: string,\n recipient?: string\n ): Promise<Task | ErrorResponse> {\n const url = `PassBack/${fromStage}/${toStage}/${comment}${recipient ? '/' + recipient : ''}`;\n return this.httpService.post(url, task);\n }\n\n pickTask(\n targetStage: string,\n task: Task,\n comment: string,\n recipient?: string\n ): Promise<Task | ErrorResponse> {\n const url = `PickTask/${comment}/${targetStage}${recipient ? '/' + recipient : ''}`;\n return this.httpService.post(url, task);\n }\n\n releaseTask(\n targetStage: string,\n task: Task,\n comment: string,\n recipient?: string\n ): Promise<Task | ErrorResponse> {\n const url = `UnPickTask/${comment}/${targetStage}${recipient ? '/' + recipient : ''}`;\n return this.httpService.post(url, task);\n }\n\n followTask(actorId: string, task: Task): Promise<Task | ErrorResponse> {\n const url = `FollowTask/${actorId}`;\n return this.httpService.post(url, task);\n }\n\n unfollowTask(\n taskId: string,\n actorId: string\n ): Promise<void | ErrorResponse> {\n const url = `UnFollowTask/${taskId}/${actorId}`;\n return this.httpService.post(url, {});\n }\n\n reAssign(\n task: Task,\n comment: string,\n fromUser?: string,\n toUser?: string\n ): Promise<Task | ErrorResponse> {\n const url = `Reassign/${comment}/${toUser}/${fromUser}`;\n return this.httpService.post(url, task);\n }\n\n skipTo(\n fromStage: string,\n toStage: string,\n task: Task,\n comment: string,\n recipient?: string,\n isBackward: boolean = false\n ): Promise<Task | ErrorResponse> {\n const url = `SkipTo/${fromStage}/${toStage}/${comment}${recipient ? '/' + recipient : ''}/${isBackward}`;\n return this.httpService.post(url, task);\n }\n\n getCurrentFormsForTask(taskCode: string): Promise<Form[] | ErrorResponse> {\n const url = `GetCurrentFormsForTask/${taskCode}`;\n return this.httpService.get(url) as Promise<Form[] | ErrorResponse>;\n }\n\n fillForm(form: Form, taskCode: string): Promise<Form | ErrorResponse> {\n const url = `FillForm/${taskCode}`;\n return this.httpService.post(url, form);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { Actor, Form, WorkflowAction } from 'verben-workflow-ui/src/lib/models';\n\n@Injectable()\nexport class OperationPopupState {\n private isUpdating = new BehaviorSubject<boolean>(false);\n private nextActions = new BehaviorSubject<WorkflowAction[]>([]);\n private nextActors = new BehaviorSubject<Actor[]>([]);\n private taskForms = new BehaviorSubject<Form[]>([]);\n\n getIsUpdating$(): Observable<boolean> {\n return this.isUpdating.asObservable();\n }\n\n getNextActions$(): Observable<WorkflowAction[]> {\n return this.nextActions.asObservable();\n }\n\n getNextActors$(): Observable<Actor[]> {\n return this.nextActors.asObservable();\n }\n\n getTaskForms$(): Observable<Form[]> {\n return this.taskForms.asObservable();\n }\n\n setIsUpdating(value: boolean): void {\n this.isUpdating.next(value);\n }\n\n setNextActions(actions: WorkflowAction[]): void {\n this.nextActions.next(actions);\n }\n\n setNextActors(actors: Actor[]): void {\n this.nextActors.next(actors);\n }\n\n setTaskForms(forms: Form[]): void {\n this.taskForms.next(forms);\n }\n\n resetState(): void {\n this.nextActions.next([]);\n this.nextActors.next([]);\n this.taskForms.next([]);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { Actor, ErrorResponse, Form, Task, WorkflowAction } from 'verben-workflow-ui/src/lib/models';\nimport { UtilService } from 'verben-workflow-ui/src/lib/services';\nimport { OperationPopupService } from './operation-popup.service';\nimport { OperationPopupState } from './operation-popup.state';\n\n@Injectable()\nexport class OperationPopupFacade {\n constructor(\n private service: OperationPopupService,\n private state: OperationPopupState,\n private utilService: UtilService\n ) {\n this.isUpdating$().subscribe((loading) => {\n this.utilService.sendBI(loading);\n });\n }\n\n isUpdating$(): Observable<boolean> {\n return this.state.getIsUpdating$();\n }\n\n getNextActions$(): Observable<WorkflowAction[]> {\n return this.state.getNextActions$();\n }\n\n getNextActors$(): Observable<Actor[]> {\n return this.state.getNextActors$();\n }\n\n getTaskForms$(): Observable<Form[]> {\n return this.state.getTaskForms$();\n }\n\n async loadNextActions(taskCode: string): Promise<WorkflowAction[]> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.getNextActions(taskCode);\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return [];\n }\n\n this.state.setNextActions(response);\n return response;\n } catch (error) {\n console.error('Failed to load next actions:', error);\n return [];\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async loadPreviousActions(taskCode: string): Promise<WorkflowAction[]> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.getPreviousActions(taskCode);\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return [];\n }\n\n this.state.setNextActions(response);\n return response;\n } catch (error) {\n console.error('Failed to load previous actions:', error);\n return [];\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async loadAllPreviousActions(taskCode: string): Promise<WorkflowAction[]> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.getAllPreviousActions(taskCode);\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return [];\n }\n\n this.state.setNextActions(response);\n return response;\n } catch (error) {\n console.error('Failed to load all previous actions:', error);\n return [];\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async loadNextActors(\n taskCode: string,\n forCurrentStage: boolean,\n stageCode?: string,\n ): Promise<Actor[]> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.getNextActors(taskCode, forCurrentStage, stageCode);\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return [];\n }\n\n this.state.setNextActors(response);\n return response;\n } catch (error) {\n console.error('Failed to load next actors:', error);\n return [];\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async loadTaskForms(taskCode: string): Promise<Form[]> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.getCurrentFormsForTask(taskCode);\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return [];\n }\n\n this.state.setTaskForms(response);\n return response;\n } catch (error) {\n console.error('Failed to load task forms:', error);\n return [];\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async passOn(\n action: WorkflowAction,\n task: Task,\n comment: string,\n recipient: string | null\n ): Promise<void> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.passOn(\n action.FromStage,\n action.ToStage,\n {\n ...task,\n FullStages: [],\n CurrentActors: task.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n },\n comment,\n recipient ?? undefined\n );\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return;\n }\n\n this.utilService.showSuccess('Task passed on successfully');\n this.state.resetState();\n } catch (error) {\n console.error('Failed to pass on task:', error);\n throw error;\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async passBack(\n action: WorkflowAction,\n task: Task,\n comment: string,\n recipient: string | null\n ): Promise<void> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.passBack(\n action.ToStage,\n action.FromStage,\n {\n ...task,\n FullStages: [],\n CurrentActors: task.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n },\n comment,\n recipient ?? undefined\n );\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return;\n }\n\n this.utilService.showSuccess('Task passed back successfully');\n this.state.resetState();\n } catch (error) {\n console.error('Failed to pass back task:', error);\n throw error;\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async skipTo(\n from: WorkflowAction['FromStage'],\n to: WorkflowAction['ToStage'],\n task: Task,\n comment: string,\n recipient: string | null\n ): Promise<void> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.skipTo(\n from,\n to,\n {\n ...task,\n FullStages: [],\n CurrentActors: task.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n },\n comment,\n recipient ?? undefined\n );\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return;\n }\n\n this.utilService.showSuccess('Task skipped successfully');\n this.state.resetState();\n } catch (error) {\n console.error('Failed to skip task:', error);\n throw error;\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async pickTask(\n targetStage: string,\n task: Task,\n comment: string,\n recipient: string | null\n ): Promise<void> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.pickTask(\n targetStage,\n {\n ...task,\n FullStages: [],\n CurrentActors: task.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n },\n comment,\n recipient ?? undefined\n );\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return;\n }\n\n this.utilService.showSuccess('Task picked successfully');\n this.state.resetState();\n } catch (error) {\n console.error('Failed to pick task:', error);\n throw error;\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async releaseTask(\n targetStage: string,\n task: Task,\n comment: string,\n recipient: string | null\n ): Promise<void> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.releaseTask(\n targetStage,\n {\n ...task,\n FullStages: [],\n CurrentActors: task.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n },\n comment,\n recipient ?? undefined\n );\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return;\n }\n\n this.utilService.showSuccess('Task released successfully');\n this.state.resetState();\n } catch (error) {\n console.error('Failed to release task:', error);\n throw error;\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async followTask(actorId: string, task: Task): Promise<void> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.followTask(\n actorId,\n {\n ...task,\n FullStages: [],\n CurrentActors: task.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n }\n );\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return;\n }\n\n this.utilService.showSuccess('Task followed successfully');\n this.state.resetState();\n } catch (error) {\n console.error('Failed to follow task:', error);\n throw error;\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async unfollowTask(taskId: string, actorId: string): Promise<void> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.unfollowTask(taskId, actorId);\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return;\n }\n\n this.utilService.showSuccess('Task unfollowed successfully');\n this.state.resetState();\n } catch (error) {\n console.error('Failed to unfollow task:', error);\n throw error;\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async reAssign(task: Task, comment: string, fromUser?: string, toUser?: string): Promise<void> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.reAssign(\n {\n ...task,\n FullStages: [],\n CurrentActors: task.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n },\n comment,\n fromUser,\n toUser\n );\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return;\n }\n\n this.utilService.showSuccess('Task re-assigned successfully');\n this.state.resetState();\n } catch (error) {\n console.error('Failed to re-assign task:', error);\n throw error;\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async fillForm(form: Form, taskCode: string): Promise<Form | null> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.fillForm(form, taskCode);\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return null;\n }\n\n this.utilService.showSuccess('Form filled successfully');\n return response;\n } catch (error) {\n console.error('Failed to fill form:', error);\n return null;\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BehaviorSubject, Subject, takeUntil } from 'rxjs';\nimport { DropDownModule, SvgModule, VerbenaButtonModule, VerbenDialogueModule, VerbenPopUpModule } from 'verben-ng-ui';\nimport { FormControlerModule } from 'verben-workflow-ui/src/lib/components/form-control';\nimport { FormTimerModule } from 'verben-workflow-ui/src/lib/components/form-timer';\nimport { Actor, DataType, Form, Task, WorkflowAction } from 'verben-workflow-ui/src/lib/models';\nimport { OperationPopupFacade } from './operation-popup.facade';\nimport { OperationPopupService } from './operation-popup.service';\nimport { OperationPopupState } from './operation-popup.state';\n\ntype ActionType = 'passon' | 'passback' | 'reassign' | 'skipto' | 'picktask' | 'releasetask' | 'followtask' | 'unfollowtask';\n\n@Component({\n selector: 'lib-operation-popup',\n standalone: true,\n imports: [CommonModule, FormsModule, VerbenPopUpModule, DropDownModule, VerbenaButtonModule, VerbenDialogueModule, FormControlerModule, FormTimerModule, SvgModule],\n providers: [OperationPopupService, OperationPopupState, OperationPopupFacade],\n templateUrl: './operation-popup.component.html',\n styleUrls: ['./operation-popup.component.css']\n})\nexport class OperationPopupComponent implements OnInit, OnDestroy {\n @Input() user!: string;\n @Input() task: Task | null = null;\n @Input() allowedActions: string[] = [];\n\n @Output() actionComplete = new EventEmitter<void>();\n\n // Internal popup visibility control\n isPopupOpen: boolean = false;\n isFormModalVisible: boolean = false;\n currentStep: 'action-selection' | 'action-form' = 'action-selection';\n\n // Action state\n activeActionType: ActionType | null = null;\n comment: string = '';\n recipientCode: string | null = null;\n selectedAction: BehaviorSubject<WorkflowAction | null> = new BehaviorSubject<WorkflowAction | null>(null);\n selectedStageCode: string | null = null;\n formSubmitted: boolean = false;\n\n // Data from facade\n nextActions: WorkflowAction[] = [];\n nextActors: Actor[] = [];\n stageForm: Form | null = null;\n active: number = 0;\n dataType: DataType = DataType.Text;\n\n private destroy$ = new Subject<void>();\n\n constructor(private facade: OperationPopupFacade) { }\n\n ngOnInit(): void {\n // Subscribe to facade observables\n this.facade.getNextActions$()\n .pipe(takeUntil(this.destroy$))\n .subscribe((data) => {\n this.nextActions = data;\n });\n\n this.facade.getNextActors$()\n .pipe(takeUntil(this.destroy$))\n .subscribe((data) => {\n this.nextActors = data;\n // Auto-select current user if available\n if (this.user && data.map(({ Identifier }) => Identifier).includes(this.user)) {\n this.recipientCode = this.user;\n }\n });\n\n this.facade.getTaskForms$()\n .pipe(takeUntil(this.destroy$))\n .subscribe((data) => {\n this.stageForm = data?.[0] || null;\n });\n\n // Load actors when action is selected\n this.selectedAction\n .pipe(takeUntil(this.destroy$))\n .subscribe((action) => {\n if (action && this.task) {\n this.facade.loadNextActors(this.task.Code, false, action.ToStage);\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n // Get filtered actions based on allowedActions input\n get filteredActions(): { label: string; value: ActionType; requiresForm: boolean }[] {\n const allActions = [\n { label: 'Pass On', value: 'passon' as ActionType, requiresForm: true },\n { label: 'Pass Back', value: 'passback' as ActionType, requiresForm: true },\n { label: 'Re-Assign', value: 'reassign' as ActionType, requiresForm: false },\n { label: 'Skip To', value: 'skipto' as ActionType, requiresForm: true },\n { label: 'Pick Task', value: 'picktask' as ActionType, requiresForm: false },\n { label: 'Release Task', value: 'releasetask' as ActionType, requiresForm: false },\n { label: 'Follow Task', value: 'followtask' as ActionType, requiresForm: false },\n { label: 'Unfollow Task', value: 'unfollowtask' as ActionType, requiresForm: false },\n ];\n\n return allActions.filter(action => this.allowedActions.includes(action.value));\n }\n\n // Called when user clicks on an action from the list\n async onActionSelect(actionType: ActionType): Promise<void> {\n if (!this.task) return;\n\n this.activeActionType = actionType;\n this.comment = '';\n this.recipientCode = null;\n this.selectedAction.next(null);\n\n // Load necessary data based on action type\n switch (actionType) {\n case 'passon':\n await this.facade.loadNextActions(this.task.Code);\n await this.facade.loadTaskForms(this.task.Code);\n break;\n case 'passback':\n await this.facade.loadPreviousActions(this.task.Code);\n break;\n case 'skipto':\n await this.facade.loadAllPreviousActions(this.task.Code);\n break;\n case 'reassign':\n await this.facade.loadNextActors(this.task.Code, true);\n break;\n case 'picktask':\n case 'releasetask':\n // These use the task's full stages\n break;\n case 'followtask':\n case 'unfollowtask':\n // These don't need additional data\n break;\n }\n\n // Toggle popup: close then reopen for step transition\n this.isPopupOpen = false;\n setTimeout(() => {\n this.currentStep = 'action-form';\n this.isPopupOpen = true;\n }, 50);\n }\n\n // Handle action submission\n async handleActionSubmit(): Promise<void> {\n if (!this.task) return;\n\n let actionCompleted = false;\n\n try {\n switch (this.activeActionType) {\n case 'passon':\n actionCompleted = await this.handlePassOn();\n break;\n case 'passback':\n await this.handlePassBack();\n actionCompleted = true;\n break;\n case 'reassign':\n await this.handleReAssign();\n actionCompleted = true;\n break;\n case 'skipto':\n await this.handleSkipTo();\n actionCompleted = true;\n break;\n case 'picktask':\n await this.handlePickTask();\n actionCompleted = true;\n break;\n case 'releasetask':\n await this.handleReleaseTask();\n actionCompleted = true;\n break;\n case 'followtask':\n await this.handleFollowTask();\n actionCompleted = true;\n break;\n case 'unfollowtask':\n await this.handleUnfollowTask();\n actionCompleted = true;\n break;\n }\n\n // Only close popup and emit completion if action actually completed\n // (not waiting for form dialog)\n if (actionCompleted) {\n this.closePopup();\n this.actionComplete.emit();\n }\n } catch (error) {\n console.error('Action failed:', error);\n }\n }\n\n private async handlePassOn(): Promise<boolean> {\n if (this.stageForm && !this.formSubmitted) {\n // If there's a form and it hasn't been submitted yet, show the form modal\n this.isPopupOpen = false;\n this.isFormModalVisible = true;\n return false; // Action not completed yet, waiting for form\n }\n\n const selectedAction = this.selectedAction.getValue();\n if (selectedAction && this.task && this.comment) {\n await this.facade.passOn(selectedAction, this.task, this.comment, this.recipientCode);\n this.formSubmitted = false; // Reset for next time\n }\n return true; // Action completed\n }\n\n submitForm(): void {\n if (this.stageForm && this.task) {\n console.log('Submitting form...', this.stageForm);\n this.facade.fillForm(this.stageForm, this.task.Code)\n .then(() => {\n // fillForm API returns empty response, so just check that it didn't error\n console.log('Form filled successfully, proceeding with passOn...');\n this.stageForm = null;\n this.isFormModalVisible = false;\n this.formSubmitted = true;\n // Continue with passOn after form is filled\n this.handlePassOn().then((completed) => {\n console.log('passOn completed:', completed);\n if (completed) {\n this.closePopup();\n this.actionComplete.emit();\n }\n }).catch((error) => {\n console.error('Error in handlePassOn:', error);\n });\n })\n .catch((error) => {\n console.error('Error filling form:', error);\n });\n } else {\n console.error('Cannot submit form: stageForm or task is missing', {\n stageForm: this.stageForm,\n task: this.task\n });\n }\n }\n\n areRequiredPropertiesFilled(): boolean {\n if (!this.stageForm) return true;\n const properties = this.stageForm.Entities[this.active].Properties || [];\n // Check if all required properties have valid values\n return properties.every((property: any) => {\n return (\n !property.isRequired ||\n (property.Value !== undefined &&\n property.Value !== null &&\n property.Value !== '')\n );\n });\n }\n\n private async handlePassBack(): Promise<void> {\n const selectedAction = this.selectedAction.getValue();\n if (selectedAction && this.task && this.comment) {\n await this.facade.passBack(selectedAction, this.task, this.comment, this.recipientCode);\n }\n }\n\n private async handleReAssign(): Promise<void> {\n if (this.task && this.comment) {\n await this.facade.reAssign(this.task, this.comment, this.user, this.recipientCode || undefined);\n }\n }\n\n private async handleSkipTo(): Promise<void> {\n const selectedAction = this.selectedAction.getValue();\n if (selectedAction && this.task && this.comment) {\n await this.facade.skipTo(\n this.task.CurrentStages[0],\n selectedAction.ToStage,\n this.task,\n this.comment,\n this.recipientCode\n );\n }\n }\n\n private async handlePickTask(): Promise<void> {\n if (this.task && this.comment && this.selectedStageCode) {\n await this.facade.pickTask(this.selectedStageCode, this.task, this.comment, this.recipientCode);\n }\n }\n\n private async handleReleaseTask(): Promise<void> {\n if (this.task && this.comment && this.selectedStageCode) {\n await this.facade.releaseTask(this.selectedStageCode, this.task, this.comment, this.recipientCode);\n }\n }\n\n private async handleFollowTask(): Promise<void> {\n if (this.task && this.user) {\n await this.facade.followTask(this.user, this.task);\n }\n }\n\n private async handleUnfollowTask(): Promise<void> {\n if (this.task && this.user) {\n await this.facade.unfollowTask(this.task.Code, this.user);\n }\n }\n\n private closePopup(): void {\n this.isPopupOpen = false;\n this.isFormModalVisible = false;\n this.currentStep = 'action-selection';\n this.activeActionType = null;\n this.comment = '';\n this.recipientCode = null;\n this.selectedAction.next(null);\n this.selectedStageCode = null;\n this.nextActions = [];\n this.nextActors = [];\n this.stageForm = null;\n this.formSubmitted = false;\n }\n\n // Check if submit button should be enabled\n get canSubmit(): boolean {\n if (!this.comment) return false;\n\n switch (this.activeActionType) {\n case 'passon':\n case 'passback':\n case 'skipto':\n return !!this.selectedAction.getValue();\n case 'reassign':\n return !!this.recipientCode;\n case 'picktask':\n case 'releasetask':\n return !!this.selectedStageCode;\n case 'followtask':\n case 'unfollowtask':\n return true;\n default:\n return false;\n }\n }\n\n // Show action dropdown for certain action types\n get showActionDropdown(): boolean {\n return ['passon', 'passback', 'skipto'].includes(this.activeActionType || '');\n }\n\n // Show actor dropdown for certain action types\n get showActorDropdown(): boolean {\n return ['passon', 'passback', 'skipto', 'reassign', 'picktask', 'releasetask'].includes(this.activeActionType || '');\n }\n\n // Show stage dropdown for pick/release task\n get showStageDropdown(): boolean {\n return ['picktask', 'releasetask'].includes(this.activeActionType || '');\n }\n\n // Get label for submit button\n get submitButtonLabel(): string {\n const labels: Record<ActionType, string> = {\n passon: 'Pass On',\n passback: 'Pass Back',\n reassign: 'Re-Assign',\n skipto: 'Skip To',\n picktask: 'Pick Task',\n releasetask: 'Release Task',\n followtask: 'Follow',\n unfollowtask: 'Unfollow',\n };\n return labels[this.activeActionType || 'passon'] || 'Submit';\n }\n}\n","<verben-pop-Up [customStyles]=\"{ 'z-index': '99' }\" [enableMouseLeave]=\"false\" [customStyles]=\"{\n border: '1px solid #d4a10780',\n borderRadius: '5px',\n backgroundColor: 'white'\n }\" [(dropdownOpen)]=\"isPopupOpen\">\n\n <!-- Trigger (projected content from parent) -->\n <div dropdown-trigger>\n <ng-content select=\"[trigger]\"></ng-content>\n </div>\n\n <!-- Popup content -->\n <div class=\"bg-white rounded-sm\" dropdown-content>\n <!-- Step 1: Action Selection -->\n <div *ngIf=\"currentStep === 'action-selection'\">\n <div *ngFor=\"let action of filteredActions\" (click)=\"onActionSelect(action.value)\"\n class=\"cursor-pointer py-2 px-3 hover:bg-primary\">\n {{ action.label }}\n </div>\n </div>\n\n <!-- Step 2: Action Form -->\n <div *ngIf=\"currentStep === 'action-form'\" style=\"width: 16rem\">\n <div class=\"flex items-center gap-4 justify-between h-12 px-2 pt-4\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n (click)=\"currentStep = 'action-selection'; activeActionType = null\">\n <g opacity=\"0.6\">\n <path\n d=\"M6.74649 8.00338C6.91483 8.1347 7.0252 8.20455 7.11531 8.29396C7.98846 9.16222 8.85742 10.0347 9.72917 10.905C9.87167 11.0475 9.99391 11.1921 9.99321 11.4129C9.99251 11.6462 9.89472 11.8152 9.69564 11.9256C9.49307 12.038 9.2926 12.0206 9.10469 11.8899C9.03833 11.8438 8.98175 11.7845 8.92378 11.7272C7.85574 10.6592 6.79678 9.58203 5.71477 8.52867C5.3711 8.19407 5.38437 7.79173 5.70779 7.47599C6.7884 6.42123 7.84875 5.34551 8.91539 4.27607C9.11377 4.07769 9.32054 3.92262 9.623 4.04137C9.97924 4.18107 10.112 4.58901 9.89472 4.90335C9.82976 4.99765 9.74174 5.07728 9.66002 5.1597C8.80642 6.01469 7.95283 6.86968 7.09645 7.72257C7.01472 7.8043 6.91553 7.86856 6.74579 8.00408L6.74649 8.00338Z\"\n fill=\"black\" />\n </g>\n </svg>\n\n <h3 class=\"text-sm font-medium\">{{ submitButtonLabel }}</h3>\n </div>\n\n <div class=\"grid gap-2 max-h-96 overflow-y-auto p-2\">\n <!-- Action Dropdown (for PassOn, PassBack, SkipTo) -->\n <verben-drop-down *ngIf=\"showActionDropdown\" label=\"Action\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Action\"\n [options]=\"nextActions\" id=\"actions\" optionLabel=\"Name\" [ngModel]=\"selectedAction | async\"\n (ngModelChange)=\"selectedAction.next($event)\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Stage Dropdown (for PickTask, ReleaseTask) -->\n <verben-drop-down *ngIf=\"showStageDropdown\" label=\"Stages\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Stage\"\n [options]=\"task?.FullStages || []\" id=\"stages\" optionLabel=\"Name\" optionValue=\"Code\"\n [(ngModel)]=\"selectedStageCode\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Actor Dropdown -->\n <verben-drop-down *ngIf=\"showActorDropdown\" label=\"Actors\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Actor\"\n [options]=\"nextActors\" id=\"actors\" optionLabel=\"Name\" optionValue=\"Identifier\"\n [(ngModel)]=\"recipientCode\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Comment Textarea -->\n <textarea [(ngModel)]=\"comment\" placeholder=\"Enter Comment\"\n class=\"w-full p-1 text-xs border border-primary rounded-md\" style=\"height: 8rem\" [cols]=\"8\">\n </textarea>\n\n <!-- Submit Button -->\n <verbena-button [disable]=\"!canSubmit\" [text]=\"submitButtonLabel\" (click)=\"handleActionSubmit()\"\n class=\"text-xs w-full\" bgColor=\"#FFE681\" textColor=\"#404040\" borderRadius=\"10px\" fontSize=\"14px\"\n pd=\"10px 20px\" width=\"100%\" height=\"32px\">\n {{ submitButtonLabel }}\n </verbena-button>\n </div>\n </div>\n </div>\n</verben-pop-Up>\n\n<!-- Form Dialog for PassOn when form is required -->\n<verben-dialogue [showCloseIcon]=\"true\" [dismissOutsideClick]=\"true\" [closeOnEscape]=\"true\" [mode]=\"'drawer'\"\n [padding]=\"'0px'\" [drawerWidth]=\"'400px'\" [disableFooter]=\"false\" [isVisible]=\"isFormModalVisible\"\n [modalData]=\"stageForm\" [headerTemplate]=\"headerTemplate\" [bodyTemplate]=\"bodyTemplate\" [showCloseIcon]=\"false\" [style]=\"{ 'z-index': '99' }\">\n</verben-dialogue>\n<ng-template #headerTemplate>\n <div class=\"bg-[#FFE681] px-6 py-4 flex justify-between items-center\">\n <h1>Form</h1>\n <verben-svg class=\"cursor-pointer\" [icon]=\"'close-circle'\" (click)=\"isFormModalVisible = false\" [width]=\"15\"\n [height]=\"15\" [stroke]=\"'#fff'\"></verben-svg>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div *ngIf=\"stageForm?.Entities?.[active]; else emptyState\" class=\"mt-4\">\n <form-control [dataType]=\"dataType\"\n [formProperties]=\"stageForm?.Entities?.[active]?.Properties ?? []\"></form-control>\n\n <div class=\"flex gap-3 justify-end\">\n <verbena-button class=\"verben-primary-button\" (click)=\"submitForm()\"\n [disable]=\"!areRequiredPropertiesFilled()\" text=\"Save\"></verbena-button>\n </div>\n </div>\n\n <!-- Empty state template -->\n <ng-template #emptyState>\n <p class=\"mt-4 p-4 text-gray-600 text-center\">\n No entries available for the selected form group.\n </p>\n </ng-template>\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.OperationPopupService","i2.OperationPopupState","i3","i1.OperationPopupFacade"],"mappings":"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"}
1
+ {"version":3,"file":"verben-workflow-ui-src-lib-components-operation-popup.mjs","sources":["../../../projects/verben-workflow-ui/src/lib/components/operation-popup/operation-popup.service.ts","../../../projects/verben-workflow-ui/src/lib/components/operation-popup/operation-popup.state.ts","../../../projects/verben-workflow-ui/src/lib/components/operation-popup/operation-popup.facade.ts","../../../projects/verben-workflow-ui/src/lib/components/operation-popup/operation-popup.component.ts","../../../projects/verben-workflow-ui/src/lib/components/operation-popup/operation-popup.component.html","../../../projects/verben-workflow-ui/src/lib/components/operation-popup/verben-workflow-ui-src-lib-components-operation-popup.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Actor, ErrorResponse, Form, Task, WorkflowAction } from 'verben-workflow-ui/src/lib/models';\nimport { HttpWebRequestService } from 'verben-workflow-ui/src/lib/services';\n\n@Injectable()\nexport class OperationPopupService {\n\n constructor(private httpService: HttpWebRequestService) { }\n\n getNextActions(taskCode: string): Promise<WorkflowAction[] | ErrorResponse> {\n const url = `GetNextActions/${taskCode}`;\n return this.httpService.get(url) as Promise<WorkflowAction[] | ErrorResponse>;\n }\n\n getPreviousActions(taskCode: string): Promise<WorkflowAction[] | ErrorResponse> {\n const url = `GetPreviousActions/${taskCode}`;\n return this.httpService.get(url) as Promise<WorkflowAction[] | ErrorResponse>;\n }\n\n getAllPreviousActions(taskCode: string): Promise<WorkflowAction[] | ErrorResponse> {\n const url = `GetAllPreviousActions/${taskCode}`;\n return this.httpService.get(url) as Promise<WorkflowAction[] | ErrorResponse>;\n }\n\n getNextActors(\n taskCode: string,\n forCurrentStage: boolean,\n stageCode?: string,\n ): Promise<Actor[] | ErrorResponse> {\n const url = `GetNextActors/${taskCode}${'/' + forCurrentStage + (stageCode ? '/' + stageCode : '')}`;\n return this.httpService.get(url) as Promise<Actor[] | ErrorResponse>;\n }\n\n passOn(\n fromStage: string,\n toStage: string,\n task: Task,\n comment: string,\n recipient?: string\n ): Promise<Task | ErrorResponse> {\n const url = `PassOn/${fromStage}/${toStage}/${comment}${recipient ? '/' + recipient : ''}`;\n return this.httpService.post(url, task);\n }\n\n passBack(\n fromStage: string,\n toStage: string,\n task: Task,\n comment: string,\n recipient?: string\n ): Promise<Task | ErrorResponse> {\n const url = `PassBack/${fromStage}/${toStage}/${comment}${recipient ? '/' + recipient : ''}`;\n return this.httpService.post(url, task);\n }\n\n pickTask(\n targetStage: string,\n task: Task,\n comment: string,\n recipient?: string\n ): Promise<Task | ErrorResponse> {\n const url = `PickTask/${comment}/${targetStage}${recipient ? '/' + recipient : ''}`;\n return this.httpService.post(url, task);\n }\n\n releaseTask(\n targetStage: string,\n task: Task,\n comment: string,\n recipient?: string\n ): Promise<Task | ErrorResponse> {\n const url = `UnPickTask/${comment}/${targetStage}${recipient ? '/' + recipient : ''}`;\n return this.httpService.post(url, task);\n }\n\n followTask(actorId: string, task: Task): Promise<Task | ErrorResponse> {\n const url = `FollowTask/${actorId}`;\n return this.httpService.post(url, task);\n }\n\n unfollowTask(\n taskId: string,\n actorId: string\n ): Promise<void | ErrorResponse> {\n const url = `UnFollowTask/${taskId}/${actorId}`;\n return this.httpService.post(url, {});\n }\n\n reAssign(\n task: Task,\n comment: string,\n fromUser?: string,\n toUser?: string\n ): Promise<Task | ErrorResponse> {\n const url = `Reassign/${comment}/${toUser}/${fromUser}`;\n return this.httpService.post(url, task);\n }\n\n skipTo(\n fromStage: string,\n toStage: string,\n task: Task,\n comment: string,\n recipient?: string,\n isBackward: boolean = false\n ): Promise<Task | ErrorResponse> {\n const url = `SkipTo/${fromStage}/${toStage}/${comment}${recipient ? '/' + recipient : ''}/${isBackward}`;\n return this.httpService.post(url, task);\n }\n\n getCurrentFormsForTask(taskCode: string): Promise<Form[] | ErrorResponse> {\n const url = `GetCurrentFormsForTask/${taskCode}`;\n return this.httpService.get(url) as Promise<Form[] | ErrorResponse>;\n }\n\n fillForm(form: Form, taskCode: string): Promise<Form | ErrorResponse> {\n const url = `FillForm/${taskCode}`;\n return this.httpService.post(url, form);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { Actor, Form, WorkflowAction } from 'verben-workflow-ui/src/lib/models';\n\n@Injectable()\nexport class OperationPopupState {\n private isUpdating = new BehaviorSubject<boolean>(false);\n private nextActions = new BehaviorSubject<WorkflowAction[]>([]);\n private nextActors = new BehaviorSubject<Actor[]>([]);\n private taskForms = new BehaviorSubject<Form[]>([]);\n\n getIsUpdating$(): Observable<boolean> {\n return this.isUpdating.asObservable();\n }\n\n getNextActions$(): Observable<WorkflowAction[]> {\n return this.nextActions.asObservable();\n }\n\n getNextActors$(): Observable<Actor[]> {\n return this.nextActors.asObservable();\n }\n\n getTaskForms$(): Observable<Form[]> {\n return this.taskForms.asObservable();\n }\n\n setIsUpdating(value: boolean): void {\n this.isUpdating.next(value);\n }\n\n setNextActions(actions: WorkflowAction[]): void {\n this.nextActions.next(actions);\n }\n\n setNextActors(actors: Actor[]): void {\n this.nextActors.next(actors);\n }\n\n setTaskForms(forms: Form[]): void {\n this.taskForms.next(forms);\n }\n\n resetState(): void {\n this.nextActions.next([]);\n this.nextActors.next([]);\n this.taskForms.next([]);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { Actor, ErrorResponse, Form, Task, WorkflowAction } from 'verben-workflow-ui/src/lib/models';\nimport { UtilService } from 'verben-workflow-ui/src/lib/services';\nimport { OperationPopupService } from './operation-popup.service';\nimport { OperationPopupState } from './operation-popup.state';\n\n@Injectable()\nexport class OperationPopupFacade {\n constructor(\n private service: OperationPopupService,\n private state: OperationPopupState,\n private utilService: UtilService\n ) {\n this.isUpdating$().subscribe((loading) => {\n this.utilService.sendBI(loading);\n });\n }\n\n isUpdating$(): Observable<boolean> {\n return this.state.getIsUpdating$();\n }\n\n getNextActions$(): Observable<WorkflowAction[]> {\n return this.state.getNextActions$();\n }\n\n getNextActors$(): Observable<Actor[]> {\n return this.state.getNextActors$();\n }\n\n getTaskForms$(): Observable<Form[]> {\n return this.state.getTaskForms$();\n }\n\n async loadNextActions(taskCode: string): Promise<WorkflowAction[]> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.getNextActions(taskCode);\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return [];\n }\n\n this.state.setNextActions(response);\n return response;\n } catch (error) {\n console.error('Failed to load next actions:', error);\n return [];\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async loadPreviousActions(taskCode: string): Promise<WorkflowAction[]> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.getPreviousActions(taskCode);\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return [];\n }\n\n this.state.setNextActions(response);\n return response;\n } catch (error) {\n console.error('Failed to load previous actions:', error);\n return [];\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async loadAllPreviousActions(taskCode: string): Promise<WorkflowAction[]> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.getAllPreviousActions(taskCode);\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return [];\n }\n\n this.state.setNextActions(response);\n return response;\n } catch (error) {\n console.error('Failed to load all previous actions:', error);\n return [];\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async loadNextActors(\n taskCode: string,\n forCurrentStage: boolean,\n stageCode?: string,\n ): Promise<Actor[]> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.getNextActors(taskCode, forCurrentStage, stageCode);\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return [];\n }\n\n this.state.setNextActors(response);\n return response;\n } catch (error) {\n console.error('Failed to load next actors:', error);\n return [];\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async loadTaskForms(taskCode: string): Promise<Form[]> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.getCurrentFormsForTask(taskCode);\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return [];\n }\n\n this.state.setTaskForms(response);\n return response;\n } catch (error) {\n console.error('Failed to load task forms:', error);\n return [];\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async passOn(\n action: WorkflowAction,\n task: Task,\n comment: string,\n recipient: string | null\n ): Promise<void> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.passOn(\n action.FromStage,\n action.ToStage,\n {\n ...task,\n FullStages: [],\n CurrentActors: task.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n },\n comment,\n recipient ?? undefined\n );\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return;\n }\n\n this.utilService.showSuccess('Task passed on successfully');\n this.state.resetState();\n } catch (error) {\n console.error('Failed to pass on task:', error);\n throw error;\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async passBack(\n action: WorkflowAction,\n task: Task,\n comment: string,\n recipient: string | null\n ): Promise<void> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.passBack(\n action.ToStage,\n action.FromStage,\n {\n ...task,\n FullStages: [],\n CurrentActors: task.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n },\n comment,\n recipient ?? undefined\n );\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return;\n }\n\n this.utilService.showSuccess('Task passed back successfully');\n this.state.resetState();\n } catch (error) {\n console.error('Failed to pass back task:', error);\n throw error;\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async skipTo(\n from: WorkflowAction['FromStage'],\n to: WorkflowAction['ToStage'],\n task: Task,\n comment: string,\n recipient: string | null\n ): Promise<void> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.skipTo(\n from,\n to,\n {\n ...task,\n FullStages: [],\n CurrentActors: task.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n },\n comment,\n recipient ?? undefined\n );\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return;\n }\n\n this.utilService.showSuccess('Task skipped successfully');\n this.state.resetState();\n } catch (error) {\n console.error('Failed to skip task:', error);\n throw error;\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async pickTask(\n targetStage: string,\n task: Task,\n comment: string,\n recipient: string | null\n ): Promise<void> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.pickTask(\n targetStage,\n {\n ...task,\n FullStages: [],\n CurrentActors: task.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n },\n comment,\n recipient ?? undefined\n );\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return;\n }\n\n this.utilService.showSuccess('Task picked successfully');\n this.state.resetState();\n } catch (error) {\n console.error('Failed to pick task:', error);\n throw error;\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async releaseTask(\n targetStage: string,\n task: Task,\n comment: string,\n recipient: string | null\n ): Promise<void> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.releaseTask(\n targetStage,\n {\n ...task,\n FullStages: [],\n CurrentActors: task.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n },\n comment,\n recipient ?? undefined\n );\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return;\n }\n\n this.utilService.showSuccess('Task released successfully');\n this.state.resetState();\n } catch (error) {\n console.error('Failed to release task:', error);\n throw error;\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async followTask(actorId: string, task: Task): Promise<void> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.followTask(\n actorId,\n {\n ...task,\n FullStages: [],\n CurrentActors: task.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n }\n );\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return;\n }\n\n this.utilService.showSuccess('Task followed successfully');\n this.state.resetState();\n } catch (error) {\n console.error('Failed to follow task:', error);\n throw error;\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async unfollowTask(taskId: string, actorId: string): Promise<void> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.unfollowTask(taskId, actorId);\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return;\n }\n\n this.utilService.showSuccess('Task unfollowed successfully');\n this.state.resetState();\n } catch (error) {\n console.error('Failed to unfollow task:', error);\n throw error;\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async reAssign(task: Task, comment: string, fromUser?: string, toUser?: string): Promise<void> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.reAssign(\n {\n ...task,\n FullStages: [],\n CurrentActors: task.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n },\n comment,\n fromUser,\n toUser\n );\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return;\n }\n\n this.utilService.showSuccess('Task re-assigned successfully');\n this.state.resetState();\n } catch (error) {\n console.error('Failed to re-assign task:', error);\n throw error;\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n\n async fillForm(form: Form, taskCode: string): Promise<Form | null> {\n try {\n this.state.setIsUpdating(true);\n const response = await this.service.fillForm(form, taskCode);\n\n if (response instanceof ErrorResponse) {\n this.utilService.showError(response.ErrorMsg);\n return null;\n }\n\n this.utilService.showSuccess('Form filled successfully');\n return response;\n } catch (error) {\n console.error('Failed to fill form:', error);\n return null;\n } finally {\n this.state.setIsUpdating(false);\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BehaviorSubject, Subject, takeUntil } from 'rxjs';\nimport { DropDownModule, SvgModule, VerbenaButtonModule, VerbenDialogueModule, VerbenPopUpModule } from 'verben-ng-ui';\nimport { FormControlerModule } from 'verben-workflow-ui/src/lib/components/form-control';\nimport { FormTimerModule } from 'verben-workflow-ui/src/lib/components/form-timer';\nimport { Actor, DataType, Form, Task, WorkflowAction } from 'verben-workflow-ui/src/lib/models';\nimport { OperationPopupFacade } from './operation-popup.facade';\nimport { OperationPopupService } from './operation-popup.service';\nimport { OperationPopupState } from './operation-popup.state';\n\ntype ActionType = 'passon' | 'passback' | 'reassign' | 'skipto' | 'picktask' | 'releasetask' | 'followtask' | 'unfollowtask';\n\n@Component({\n selector: 'lib-operation-popup',\n standalone: true,\n imports: [CommonModule, FormsModule, VerbenPopUpModule, DropDownModule, VerbenaButtonModule, VerbenDialogueModule, FormControlerModule, FormTimerModule, SvgModule],\n providers: [OperationPopupService, OperationPopupState, OperationPopupFacade],\n templateUrl: './operation-popup.component.html',\n styleUrls: ['./operation-popup.component.css']\n})\nexport class OperationPopupComponent implements OnInit, OnDestroy {\n @Input() user!: string;\n @Input() task: Task | null = null;\n @Input() allowedActions: string[] = [];\n\n @Output() actionComplete = new EventEmitter<void>();\n\n // Internal popup visibility control\n isPopupOpen: boolean = false;\n isFormModalVisible: boolean = false;\n currentStep: 'action-selection' | 'action-form' = 'action-selection';\n\n // Action state\n activeActionType: ActionType | null = null;\n comment: string = '';\n recipientCode: string | null = null;\n selectedAction: BehaviorSubject<WorkflowAction | null> = new BehaviorSubject<WorkflowAction | null>(null);\n selectedStageCode: string | null = null;\n formSubmitted: boolean = false;\n\n // Data from facade\n nextActions: WorkflowAction[] = [];\n nextActors: Actor[] = [];\n stageForm: Form | null = null;\n active: number = 0;\n dataType: DataType = DataType.Text;\n\n private destroy$ = new Subject<void>();\n\n constructor(private facade: OperationPopupFacade) { }\n\n ngOnInit(): void {\n // Subscribe to facade observables\n this.facade.getNextActions$()\n .pipe(takeUntil(this.destroy$))\n .subscribe((data) => {\n this.nextActions = data;\n });\n\n this.facade.getNextActors$()\n .pipe(takeUntil(this.destroy$))\n .subscribe((data) => {\n this.nextActors = data;\n // Auto-select current user if available\n if (this.user && data.map(({ Identifier }) => Identifier).includes(this.user)) {\n this.recipientCode = this.user;\n }\n });\n\n this.facade.getTaskForms$()\n .pipe(takeUntil(this.destroy$))\n .subscribe((data) => {\n this.stageForm = data?.[0] || null;\n });\n\n // Load actors when action is selected\n this.selectedAction\n .pipe(takeUntil(this.destroy$))\n .subscribe((action) => {\n if (action && this.task) {\n this.facade.loadNextActors(this.task.Code, false, action.ToStage);\n }\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n // Get filtered actions based on allowedActions input\n get filteredActions(): { label: string; value: ActionType; requiresForm: boolean }[] {\n const allActions = [\n { label: 'Pass On', value: 'passon' as ActionType, requiresForm: true },\n { label: 'Pass Back', value: 'passback' as ActionType, requiresForm: true },\n { label: 'Re-Assign', value: 'reassign' as ActionType, requiresForm: false },\n { label: 'Skip To', value: 'skipto' as ActionType, requiresForm: true },\n { label: 'Pick Task', value: 'picktask' as ActionType, requiresForm: false },\n { label: 'Release Task', value: 'releasetask' as ActionType, requiresForm: false },\n { label: 'Follow Task', value: 'followtask' as ActionType, requiresForm: false },\n { label: 'Unfollow Task', value: 'unfollowtask' as ActionType, requiresForm: false },\n ];\n\n return allActions.filter(action => this.allowedActions.includes(action.value));\n }\n\n // Called when user clicks on an action from the list\n async onActionSelect(actionType: ActionType): Promise<void> {\n if (!this.task) return;\n\n this.activeActionType = actionType;\n this.comment = '';\n this.recipientCode = null;\n this.selectedAction.next(null);\n\n // Load necessary data based on action type\n switch (actionType) {\n case 'passon':\n await this.facade.loadNextActions(this.task.Code);\n await this.facade.loadTaskForms(this.task.Code);\n break;\n case 'passback':\n await this.facade.loadPreviousActions(this.task.Code);\n break;\n case 'skipto':\n await this.facade.loadAllPreviousActions(this.task.Code);\n break;\n case 'reassign':\n await this.facade.loadNextActors(this.task.Code, true);\n break;\n case 'picktask':\n case 'releasetask':\n // These use the task's full stages\n break;\n case 'followtask':\n case 'unfollowtask':\n // These don't need additional data\n break;\n }\n\n // Toggle popup: close then reopen for step transition\n this.isPopupOpen = false;\n setTimeout(() => {\n this.currentStep = 'action-form';\n this.isPopupOpen = true;\n }, 50);\n }\n\n // Handle action submission\n async handleActionSubmit(): Promise<void> {\n if (!this.task) return;\n\n let actionCompleted = false;\n\n try {\n switch (this.activeActionType) {\n case 'passon':\n actionCompleted = await this.handlePassOn();\n break;\n case 'passback':\n await this.handlePassBack();\n actionCompleted = true;\n break;\n case 'reassign':\n await this.handleReAssign();\n actionCompleted = true;\n break;\n case 'skipto':\n await this.handleSkipTo();\n actionCompleted = true;\n break;\n case 'picktask':\n await this.handlePickTask();\n actionCompleted = true;\n break;\n case 'releasetask':\n await this.handleReleaseTask();\n actionCompleted = true;\n break;\n case 'followtask':\n await this.handleFollowTask();\n actionCompleted = true;\n break;\n case 'unfollowtask':\n await this.handleUnfollowTask();\n actionCompleted = true;\n break;\n }\n\n // Only close popup and emit completion if action actually completed\n // (not waiting for form dialog)\n if (actionCompleted) {\n this.closePopup();\n this.actionComplete.emit();\n }\n } catch (error) {\n console.error('Action failed:', error);\n }\n }\n\n private async handlePassOn(): Promise<boolean> {\n if (this.stageForm && !this.formSubmitted) {\n // If there's a form and it hasn't been submitted yet, show the form modal\n this.isPopupOpen = false;\n this.isFormModalVisible = true;\n return false; // Action not completed yet, waiting for form\n }\n\n const selectedAction = this.selectedAction.getValue();\n if (selectedAction && this.task && this.comment) {\n await this.facade.passOn(selectedAction, this.task, this.comment, this.recipientCode);\n this.formSubmitted = false; // Reset for next time\n }\n return true; // Action completed\n }\n\n submitForm(): void {\n if (this.stageForm && this.task) {\n console.log('Submitting form...', this.stageForm);\n this.facade.fillForm(this.stageForm, this.task.Code)\n .then(() => {\n // fillForm API returns empty response, so just check that it didn't error\n console.log('Form filled successfully, proceeding with passOn...');\n this.stageForm = null;\n this.isFormModalVisible = false;\n this.formSubmitted = true;\n // Continue with passOn after form is filled\n this.handlePassOn().then((completed) => {\n console.log('passOn completed:', completed);\n if (completed) {\n this.closePopup();\n this.actionComplete.emit();\n }\n }).catch((error) => {\n console.error('Error in handlePassOn:', error);\n });\n })\n .catch((error) => {\n console.error('Error filling form:', error);\n });\n } else {\n console.error('Cannot submit form: stageForm or task is missing', {\n stageForm: this.stageForm,\n task: this.task\n });\n }\n }\n\n areRequiredPropertiesFilled(): boolean {\n if (!this.stageForm) return true;\n const properties = this.stageForm.Entities[this.active].Properties || [];\n // Check if all required properties have valid values\n return properties.every((property: any) => {\n return (\n !property.isRequired ||\n (property.Value !== undefined &&\n property.Value !== null &&\n property.Value !== '')\n );\n });\n }\n\n private async handlePassBack(): Promise<void> {\n const selectedAction = this.selectedAction.getValue();\n if (selectedAction && this.task && this.comment) {\n await this.facade.passBack(selectedAction, this.task, this.comment, this.recipientCode);\n }\n }\n\n private async handleReAssign(): Promise<void> {\n if (this.task && this.comment) {\n await this.facade.reAssign(this.task, this.comment, this.user, this.recipientCode || undefined);\n }\n }\n\n private async handleSkipTo(): Promise<void> {\n const selectedAction = this.selectedAction.getValue();\n if (selectedAction && this.task && this.comment) {\n await this.facade.skipTo(\n this.task.CurrentStages[0],\n selectedAction.ToStage,\n this.task,\n this.comment,\n this.recipientCode\n );\n }\n }\n\n private async handlePickTask(): Promise<void> {\n if (this.task && this.comment && this.selectedStageCode) {\n await this.facade.pickTask(this.selectedStageCode, this.task, this.comment, this.recipientCode);\n }\n }\n\n private async handleReleaseTask(): Promise<void> {\n if (this.task && this.comment && this.selectedStageCode) {\n await this.facade.releaseTask(this.selectedStageCode, this.task, this.comment, this.recipientCode);\n }\n }\n\n private async handleFollowTask(): Promise<void> {\n if (this.task && this.user) {\n await this.facade.followTask(this.user, this.task);\n }\n }\n\n private async handleUnfollowTask(): Promise<void> {\n if (this.task && this.user) {\n await this.facade.unfollowTask(this.task.Code, this.user);\n }\n }\n\n private closePopup(): void {\n this.isPopupOpen = false;\n this.isFormModalVisible = false;\n this.currentStep = 'action-selection';\n this.activeActionType = null;\n this.comment = '';\n this.recipientCode = null;\n this.selectedAction.next(null);\n this.selectedStageCode = null;\n this.nextActions = [];\n this.nextActors = [];\n this.stageForm = null;\n this.formSubmitted = false;\n }\n\n // Check if submit button should be enabled\n get canSubmit(): boolean {\n if (!this.comment) return false;\n\n switch (this.activeActionType) {\n case 'passon':\n case 'passback':\n case 'skipto':\n return !!this.selectedAction.getValue();\n case 'reassign':\n return !!this.recipientCode;\n case 'picktask':\n case 'releasetask':\n return !!this.selectedStageCode;\n case 'followtask':\n case 'unfollowtask':\n return true;\n default:\n return false;\n }\n }\n\n // Show action dropdown for certain action types\n get showActionDropdown(): boolean {\n return ['passon', 'passback', 'skipto'].includes(this.activeActionType || '');\n }\n\n // Show actor dropdown for certain action types\n get showActorDropdown(): boolean {\n return ['passon', 'passback', 'skipto', 'reassign', 'picktask', 'releasetask'].includes(this.activeActionType || '');\n }\n\n // Show stage dropdown for pick/release task\n get showStageDropdown(): boolean {\n return ['picktask', 'releasetask'].includes(this.activeActionType || '');\n }\n\n // Get label for submit button\n get submitButtonLabel(): string {\n const labels: Record<ActionType, string> = {\n passon: 'Pass On',\n passback: 'Pass Back',\n reassign: 'Re-Assign',\n skipto: 'Skip To',\n picktask: 'Pick Task',\n releasetask: 'Release Task',\n followtask: 'Follow',\n unfollowtask: 'Unfollow',\n };\n return labels[this.activeActionType || 'passon'] || 'Submit';\n }\n}\n","<verben-pop-Up [customStyles]=\"{ 'z-index': '99' }\" [enableMouseLeave]=\"false\" [customStyles]=\"{\n border: '1px solid #d4a10780',\n borderRadius: '5px',\n backgroundColor: 'white'\n }\" [(dropdownOpen)]=\"isPopupOpen\">\n\n <!-- Trigger (projected content from parent) -->\n <div dropdown-trigger>\n <ng-content select=\"[trigger]\"></ng-content>\n </div>\n\n <!-- Popup content -->\n <div class=\"bg-white rounded-sm\" dropdown-content>\n <!-- Step 1: Action Selection -->\n <div *ngIf=\"currentStep === 'action-selection'\">\n <div *ngFor=\"let action of filteredActions\" (click)=\"onActionSelect(action.value)\"\n class=\"cursor-pointer py-2 px-3 hover:bg-primary\">\n {{ action.label }}\n </div>\n </div>\n\n <!-- Step 2: Action Form -->\n <div *ngIf=\"currentStep === 'action-form'\" style=\"width: 16rem\">\n <div class=\"flex items-center gap-4 justify-between h-12 px-2 pt-4\">\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"\n (click)=\"currentStep = 'action-selection'; activeActionType = null\">\n <g opacity=\"0.6\">\n <path\n d=\"M6.74649 8.00338C6.91483 8.1347 7.0252 8.20455 7.11531 8.29396C7.98846 9.16222 8.85742 10.0347 9.72917 10.905C9.87167 11.0475 9.99391 11.1921 9.99321 11.4129C9.99251 11.6462 9.89472 11.8152 9.69564 11.9256C9.49307 12.038 9.2926 12.0206 9.10469 11.8899C9.03833 11.8438 8.98175 11.7845 8.92378 11.7272C7.85574 10.6592 6.79678 9.58203 5.71477 8.52867C5.3711 8.19407 5.38437 7.79173 5.70779 7.47599C6.7884 6.42123 7.84875 5.34551 8.91539 4.27607C9.11377 4.07769 9.32054 3.92262 9.623 4.04137C9.97924 4.18107 10.112 4.58901 9.89472 4.90335C9.82976 4.99765 9.74174 5.07728 9.66002 5.1597C8.80642 6.01469 7.95283 6.86968 7.09645 7.72257C7.01472 7.8043 6.91553 7.86856 6.74579 8.00408L6.74649 8.00338Z\"\n fill=\"black\" />\n </g>\n </svg>\n\n <h3 class=\"text-sm font-medium\">{{ submitButtonLabel }}</h3>\n </div>\n\n <div class=\"grid gap-2 max-h-96 overflow-y-auto p-2\">\n <!-- Action Dropdown (for PassOn, PassBack, SkipTo) -->\n <verben-drop-down *ngIf=\"showActionDropdown\" label=\"Action\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Action\"\n [options]=\"nextActions\" id=\"actions\" optionLabel=\"Name\" [ngModel]=\"selectedAction | async\"\n (ngModelChange)=\"selectedAction.next($event)\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Stage Dropdown (for PickTask, ReleaseTask) -->\n <verben-drop-down *ngIf=\"showStageDropdown\" label=\"Stages\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Stage\"\n [options]=\"task?.FullStages || []\" id=\"stages\" optionLabel=\"Name\" optionValue=\"Code\"\n [(ngModel)]=\"selectedStageCode\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Actor Dropdown -->\n <verben-drop-down *ngIf=\"showActorDropdown\" label=\"Actors\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" filterBy=\"Name\" [showClear]=\"true\" placeholder=\"Select Actor\"\n [options]=\"nextActors\" id=\"actors\" optionLabel=\"Name\" optionValue=\"Identifier\"\n [(ngModel)]=\"recipientCode\" class=\"form-control\">\n </verben-drop-down>\n\n <!-- Comment Textarea -->\n <textarea [(ngModel)]=\"comment\" placeholder=\"Enter Comment\"\n class=\"w-full p-1 text-xs border border-primary rounded-md\" style=\"height: 8rem\" [cols]=\"8\">\n </textarea>\n\n <!-- Submit Button -->\n <verbena-button [disable]=\"!canSubmit\" [text]=\"submitButtonLabel\" (click)=\"handleActionSubmit()\"\n class=\"text-xs w-full\" bgColor=\"var(--vbn-color-primary)\" textColor=\"var(--vbn-color-on-primary)\" borderRadius=\"10px\" fontSize=\"14px\"\n pd=\"10px 20px\" width=\"100%\" height=\"32px\">\n {{ submitButtonLabel }}\n </verbena-button>\n </div>\n </div>\n </div>\n</verben-pop-Up>\n\n<!-- Form Dialog for PassOn when form is required -->\n<verben-dialogue [showCloseIcon]=\"true\" [dismissOutsideClick]=\"true\" [closeOnEscape]=\"true\" [mode]=\"'drawer'\"\n [padding]=\"'0px'\" [drawerWidth]=\"'400px'\" [disableFooter]=\"false\" [isVisible]=\"isFormModalVisible\"\n [modalData]=\"stageForm\" [headerTemplate]=\"headerTemplate\" [bodyTemplate]=\"bodyTemplate\" [showCloseIcon]=\"false\" [style]=\"{ 'z-index': '99' }\">\n</verben-dialogue>\n<ng-template #headerTemplate>\n <div class=\"bg-[var(--vbn-color-primary)] px-6 py-4 flex justify-between items-center\">\n <h1>Form</h1>\n <verben-svg class=\"cursor-pointer\" [icon]=\"'close-circle'\" (click)=\"isFormModalVisible = false\" [width]=\"15\"\n [height]=\"15\" [stroke]=\"'var(--vbn-color-surface)'\"></verben-svg>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div *ngIf=\"stageForm?.Entities?.[active]; else emptyState\" class=\"mt-4\">\n <form-control [dataType]=\"dataType\"\n [formProperties]=\"stageForm?.Entities?.[active]?.Properties ?? []\"></form-control>\n\n <div class=\"flex gap-3 justify-end\">\n <verbena-button class=\"verben-primary-button\" (click)=\"submitForm()\"\n [disable]=\"!areRequiredPropertiesFilled()\" text=\"Save\"></verbena-button>\n </div>\n </div>\n\n <!-- Empty state template -->\n <ng-template #emptyState>\n <p class=\"mt-4 p-4 text-gray-600 text-center\">\n No entries available for the selected form group.\n </p>\n </ng-template>\n </div>\n</ng-template>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.OperationPopupService","i2.OperationPopupState","i3","i1.OperationPopupFacade"],"mappings":"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"}
@@ -34,12 +34,12 @@ class StageDetailsComponent {
34
34
  getStringValue(data, prop) {
35
35
  return data[prop].toString();
36
36
  }
37
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StageDetailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StageDetailsComponent, selector: "lib-stage-details", inputs: { RulesOptions: "RulesOptions", TagsOptions: "TagsOptions", isModalVisible: "isModalVisible", stageDetail: "stageDetail" }, outputs: { modalVisibilityChange: "modalVisibilityChange" }, ngImport: i0, template: "<verben-dialogue\n [showCloseIcon]=\"true\"\n [dismissOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [mode]=\"'drawer'\"\n [padding]=\"'0px'\"\n [drawerWidth]=\"'400px'\"\n [disableFooter]=\"false\"\n (openModal)=\"onModalOpen($event)\"\n (closeModal)=\"onModalClose($event)\"\n [isVisible]=\"isModalVisible\"\n [modalData]=\"stageDetail\"\n [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\"\n [showCloseIcon]=\"false\"\n (closeModal)=\"onModalClose($event)\"\n>\n</verben-dialogue>\n<ng-template #headerTemplate>\n <div class=\"bg-[#FFE681] px-6 py-4 flex justify-between items-center\">\n <h1>Stage</h1>\n <verben-svg\n class=\"cursor-pointer\"\n [icon]=\"'close-circle'\"\n (click)=\"isModalVisible = false\"\n [width]=\"15\"\n [height]=\"15\"\n [stroke]=\"'#fff'\"\n ></verben-svg>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div class=\"px-6 py-4 flex flex-col gap-6\">\n <verbena-input\n label=\"Stage Name\"\n [(ngModel)]=\"stageDetail.Name\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Stage Name\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <verbena-input\n label=\"Description\"\n [(ngModel)]=\"stageDetail.Description\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Description\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <verbena-input\n label=\"Receipient Count\"\n [ngModel]=\"getStringValue(stageDetail, 'Count')\"\n (valueChange)=\"convertToInt($event, stageDetail, 'Count')\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Receipient Count\"\n type=\"number\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <div class=\"flex flex-col gap-1\">\n <div>Pass On Rule</div>\n <verben-drop-down\n width=\"100%\"\n [(ngModel)]=\"stageDetail.Rule\"\n placeholder=\"Select Pass On Rule\"\n [(options)]=\"RulesOptions\"\n >\n </verben-drop-down>\n </div>\n <verbena-input\n [ngModel]=\"getStringValue(stageDetail, 'Duration')\"\n (valueChange)=\"convertToInt($event, stageDetail, 'Duration')\"\n label=\"Duration\"\n type=\"number\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Duration\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <div class=\"flex flex-col gap-1\">\n <div>Tag</div>\n <verben-drop-down\n width=\"100%\"\n [(ngModel)]=\"stageDetail.Tag\"\n placeholder=\"Select Tag\"\n [(options)]=\"TagsOptions\"\n >\n </verben-drop-down>\n </div>\n <verbena-button\n bgColor=\"#FFE681\"\n [width]=\"'100%'\"\n [text]=\"'Save'\"\n ></verbena-button>\n </div>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: i1.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.VerbenaInputComponent, selector: "verbena-input", inputs: ["label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "component", type: i1.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "component", type: i1.VerbenDialogueComponent, selector: "verben-dialogue", inputs: ["dialogueWidth", "headerTemplate", "bodyTemplate", "footerTemplate", "showCloseIcon", "dismissOutsideClick", "closeOnEscape", "isVisible", "size", "backdropColor", "customClass", "disableFooter", "margin", "padding", "borderRadius", "dialogueBgColor", "width", "closeIconClass", "boxShadow", "enableTransition", "modalData", "mode", "position", "drawerWidth"], outputs: ["openModal", "closeModal"] }, { kind: "component", type: i1.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }] });
37
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StageDetailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: StageDetailsComponent, selector: "lib-stage-details", inputs: { RulesOptions: "RulesOptions", TagsOptions: "TagsOptions", isModalVisible: "isModalVisible", stageDetail: "stageDetail" }, outputs: { modalVisibilityChange: "modalVisibilityChange" }, ngImport: i0, template: "<verben-dialogue\n [showCloseIcon]=\"true\"\n [dismissOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [mode]=\"'drawer'\"\n [padding]=\"'0px'\"\n [drawerWidth]=\"'400px'\"\n [disableFooter]=\"false\"\n (openModal)=\"onModalOpen($event)\"\n (closeModal)=\"onModalClose($event)\"\n [isVisible]=\"isModalVisible\"\n [modalData]=\"stageDetail\"\n [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\"\n [showCloseIcon]=\"false\"\n (closeModal)=\"onModalClose($event)\"\n>\n</verben-dialogue>\n<ng-template #headerTemplate>\n <div class=\"bg-[var(--vbn-color-primary)] px-6 py-4 flex justify-between items-center\">\n <h1>Stage</h1>\n <verben-svg\n class=\"cursor-pointer\"\n [icon]=\"'close-circle'\"\n (click)=\"isModalVisible = false\"\n [width]=\"15\"\n [height]=\"15\"\n [stroke]=\"'var(--vbn-color-surface)'\"\n ></verben-svg>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div class=\"px-6 py-4 flex flex-col gap-6\">\n <verbena-input\n label=\"Stage Name\"\n [(ngModel)]=\"stageDetail.Name\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Stage Name\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <verbena-input\n label=\"Description\"\n [(ngModel)]=\"stageDetail.Description\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Description\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <verbena-input\n label=\"Receipient Count\"\n [ngModel]=\"getStringValue(stageDetail, 'Count')\"\n (valueChange)=\"convertToInt($event, stageDetail, 'Count')\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Receipient Count\"\n type=\"number\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <div class=\"flex flex-col gap-1\">\n <div>Pass On Rule</div>\n <verben-drop-down\n width=\"100%\"\n [(ngModel)]=\"stageDetail.Rule\"\n placeholder=\"Select Pass On Rule\"\n [(options)]=\"RulesOptions\"\n >\n </verben-drop-down>\n </div>\n <verbena-input\n [ngModel]=\"getStringValue(stageDetail, 'Duration')\"\n (valueChange)=\"convertToInt($event, stageDetail, 'Duration')\"\n label=\"Duration\"\n type=\"number\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Duration\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <div class=\"flex flex-col gap-1\">\n <div>Tag</div>\n <verben-drop-down\n width=\"100%\"\n [(ngModel)]=\"stageDetail.Tag\"\n placeholder=\"Select Tag\"\n [(options)]=\"TagsOptions\"\n >\n </verben-drop-down>\n </div>\n <verbena-button\n bgColor=\"var(--vbn-color-primary)\"\n [width]=\"'100%'\"\n [text]=\"'Save'\"\n ></verbena-button>\n </div>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "component", type: i1.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i1.VerbenaInputComponent, selector: "verbena-input", inputs: ["disabled", "label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "component", type: i1.VerbenaButtonComponent, selector: "verbena-button", inputs: ["type", "text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }, { kind: "component", type: i1.VerbenDialogueComponent, selector: "verben-dialogue", inputs: ["dialogueWidth", "headerTemplate", "bodyTemplate", "footerTemplate", "showCloseIcon", "dismissOutsideClick", "closeOnEscape", "isVisible", "size", "backdropColor", "customClass", "disableFooter", "margin", "padding", "borderRadius", "dialogueBgColor", "width", "closeIconClass", "boxShadow", "enableTransition", "modalData", "mode", "position", "drawerWidth"], outputs: ["openModal", "closeModal"] }, { kind: "component", type: i1.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "overlayWidth", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "refPageSize", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }] });
39
39
  }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StageDetailsComponent, decorators: [{
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StageDetailsComponent, decorators: [{
41
41
  type: Component,
42
- args: [{ selector: 'lib-stage-details', template: "<verben-dialogue\n [showCloseIcon]=\"true\"\n [dismissOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [mode]=\"'drawer'\"\n [padding]=\"'0px'\"\n [drawerWidth]=\"'400px'\"\n [disableFooter]=\"false\"\n (openModal)=\"onModalOpen($event)\"\n (closeModal)=\"onModalClose($event)\"\n [isVisible]=\"isModalVisible\"\n [modalData]=\"stageDetail\"\n [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\"\n [showCloseIcon]=\"false\"\n (closeModal)=\"onModalClose($event)\"\n>\n</verben-dialogue>\n<ng-template #headerTemplate>\n <div class=\"bg-[#FFE681] px-6 py-4 flex justify-between items-center\">\n <h1>Stage</h1>\n <verben-svg\n class=\"cursor-pointer\"\n [icon]=\"'close-circle'\"\n (click)=\"isModalVisible = false\"\n [width]=\"15\"\n [height]=\"15\"\n [stroke]=\"'#fff'\"\n ></verben-svg>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div class=\"px-6 py-4 flex flex-col gap-6\">\n <verbena-input\n label=\"Stage Name\"\n [(ngModel)]=\"stageDetail.Name\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Stage Name\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <verbena-input\n label=\"Description\"\n [(ngModel)]=\"stageDetail.Description\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Description\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <verbena-input\n label=\"Receipient Count\"\n [ngModel]=\"getStringValue(stageDetail, 'Count')\"\n (valueChange)=\"convertToInt($event, stageDetail, 'Count')\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Receipient Count\"\n type=\"number\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <div class=\"flex flex-col gap-1\">\n <div>Pass On Rule</div>\n <verben-drop-down\n width=\"100%\"\n [(ngModel)]=\"stageDetail.Rule\"\n placeholder=\"Select Pass On Rule\"\n [(options)]=\"RulesOptions\"\n >\n </verben-drop-down>\n </div>\n <verbena-input\n [ngModel]=\"getStringValue(stageDetail, 'Duration')\"\n (valueChange)=\"convertToInt($event, stageDetail, 'Duration')\"\n label=\"Duration\"\n type=\"number\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Duration\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <div class=\"flex flex-col gap-1\">\n <div>Tag</div>\n <verben-drop-down\n width=\"100%\"\n [(ngModel)]=\"stageDetail.Tag\"\n placeholder=\"Select Tag\"\n [(options)]=\"TagsOptions\"\n >\n </verben-drop-down>\n </div>\n <verbena-button\n bgColor=\"#FFE681\"\n [width]=\"'100%'\"\n [text]=\"'Save'\"\n ></verbena-button>\n </div>\n </div>\n</ng-template>\n" }]
42
+ args: [{ selector: 'lib-stage-details', template: "<verben-dialogue\n [showCloseIcon]=\"true\"\n [dismissOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [mode]=\"'drawer'\"\n [padding]=\"'0px'\"\n [drawerWidth]=\"'400px'\"\n [disableFooter]=\"false\"\n (openModal)=\"onModalOpen($event)\"\n (closeModal)=\"onModalClose($event)\"\n [isVisible]=\"isModalVisible\"\n [modalData]=\"stageDetail\"\n [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\"\n [showCloseIcon]=\"false\"\n (closeModal)=\"onModalClose($event)\"\n>\n</verben-dialogue>\n<ng-template #headerTemplate>\n <div class=\"bg-[var(--vbn-color-primary)] px-6 py-4 flex justify-between items-center\">\n <h1>Stage</h1>\n <verben-svg\n class=\"cursor-pointer\"\n [icon]=\"'close-circle'\"\n (click)=\"isModalVisible = false\"\n [width]=\"15\"\n [height]=\"15\"\n [stroke]=\"'var(--vbn-color-surface)'\"\n ></verben-svg>\n </div>\n</ng-template>\n\n<ng-template #bodyTemplate>\n <div>\n <div class=\"px-6 py-4 flex flex-col gap-6\">\n <verbena-input\n label=\"Stage Name\"\n [(ngModel)]=\"stageDetail.Name\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Stage Name\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <verbena-input\n label=\"Description\"\n [(ngModel)]=\"stageDetail.Description\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Description\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <verbena-input\n label=\"Receipient Count\"\n [ngModel]=\"getStringValue(stageDetail, 'Count')\"\n (valueChange)=\"convertToInt($event, stageDetail, 'Count')\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Receipient Count\"\n type=\"number\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <div class=\"flex flex-col gap-1\">\n <div>Pass On Rule</div>\n <verben-drop-down\n width=\"100%\"\n [(ngModel)]=\"stageDetail.Rule\"\n placeholder=\"Select Pass On Rule\"\n [(options)]=\"RulesOptions\"\n >\n </verben-drop-down>\n </div>\n <verbena-input\n [ngModel]=\"getStringValue(stageDetail, 'Duration')\"\n (valueChange)=\"convertToInt($event, stageDetail, 'Duration')\"\n label=\"Duration\"\n type=\"number\"\n [border]=\"'1px solid #9A9FBF66'\"\n placeHolder=\"Enter Duration\"\n [bgColor]=\"'white'\"\n ></verbena-input>\n <div class=\"flex flex-col gap-1\">\n <div>Tag</div>\n <verben-drop-down\n width=\"100%\"\n [(ngModel)]=\"stageDetail.Tag\"\n placeholder=\"Select Tag\"\n [(options)]=\"TagsOptions\"\n >\n </verben-drop-down>\n </div>\n <verbena-button\n bgColor=\"var(--vbn-color-primary)\"\n [width]=\"'100%'\"\n [text]=\"'Save'\"\n ></verbena-button>\n </div>\n </div>\n</ng-template>\n" }]
43
43
  }], propDecorators: { RulesOptions: [{
44
44
  type: Input
45
45
  }], TagsOptions: [{
@@ -53,11 +53,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
53
53
  }] } });
54
54
 
55
55
  class StageDetailsModule {
56
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StageDetailsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
57
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: StageDetailsModule, declarations: [StageDetailsComponent], imports: [CommonModule, SharedModule], exports: [StageDetailsComponent] });
58
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StageDetailsModule, imports: [CommonModule, SharedModule] });
56
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StageDetailsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
57
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: StageDetailsModule, declarations: [StageDetailsComponent], imports: [CommonModule, SharedModule], exports: [StageDetailsComponent] });
58
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StageDetailsModule, imports: [CommonModule, SharedModule] });
59
59
  }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StageDetailsModule, decorators: [{
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: StageDetailsModule, decorators: [{
61
61
  type: NgModule,
62
62
  args: [{
63
63
  declarations: [StageDetailsComponent],