{"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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"}