verben-workflow-ui 0.5.37 → 0.5.39
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.
- package/esm2022/src/lib/components/form-group/form-fields/form-fields.component.mjs +3 -4
- package/esm2022/src/lib/components/my-queue/my-queue.component.mjs +3 -3
- package/esm2022/src/lib/components/my-queue/my-queue.facade.mjs +2 -2
- package/esm2022/src/lib/components/tasks/tasks.component.mjs +3 -3
- package/fesm2022/verben-workflow-ui-src-lib-components-form-group.mjs +2 -3
- package/fesm2022/verben-workflow-ui-src-lib-components-form-group.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-my-queue.mjs +3 -3
- package/fesm2022/verben-workflow-ui-src-lib-components-my-queue.mjs.map +1 -1
- package/fesm2022/verben-workflow-ui-src-lib-components-tasks.mjs +2 -2
- package/fesm2022/verben-workflow-ui-src-lib-components-tasks.mjs.map +1 -1
- package/package.json +35 -35
- package/styles/styles.css +35 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verben-workflow-ui-src-lib-components-my-queue.mjs","sources":["../../../projects/verben-workflow-ui/src/lib/components/my-queue/my-queue.columns.ts","../../../projects/verben-workflow-ui/src/lib/components/my-queue/my-queue.service.ts","../../../projects/verben-workflow-ui/src/lib/components/my-queue/my-queue.state.ts","../../../projects/verben-workflow-ui/src/lib/components/my-queue/my-queue.facade.ts","../../../projects/verben-workflow-ui/src/lib/components/my-queue/my-queue.component.ts","../../../projects/verben-workflow-ui/src/lib/components/my-queue/my-queue.component.html","../../../projects/verben-workflow-ui/src/lib/components/my-queue/tasks.form.component.ts","../../../projects/verben-workflow-ui/src/lib/components/my-queue/tasks.form.component.html","../../../projects/verben-workflow-ui/src/lib/components/my-queue/my-queue.module.ts","../../../projects/verben-workflow-ui/src/lib/components/my-queue/verben-workflow-ui-src-lib-components-my-queue.ts"],"sourcesContent":["import { ColumnDefinition } from 'verben-ng-ui';\nimport { Task } from 'verben-workflow-ui/src/lib/models';\n\nexport const columns: ColumnDefinition<Task>[] = [\n {\n id: 'task',\n header: 'TASK',\n accessorKey: 'Name',\n },\n {\n id: 'stage',\n header: 'STAGE',\n accessorFn: (row) =>\n row.FullStages?.slice(0, 3)\n ?.map(({ Name }) => Name)\n .join(', ') +\n (row.FullStages?.length && row.FullStages?.length > 3\n ? ` ... + ${row.FullStages?.length - 3}`\n : ''),\n },\n {\n id: 'history',\n header: 'HISTORY',\n accessorKey: 'Code',\n },\n {\n id: 'workflow',\n header: 'WORKFLOW',\n accessorKey: 'WorkflowCode',\n },\n { id: 'actions', header: 'Actions' },\n];\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { Actor, Form, Paged, Task, WorkflowAction } from 'verben-workflow-ui/src/lib/models';\nimport { HttpWebRequestService } from 'verben-workflow-ui/src/lib/services';\n\n@Injectable()\nexport class MyQueueService {\n private readonly BASE_URL = 'Task';\n\n constructor(private httpService: HttpWebRequestService) { }\n\n /**\n * Get tasks with pagination and sorting\n * @param skip Number of records to skip\n * @param limit Number of records to take\n * @param sortParam Sort parameter\n * @param sortOrder Sort order ('asc' or 'desc')\n * @returns Promise containing the tasks\n */\n getTasks(\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string\n ): Promise<Paged<Task>> {\n const url = `${this.BASE_URL}/GetTasks/${skip}/${limit}/${sortParam}/${sortOrder}`;\n return this.httpService.get(url) as Promise<Paged<Task>>;\n }\n\n /**\n * Get tasks with additional parameter, pagination and sorting\n * @param param Search parameter\n * @param skip Number of records to skip\n * @param limit Number of records to take\n * @param sortParam Sort parameter\n * @param sortOrder Sort order ('asc' or 'desc')\n * @returns Promise containing the filtered tasks\n */\n getTaskWithParam(\n param: string,\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string\n ): Promise<Paged<Task>> {\n const url = `${this.BASE_URL}/GetTaskWithParam/${param}/${skip}/${limit}/${sortParam}/${sortOrder}`;\n return this.httpService.get(url) as Promise<Paged<Task>>;\n }\n\n /**\n * Save multiple tasks\n * @param requests Array of tasks to save\n * @returns Promise containing the save operation result\n */\n saveTasks(requests: Task[]): Promise<any> {\n const url = `${this.BASE_URL}/SaveTasks`;\n return this.httpService.post(url, requests);\n }\n\n /**\n * Approve or reject multiple tasks\n * @param requests Array of tasks to save\n * @param isApproval True for approval, false for decline\n * @returns Promise containing the save operation result\n */\n processTasks(requests: Task[], isApproval: boolean): Promise<any> {\n const url = `${this.BASE_URL}/TaskAction/${isApproval}`;\n return this.httpService.post(url, requests);\n }\n\n /**\n * Delete multiple tasks\n * @param requestIds Array of request IDs to delete\n * @returns Observable containing the delete operation result\n */\n deleteTasks(requestIds: string[]): Observable<any> {\n const url = `${this.BASE_URL}/DeleteTasks`;\n return this.httpService.delete(`${url}?data=${requestIds.join(',')}`);\n }\n\n getTasksForUser(\n user: string,\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string\n ): Promise<Paged<Task>> {\n const url = `${this.BASE_URL}/GetTasksForUser/${skip}/${limit}/${sortParam}/${sortOrder}/${user}`;\n return this.httpService.get(url) as Promise<Paged<Task>>;\n }\n\n getQueueTasksForUser(\n user: string,\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string\n ): Promise<Paged<Task>> {\n const url = `${this.BASE_URL}/GetQueueTasksForUser/${skip}/${limit}/${sortParam}/${sortOrder}/${user}`;\n return this.httpService.get(url) as Promise<Paged<Task>>;\n }\n\n getPossibleTasksForUser(\n user: string,\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string\n ): Promise<Paged<Task>> {\n const url = `${this.BASE_URL}/GetPossibleTasksForUser/${skip}/${limit}/${sortParam}/${sortOrder}/${user}`;\n return this.httpService.get(url) as Promise<Paged<Task>>;\n }\n\n getNextActions(taskCode: string): Promise<WorkflowAction[]> {\n const url = `${this.BASE_URL}/GetNextActions/${taskCode}`;\n return this.httpService.get(url) as Promise<WorkflowAction[]>;\n }\n\n getPreviousActions(taskCode: string): Promise<WorkflowAction[]> {\n const url = `${this.BASE_URL}/GetPreviousActions/${taskCode}`;\n return this.httpService.get(url) as Promise<WorkflowAction[]>;\n }\n\n getAllPreviousActions(taskCode: string): Promise<WorkflowAction[]> {\n const url = `${this.BASE_URL}/GetAllPreviousActions/${taskCode}`;\n return this.httpService.get(url) as Promise<WorkflowAction[]>;\n }\n\n getNextActors(\n taskCode: string,\n forCurrentStage: boolean,\n stageCode?: string,\n ): Promise<Actor[]> {\n const url = `${this.BASE_URL}/GetNextActors/${taskCode}${'/' + forCurrentStage + (stageCode ? '/' + stageCode : '')}`;\n return this.httpService.get(url) as Promise<Actor[]>;\n }\n\n passOn(\n fromStage: string,\n toStage: string,\n task: Task,\n comment: string,\n recipient?: string\n ): Promise<Task> {\n const url = `${this.BASE_URL}/PassOn/${fromStage}/${toStage}/${comment}${recipient ? '/' + recipient : ''\n }`;\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> {\n const url = `${this.BASE_URL}/PassBack/${fromStage}/${toStage}/${comment}${recipient ? '/' + recipient : ''\n }`;\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> {\n const url = `${this.BASE_URL}/PickTask/${comment}/${targetStage}${recipient ? '/' + recipient : ''\n }`;\n return this.httpService.post(url, task);\n }\n\n unPickTask(\n targetStage: string,\n task: Task,\n comment: string,\n recipient?: string\n ): Promise<Task> {\n const url = `${this.BASE_URL}/UnPickTask/${comment}/${targetStage}${recipient ? '/' + recipient : ''\n }`;\n return this.httpService.post(url, task);\n }\n\n followTask(actorId: string, task: Task): Promise<Task> {\n const url = `${this.BASE_URL}/FollowTask/${actorId}`;\n return this.httpService.post(url, task);\n }\n\n unFollowTask(\n taskId: string,\n actorId: string\n // task: Task,\n ): Promise<void> {\n const url = `${this.BASE_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> {\n const url = `${this.BASE_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> {\n const url = `${this.BASE_URL}/SkipTo/${fromStage}/${toStage}/${comment}${recipient ? '/' + recipient : ''\n }/${isBackward}`;\n return this.httpService.post(url, task);\n }\n\n getCurrentFormsForTask(taskCode: string): Promise<Form[]> {\n const url = `Task/GetCurrentFormsForTask/${taskCode}`;\n return this.httpService.get(url) as Promise<Form[]>;\n }\n\n fillForm(form: Form, taskCode: string): Promise<Form> {\n const url = `Form/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, QueryParams, SortDirection, Task, WorkflowAction } from 'verben-workflow-ui/src/lib/models';\n\n@Injectable()\nexport class MyQueueState {\n private updating$ = new BehaviorSubject<boolean>(false);\n private tasks$ = new BehaviorSubject<Task[]>([]);\n private queryParams$ = new BehaviorSubject<\n QueryParams<Task> & { user?: string }\n >({\n skip: 0,\n limit: 20,\n sortParam: 'CreatedAt',\n sortOrder: SortDirection.Desc,\n });\n private nextActions$ = new BehaviorSubject<WorkflowAction[]>([]);\n private nextActors$ = new BehaviorSubject<Actor[]>([]);\n private taskForms$ = new BehaviorSubject<Form[]>([]);\n\n isUpdating$(): Observable<boolean> {\n return this.updating$.asObservable();\n }\n\n setUpdating(isUpdating: boolean): void {\n this.updating$.next(isUpdating);\n }\n\n getRequests$(): Observable<Task[]> {\n return this.tasks$.asObservable();\n }\n\n setRequests(tasks: Task[]): void {\n this.tasks$.next(tasks);\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 setNextActions(nextActions: WorkflowAction[]): void {\n this.nextActions$.next(nextActions);\n }\n\n setNextActors(nextActors: Actor[]): void {\n this.nextActors$.next(nextActors);\n }\n\n setTaskForms(taskForms: Form[]): void {\n this.taskForms$.next(taskForms);\n }\n\n getQueryParams$(): Observable<QueryParams<Task>> {\n return this.queryParams$.asObservable();\n }\n\n getQueryParamsValue(): QueryParams<Task> & { user?: string } {\n return this.queryParams$.getValue();\n }\n\n updateQueryParams(params: Partial<QueryParams<Task>>): void {\n this.queryParams$.next({ ...this.queryParams$.getValue(), ...params });\n }\n\n addRequest(task: Task): void {\n const currentValue = this.tasks$.getValue();\n this.tasks$.next([task, ...currentValue]);\n }\n\n updateRequest(updatedRequest: Task): void {\n const tasks = this.tasks$.getValue();\n const index = tasks.findIndex((r) => r.Code === updatedRequest.Code);\n if (index !== -1) {\n tasks[index] = updatedRequest;\n this.tasks$.next([...tasks]);\n }\n }\n\n removeRequest(taskCode: string): void {\n const currentValue = this.tasks$.getValue();\n this.tasks$.next(currentValue.filter((r) => r.Code !== taskCode));\n }\n\n appendRequests(newRequests: Task[]): void {\n const currentRequests = this.tasks$.getValue();\n this.tasks$.next([...currentRequests, ...newRequests]);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, lastValueFrom } from 'rxjs';\nimport { Actor, Form, QueryParams, Task, WorkflowAction } from 'verben-workflow-ui/src/lib/models';\nimport { UtilService } from 'verben-workflow-ui/src/lib/services';\nimport { MyQueueService } from './my-queue.service';\nimport { MyQueueState } from './my-queue.state';\n\n@Injectable()\nexport class MyQueueFacade {\n constructor(\n private service: MyQueueService,\n private state: MyQueueState,\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.isUpdating$();\n }\n\n getRequests$(): Observable<Task[]> {\n return this.state.getRequests$();\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 getQueryParams$(): Observable<QueryParams<Task>> {\n return this.state.getQueryParams$();\n }\n\n addNewRequest(task: Task) {\n this.state.addRequest(task);\n }\n\n async loadRequests(queue: boolean = false): Promise<void> {\n try {\n this.state.setUpdating(true);\n const params = this.state.getQueryParamsValue();\n\n const { Skip, PageSize, Result } = queue\n ? await this.service.getQueueTasksForUser(\n params.user || '',\n params.skip,\n params.limit,\n params.sortParam || 'CreatedDate',\n params.sortOrder\n )\n : await this.service.getTasksForUser(\n params.user || '',\n params.skip,\n params.limit,\n params.sortParam || 'CreatedDate',\n params.sortOrder\n );\n\n if (Result) {\n this.state.setRequests(Result);\n this.state.updateQueryParams({ skip: Skip });\n }\n } catch (error) {\n console.error('Failed to load requests:', error);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async loadRequestsWithParam(param: string): Promise<void> {\n try {\n this.state.setUpdating(true);\n const params = this.state.getQueryParamsValue();\n\n const requests = await this.service.getTaskWithParam(\n param,\n params.skip,\n params.limit,\n params.sortParam || 'CreatedDate',\n params.sortOrder\n );\n\n this.state.setRequests(requests.Result);\n this.state.updateQueryParams({ skip: requests.Skip });\n } catch (error) {\n console.error('Failed to load requests with param:', error);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n updateQueryParams(\n params: Partial<QueryParams<Task>> & { user?: string }\n ): void {\n this.state.updateQueryParams(params);\n // this.loadRequests();\n }\n\n async addRequest(request: Partial<Task>): Promise<void> {\n try {\n this.state.setUpdating(true);\n const newRequest = { ...request } as Task;\n this.state.addRequest(newRequest);\n\n await this.service.saveTasks([newRequest]);\n this.utilService.showSuccess('Task created successfully');\n await this.loadRequests(); // Reload to get server-side changes\n } catch (error) {\n console.error('Failed to add request:', error);\n this.state.removeRequest(request.Code!);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async updateRequest(request: Task): Promise<void> {\n try {\n this.state.setUpdating(true);\n await this.service.saveTasks([request]);\n this.utilService.showSuccess('Task updated successfully');\n this.state.updateRequest(request);\n } catch (error) {\n console.error('Failed to update request:', error);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async deleteRequest(requestId: string): Promise<void> {\n try {\n this.state.setUpdating(true);\n await lastValueFrom(this.service.deleteTasks([requestId]));\n this.state.removeRequest(requestId);\n } catch (error) {\n console.error('Failed to delete request:', error);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async approveRequest(request: Task): Promise<void> {\n try {\n this.state.setUpdating(true);\n const response = await this.service.processTasks([request], true);\n // console.log(response);\n const data = (response as Task[])?.[0];\n if (data) {\n this.state.updateRequest(data);\n }\n } catch (error) {\n console.error('Failed to update request:', error);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async loadNextActions(taskCode: string): Promise<WorkflowAction[]> {\n try {\n this.state.setUpdating(true);\n const params = this.state.getQueryParamsValue();\n\n const requests = await this.service.getNextActions(taskCode);\n\n this.state.setNextActions(requests);\n\n // if (requests.length > 0) {\n // // this.selectedAction = actions[0];\n // this.loadNextActors(taskCode, requests[0].ToStage);\n // }\n\n return requests;\n } catch (error) {\n console.error('Failed to load requests with param:', error);\n return [];\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async loadPreviousActions(taskCode: string): Promise<WorkflowAction[]> {\n try {\n this.state.setUpdating(true);\n\n const requests = await this.service.getPreviousActions(taskCode);\n\n this.state.setNextActions(requests);\n\n return requests;\n } catch (error) {\n console.error('Failed to load requests with param:', error);\n return [];\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async loadAllPreviousActions(taskCode: string): Promise<WorkflowAction[]> {\n try {\n this.state.setUpdating(true);\n\n const requests = await this.service.getAllPreviousActions(taskCode);\n\n this.state.setNextActions(requests);\n\n return requests;\n } catch (error) {\n console.error('Failed to load requests with param:', error);\n return [];\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async loadNextActors(\n taskCode: string,\n forCurrentStage: boolean,\n stageCode?: string,\n ): Promise<Actor[]> {\n try {\n this.state.setUpdating(true);\n const params = this.state.getQueryParamsValue();\n\n const requests = await this.service.getNextActors(\n taskCode,\n forCurrentStage,\n stageCode,\n );\n\n this.state.setNextActors(requests);\n\n return requests;\n } catch (error) {\n console.error('Failed to load requests with param:', error);\n return [];\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async loadTaskForms(taskCode: string): Promise<Form[]> {\n try {\n this.state.setUpdating(true);\n console.log('Loading task form');\n const requests = await this.service.getCurrentFormsForTask(taskCode);\n console.log('FORMS', requests);\n this.state.setTaskForms(requests);\n\n return requests;\n } catch (error) {\n console.error('Failed to load requests with param:', error);\n return [];\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async passOn(\n action: WorkflowAction,\n request: Task,\n comment: string,\n recipient: string | null,\n currentUser: string\n ): Promise<void> {\n try {\n this.state.setUpdating(true);\n const response = await this.service.passOn(\n action.FromStage,\n action.ToStage,\n {\n ...request,\n FullStages: [],\n CurrentActors: request.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n },\n comment,\n recipient ?? undefined\n );\n // console.log(response);\n const data = response as Task;\n if (data) {\n if (data.CurrentActors.map((c) => c.Identifier).includes(currentUser)) {\n this.state.updateRequest(data);\n } else {\n this.state.removeRequest(request.Code);\n }\n this.utilService.showSuccess('Task passed on successfully');\n }\n } catch (error) {\n console.error('Failed to update request:', error);\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async passBack(\n action: WorkflowAction,\n request: Task,\n comment: string,\n recipient: string | null,\n currentUser: string\n ): Promise<void> {\n try {\n this.state.setUpdating(true);\n const response = await this.service.passOn(\n // Alternate from and to stage o.\n action.ToStage,\n action.FromStage,\n {\n ...request,\n FullStages: [],\n CurrentActors: request.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n },\n comment,\n recipient ?? undefined\n );\n // console.log(response);\n const data = response as Task;\n if (data) {\n if (data.CurrentActors.map((c) => c.Identifier).includes(currentUser)) {\n this.state.updateRequest(data);\n } else {\n this.state.removeRequest(request.Code);\n }\n this.utilService.showSuccess('Task passed back successfully');\n }\n } catch (error) {\n console.error('Failed to update request:', error);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async skipTo(\n from: WorkflowAction['FromStage'],\n to: WorkflowAction['ToStage'],\n request: Task,\n comment: string,\n recipient: string | null,\n currentUser: string\n ): Promise<void> {\n try {\n this.state.setUpdating(true);\n const response = await this.service.skipTo(\n from,\n to,\n {\n ...request,\n FullStages: [],\n CurrentActors: request.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n },\n comment,\n recipient ?? undefined\n );\n // console.log(response);\n const data = response as Task;\n if (data) {\n if (data.CurrentActors.map((c) => c.Identifier).includes(currentUser)) {\n this.state.updateRequest(data);\n } else {\n this.state.removeRequest(request.Code);\n }\n this.utilService.showSuccess('Task skipped to successfully');\n }\n } catch (error) {\n console.error('Failed to update request:', error);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async pickTask(\n action: WorkflowAction,\n request: Task,\n comment: string,\n recipient: string | null,\n currentUser: string\n ): Promise<void> {\n try {\n this.state.setUpdating(true);\n const response = await this.service.passOn(\n action.FromStage,\n action.ToStage,\n {\n ...request,\n FullStages: [],\n CurrentActors: request.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n },\n comment,\n recipient ?? undefined\n );\n // console.log(response);\n const data = response as Task;\n if (data) {\n if (data.CurrentActors.map((c) => c.Identifier).includes(currentUser)) {\n this.state.updateRequest(data);\n } else {\n this.state.removeRequest(request.Code);\n }\n this.utilService.showSuccess('Task picked successfully');\n }\n } catch (error) {\n console.error('Failed to update request:', error);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async reAssign(request: Task, comment: string, currentUser: string): Promise<void> {\n try {\n this.state.setUpdating(true);\n const response = await this.service.reAssign(\n {\n ...request,\n FullStages: [],\n CurrentActors: request.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n },\n comment\n );\n // console.log(response);\n const data = response as Task;\n if (data) {\n if (data.CurrentActors.map((c) => c.Identifier).includes(currentUser)) {\n this.state.updateRequest(data);\n } else {\n this.state.removeRequest(request.Code);\n }\n this.utilService.showSuccess('Task re-assigned successfully');\n }\n } catch (error) {\n console.error('Failed to update request:', error);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async fillForm(form: Form, taskCode: string): Promise<Form> {\n try {\n this.state.setUpdating(true);\n const filledForm = await this.service.fillForm(form, taskCode);\n return filledForm;\n } catch (error) {\n console.error('Failed to fill form:', error);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n // Load more handling\n async loadMore(queue: boolean = false): Promise<void> {\n try {\n this.state.setUpdating(true);\n const currentParams = this.state.getQueryParamsValue();\n // const searchTerm = this.state.getSearchTermValue();\n const searchTerm = false;\n\n // Update skip value\n const newSkip = currentParams.skip + currentParams.limit;\n\n // Load and append data\n const response = queue\n ? await this.service.getQueueTasksForUser(\n currentParams.user || '',\n currentParams.skip,\n currentParams.limit,\n currentParams.sortParam || 'CreatedDate',\n currentParams.sortOrder\n )\n : await this.service.getTasksForUser(\n currentParams.user || '',\n currentParams.skip,\n currentParams.limit,\n currentParams.sortParam || 'CreatedDate',\n currentParams.sortOrder\n );\n\n this.state.appendRequests(response.Result);\n this.state.updateQueryParams({\n skip: newSkip,\n limit: currentParams.limit,\n });\n } catch (error) {\n console.error('Load more failed:', error);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n}\n","import { ChangeDetectorRef, Component, input, Input } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { VerbenPopUpComponent } from 'verben-ng-ui';\nimport { TaskModel } from 'verben-workflow-ui/src/lib/components/tasks';\nimport { Actor, DataType, Form, ObjectState, Task, TaskStatus, WorkflowAction } from 'verben-workflow-ui/src/lib/models';\nimport { BaseDataViewComponent, DataViewConfig } from 'verben-workflow-ui/src/lib/shared';\nimport { columns } from './my-queue.columns';\nimport { MyQueueFacade } from './my-queue.facade';\nimport { MyQueueService } from './my-queue.service';\nimport { MyQueueState } from './my-queue.state';\n\n@Component({\n selector: 'lib-my-queue',\n templateUrl: './my-queue.component.html',\n styleUrl: './my-queue.component.css',\n providers: [MyQueueService, MyQueueState, MyQueueFacade],\n})\nexport class MyQueueComponent extends BaseDataViewComponent<Task> {\n isGeneral = input<boolean>(false);\n @Input() user!: string;\n config: DataViewConfig<Task> = {\n dataSource: [], // Populate from service\n columns: columns, // Your existing column definitions\n cardDataMapper: (task) => ({\n selected: false,\n title: task.Name,\n data: task,\n body: [\n { title: 'Name', value: task.Name },\n { title: 'Status', value: task.Status },\n ],\n children: [],\n }),\n onDetailView: (task) => {\n // Custom detail view logic\n },\n };\n\n selectedTaskCode: string | null = null;\n activeActionType: ActionType | null = null;\n comment: string = '';\n isModalVisible: boolean = false;\n\n tableRowActions = [\n { label: 'Pick Task', action: (data: Task) => { }, divider: false },\n { label: 'Release Task', action: (data: Task) => { }, divider: false },\n { label: 'Follow Task', action: (data: Task) => { }, divider: true },\n { label: 'Unfollow Task', action: (data: Task) => { }, divider: true },\n\n {\n label: 'Pass On',\n action: (data: Task) => {\n // console.log(data);\n this.activeActionType = ActionType.PassOn;\n this.selectedTaskCode = data.Code;\n this.facade.loadNextActions(data.Code);\n // .then((actions) => {\n // if (actions.length === 1) {\n // this.selectedAction = actions[0];\n // this.facade\n // .loadNextActors(data.Code, this.selectedAction?.Code)\n // .then((actors) => {});\n // }\n // });\n this.facade.loadTaskForms(data.Code);\n // console.log(this.selectedTaskCode);\n },\n divider: false,\n },\n {\n label: 'Pass Back',\n action: (data: Task) => {\n this.activeActionType = ActionType.PassBack;\n this.selectedTaskCode = data.Code;\n this.facade.loadPreviousActions(data.Code);\n },\n divider: false,\n },\n {\n label: 'Skip To',\n action: (data: Task) => {\n this.activeActionType = ActionType.SkipTo;\n this.selectedTaskCode = data.Code;\n this.facade.loadAllPreviousActions(data.Code);\n },\n divider: false,\n },\n {\n label: 'Re-Assign',\n action: (data: Task) => {\n this.activeActionType = ActionType.ReAssign;\n this.selectedTaskCode = data.Code;\n },\n divider: true,\n },\n // { label: 'View Operation', action: (data: Task) => {}, divider: false },\n ];\n\n nextActions: WorkflowAction[] = [];\n nextActors: Actor[] = [];\n stageForm: Form | null = null;\n active: number = 0;\n dataType: DataType = DataType.Text;\n\n recipientCode: string | null = null;\n selectedAction: BehaviorSubject<WorkflowAction | null> =\n new BehaviorSubject<WorkflowAction | null>(null);\n currentTask: Task | null = null;\n\n constructor(private cdr: ChangeDetectorRef, private facade: MyQueueFacade) {\n super();\n\n this.facade.getRequests$().subscribe((data) => {\n this.data.set(data);\n });\n\n this.facade.getNextActions$().subscribe((data) => {\n this.nextActions = data;\n });\n\n this.facade.getNextActors$().subscribe((data) => {\n this.nextActors = data;\n });\n\n this.facade.getTaskForms$().subscribe((data) => {\n this.stageForm = data?.[0] || null;\n });\n\n this.selectedAction.subscribe((action) => {\n if (action) {\n this.facade.loadNextActors(this.selectedTaskCode!, false, action.ToStage);\n } else {\n this.nextActors = [];\n }\n });\n }\n\n override loadInitialData() {\n this.facade.updateQueryParams({ user: this.user });\n try {\n this.facade.loadRequests();\n } catch (error) {\n // Handle error\n }\n }\n\n // protected getCardDataByIdentifier(mailAddress: string): CardData | undefined {\n // return this.cardData().find(({ data }) => data.MailAddress === mailAddress);\n // }\n\n async loadMore() {\n try {\n await this.facade.loadMore();\n } catch (error) {\n // Handle error\n }\n }\n\n getTableActions(task: Task) {\n const actions = [] as typeof this.tableRowActions;\n if (this.isGeneral()) {\n const actionNames = [\n 'Pick Task',\n 'Release Task',\n 'Follow Task',\n 'Unfollow Task',\n ];\n actions.push(\n ...this.tableRowActions.filter(({ label }) =>\n actionNames.includes(label)\n )\n );\n } else {\n const actionNames = ['Pass On', 'Pass Back', 'Skip To', 'Re-Assign'];\n if (task.FullStages?.[0]?.IsEntryPoint) {\n actions.push(\n ...this.tableRowActions.filter(\n ({ label }) => actionNames.includes(label) && label !== 'Pass Back'\n )\n );\n } else {\n actions.push(\n ...this.tableRowActions.filter(({ label }) =>\n actionNames.includes(label)\n )\n );\n }\n }\n\n return actions;\n }\n\n groupByWorkflowCode(task: Task) {\n return `Workflow: ${task.WorkflowCode}`;\n }\n\n handlePopupClose(event: boolean) {\n // console.log('Closing...', event);\n if (event) {\n this.selectedTaskCode = null;\n }\n }\n\n checkForFormThenPassOn(task: Task, popup?: VerbenPopUpComponent) {\n this.currentTask = task;\n\n if (this.stageForm) {\n popup?.toggleDropdown();\n this.isModalVisible = true;\n } else {\n this.passOn(popup);\n }\n\n // this.passOn(popup);\n }\n\n handleAction(task: Task, popup: VerbenPopUpComponent) {\n const action = this.activeActionType;\n\n switch (action) {\n case ActionType.PassOn:\n // console.log('Pass On Action', task);\n this.checkForFormThenPassOn(task, popup);\n break;\n case ActionType.ReAssign:\n this.facade.reAssign(task, this.comment, this.user).then(() => {\n this.comment = '';\n this.nextActions = [];\n this.recipientCode = null;\n this.selectedAction.next(null);\n popup.toggleDropdown();\n });\n break;\n case ActionType.PassBack:\n if (this.selectedAction) {\n const selectedAction = this.selectedAction.getValue();\n if (selectedAction) {\n this.facade\n .passBack(selectedAction, task, this.comment, this.recipientCode, this.user)\n .then(() => {\n this.comment = '';\n this.nextActions = [];\n this.recipientCode = null;\n this.selectedAction.next(null);\n popup.toggleDropdown();\n });\n }\n }\n break;\n case ActionType.SkipTo:\n const selectedAction = this.selectedAction.getValue();\n // console.log('Selected Action for Skip:', selectedAction);\n // console.log('Task for Skip:', task);\n // console.log('Comment for Skip:', this.comment);\n // console.log('Recipient Code for Skip:', this.recipientCode);\n if (selectedAction) {\n this.facade\n .skipTo(\n task.CurrentStages[0],\n selectedAction.ToStage,\n task,\n this.comment,\n this.recipientCode,\n this.user\n )\n .then(() => {\n this.comment = '';\n this.nextActions = [];\n this.recipientCode = null;\n this.selectedAction.next(null);\n popup.toggleDropdown();\n });\n }\n break;\n default:\n break;\n }\n }\n\n submitForm() {\n const form = this.stageForm;\n if (form && this.currentTask) {\n this.facade\n .fillForm(form, this.currentTask.Code)\n .then((filledForm) => {\n this.stageForm = null;\n this.isModalVisible = false;\n this.passOn();\n })\n .catch((error) => {\n console.error('Error filling form:', error);\n // Handle error (e.g., show a notification)\n });\n }\n }\n\n passOn(popup?: VerbenPopUpComponent) {\n const selectedAction = this.selectedAction.getValue();\n // console.log('Selected Action:', selectedAction);\n // console.log('Current Task:', this.currentTask);\n // console.log('Comment:', this.comment);\n // console.log('Recipient Code:', this.recipientCode);\n if (selectedAction && this.currentTask && this.comment) {\n this.facade\n .passOn(\n selectedAction,\n this.currentTask,\n this.comment,\n this.recipientCode,\n this.user\n )\n .then(() => {\n this.comment = '';\n this.nextActions = [];\n this.recipientCode = null;\n this.selectedAction.next(null);\n\n if (popup) {\n popup.toggleDropdown();\n }\n });\n }\n }\n\n areRequiredPropertiesFilled(): boolean {\n const properties = this.stageForm?.Entities[this.active].Properties || [];\n\n // Check if all required properties have valid values\n // return properties.every((property: any) => {\n // console.log(property);\n // return (\n // !property.isRequired ||\n // (property.Value !== undefined &&\n // property.Value !== null &&\n // property.Value !== '')\n // );\n // });\n return true;\n }\n\n onActionDropDownChange(event: any) {\n const selectedAction = event as WorkflowAction;\n if (selectedAction) {\n console.log('Selected Action:', selectedAction);\n // // this.selectedAction = selectedAction;\n // this.facade\n // .loadNextActors(this.selectedTaskCode!, selectedAction.Code)\n // .then((actors) => {});\n }\n }\n\n override onStateChange(event: { key: string; value: boolean }): void {\n switch (event.key) {\n case 'create':\n var newItem: Task = new TaskModel({\n WorkflowCode: '',\n Status: TaskStatus.Active,\n Flowable: '',\n FlowableData: null,\n FlowablePath: '',\n CurrentActors: [],\n DataState: ObjectState.New,\n }) as unknown as Task;\n this.facade.addNewRequest(newItem);\n // const cardData: CardData = {\n // selected: false,\n // title: ,\n // data: newGroup,\n // body: [],\n // children: [],\n // };\n // this.data = this.data.concat([newGroup]);\n // this.cardData.push(cardData);\n // this.userCardClicked(cardData);\n this.dataView.isTableView = false;\n break;\n // case 'filter':\n // this.showFilter = event.value;\n // break;\n // case 'sort':\n // this.showSort = event.value;\n // break;\n // case 'column':\n // this.showColumn = event.value;\n // break;\n default:\n break;\n }\n }\n}\n\nenum ActionType {\n PickTask = 'PickTask',\n UnPickTask = 'UnPickTask',\n ReAssign = 'ReAssign',\n PassOn = 'PassOn',\n PassBack = 'PassBack',\n FollowTask = 'FollowTask',\n UnfollowTask = 'UnfollowTask',\n SkipTo = 'SkipTo',\n}\n","<div class=\"space-y-8\">\n <verben-data-view\n #vdv\n [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: true,\n isSelect: true,\n isCreate: isGeneral(),\n isToggle: true,\n }\"\n [buttonClass]=\"'my-custom-button-class'\"\n [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\"\n [selectedColumnCount]=\"0\"\n [selectedSortCount]=\"0\"\n [selectedFilterTableCount]=\"0\"\n (viewChange)=\"onViewChange($event)\"\n (stateChange)=\"onStateChange($event)\"\n >\n <div table-content>\n <lib-data-table\n [data]=\"data()\"\n [columns]=\"config.columns\"\n [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\"\n [groupBy]=\"groupByWorkflowCode\"\n >\n <ng-container libColumn=\"history\">\n <ng-template #cell let-value let-deleteRow>\n <a\n [routerLink]=\"['/workflow/task-history', value]\"\n routerLinkActive=\"router-link-active\"\n class=\"underline text-[#0000FF]\"\n >view history</a\n >\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"workflow\">\n <ng-template #cell let-value>\n <a\n [routerLink]=\"['/workflow/workflows', value]\"\n routerLinkActive=\"router-link-active\"\n class=\"underline text-[#0000FF]\"\n >view Workflow</a\n >\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-row=\"row\">\n <verben-pop-Up\n #popup\n [customStyles]=\"{ 'z-index': '99' }\"\n [enableMouseLeave]=\"false\"\n [customStyles]=\"{\n border: '1px solid #d4a10780',\n borderRadius: '5px',\n backgroundColor: 'white'\n }\"\n (dropdownOpenChange)=\"handlePopupClose($event)\"\n >\n <verben-svg\n dropdown-trigger\n icon=\"dots\"\n [width]=\"4\"\n [height]=\"24\"\n class=\"cursor-pointer w-auto\"\n ></verben-svg>\n <div class=\"bg-white rounded-sm\" dropdown-content>\n @if (selectedTaskCode && activeActionType) {\n <div style=\"width: 16rem\">\n <div\n class=\"flex items-center gap-4 justify-between h-12 px-2 pt-4\"\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\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 />\n </g>\n </svg>\n\n <h3 class=\"text-sm font-medium\">Select Assignee</h3>\n </div>\n\n <div class=\"grid gap-2 max-h-96 overflow-y-auto p-2\">\n <verben-drop-down\n label=\"Action\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n [filter]=\"true\"\n [showClear]=\"true\"\n placeholder=\"Select Action\"\n [(options)]=\"nextActions\"\n id=\"actions\"\n optionLabel=\"Name\"\n [ngModel]=\"selectedAction | async\"\n (ngModelChange)=\"selectedAction.next($event)\"\n class=\"form-control\"\n >\n </verben-drop-down>\n\n <verben-drop-down\n label=\"Actors\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n [filter]=\"true\"\n [showClear]=\"true\"\n placeholder=\"Select Actor\"\n [(options)]=\"nextActors\"\n id=\"actors\"\n optionLabel=\"Name\"\n optionValue=\"Code\"\n [(ngModel)]=\"recipientCode\"\n class=\"form-control\"\n >\n </verben-drop-down>\n\n <textarea\n [(ngModel)]=\"comment\"\n placeholder=\"Enter Comment\"\n class=\"w-full p-1 text-xs border border-primary rounded-md\"\n style=\"height: 8rem\"\n [cols]=\"8\"\n ></textarea>\n\n <verbena-button\n [disable]=\"!comment\"\n [text]=\"activeActionType\"\n (click)=\"handleAction(row, popup)\"\n class=\"text-xs w-full\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n fontSize=\"14px\"\n pd=\"10px 20px\"\n width=\"100%\"\n height=\"32px\"\n >\n {{ activeActionType }}\n </verbena-button>\n </div>\n </div>\n } @else { @for (item of getTableActions(row); track item.label)\n {\n <div\n (click)=\"item.action(row)\"\n class=\"cursor-pointer py-2 px-3 text-sm hover:bg-primary\"\n >\n {{ item.label }}\n </div>\n @if (item.divider) {\n <hr class=\"bg-[#FFE681] h-1 rounded-xl border-0\" />\n } } }\n </div>\n </verben-pop-Up>\n </ng-template>\n <ng-template #header>\n <strong class=\"text-center\">Actions</strong>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view\n borderRadius=\"12px\"\n (loadMoreClick)=\"loadMore()\"\n #vdcv\n dataId=\"Id\"\n border=\"5px\"\n [cardDataList]=\"cardData()\"\n rbgColor=\"#f5f6f9\"\n mg=\"20px\"\n >\n <verben-left-card-data-view class=\"space-y-7\">\n <verben-left-card-data\n #vlcd\n [parent]=\"vdcv\"\n dataId=\"Id\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\"\n [cardDataList]=\"cardData()\"\n >\n <ng-template #card let-item>\n <div\n (click)=\"\n currentData = isGeneral() ? vdcv.onItemClick(item) : null\n \"\n class=\"flex\"\n >\n <div\n (click)=\"\n currentData = isGeneral() ? vdcv.onItemClick(item) : null\n \"\n class=\"flex cursor-pointer w-full bg-secondary rounded-xl\"\n >\n <div\n class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\"\n [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"\n ></div>\n <div class=\"flex flex-col py-2 px-4 w-full\">\n <div class=\"flex items-center gap-4 justify-between\">\n <div class=\"grid gap-y-2\">\n <span class=\"font-semibold text-[#404040]\">{{\n item.title\n }}</span>\n <p class=\"flex items-center\">\n <label for=\"phone\" class=\"text-[10px] font-light\"\n >Status:</label\n >\n <span id=\"phone\" class=\"text-sm\">{{\n item.data.Status\n }}</span>\n </p>\n </div>\n\n <div class=\"grid gap-y-2\">\n <span for=\"role\" class=\"font-light\">{{\n item.data.WorkflowCode\n }}</span>\n <a\n [routerLink]=\"[\n '/workflow/task-history',\n item.data.Code\n ]\"\n routerLinkActive=\"router-link-active\"\n class=\"underline text-[#0000FF] text-xs\"\n >view history</a\n >\n </div>\n </div>\n\n <!-- <div class=\"flex\">\n <span class=\"font-normal text-sm\">{{ item.title }}</span>\n </div>\n @for (ciItem of item.body; track ciItem.value) {\n <div class=\"\">\n <span class=\"text-muted font-light text-xs\"\n >{{ ciItem.title }}:</span\n >\n <span class=\"text-black\">{{ ciItem.value }}</span>\n </div>\n } -->\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <!-- <lib-user-request-form\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n (onApproval)=\"onApprove($event)\"\n ></lib-user-request-form> -->\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"w-full\">\n <div\n [ngClass]=\"{\n 'flex gap-2 items-center': true,\n 'justify-end': true,\n }\"\n >\n <!-- <verbena-button\n *ngIf=\"!vdcv.hasCurrentItem()\"\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'#8E8D87'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#fff'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button> -->\n <div\n class=\"flex {{\n vdcv.hasCurrentItem() ? 'flex-1' : ''\n }} justify-end items-center gap-5\"\n >\n <span class=\"paginator-text\"\n >{{ cardData().length }} records loaded</span\n >\n <button\n (click)=\"loadMore()\"\n class=\"load-more view-links text-[#3479E9] underline\"\n >\n Load more\n </button>\n </div>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <lib-data-columns\n [columns]=\"config.columns\"\n (columnsUpdated)=\"onColumnsUpdated($event)\"\n ></lib-data-columns>\n </div>\n <div filter-content>\n <verben-table-filter\n [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\"\n bgColor=\"white\"\n width=\"420px\"\n textColor=\"black\"\n pd=\"1rem\"\n primaryColor=\"#FFE681\"\n secondaryColor=\"#3479E9\"\n tertiaryColor=\"#404040\"\n [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"\n ></verben-table-filter>\n </div>\n <div sort-content>\n <lib-data-sort\n [columns]=\"config.columns\"\n [data]=\"data()\"\n (sortApplied)=\"onSortUpdated($event)\"\n ></lib-data-sort>\n </div>\n <div export-content>\n <lib-data-export [data]=\"data()\" (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export>\n </div>\n </verben-data-view>\n\n <div *ngIf=\"vdv.isTableView\" class=\"flex gap-2 justify-end\">\n\n <div class=\"flex justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData().length }} records loaded</span>\n <button\n (click)=\"loadMore()\"\n class=\"load-more view-links text-[#3479E9] underline\"\n >\n Load more\n </button>\n </div>\n </div>\n</div>\n\n<verben-dialogue\n [showCloseIcon]=\"true\"\n [dismissOutsideClick]=\"true\"\n [closeOnEscape]=\"true\"\n [mode]=\"'drawer'\"\n [padding]=\"'0px'\"\n [drawerWidth]=\"'400px'\"\n [disableFooter]=\"false\"\n [isVisible]=\"isModalVisible\"\n [modalData]=\"stageForm\"\n [headerTemplate]=\"headerTemplate\"\n [bodyTemplate]=\"bodyTemplate\"\n [showCloseIcon]=\"false\"\n>\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\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 *ngIf=\"stageForm?.Entities?.[active]; else emptyState\" class=\"mt-4\">\n <form-control\n [dataType]=\"dataType\"\n [formProperties]=\"stageForm?.Entities?.[active]?.Properties ?? []\"\n ></form-control>\n\n <div class=\"flex gap-3 justify-end\">\n <verbena-button\n class=\"verben-primary-button\"\n (click)=\"submitForm()\"\n [disable]=\"!areRequiredPropertiesFilled()\"\n text=\"Save\"\n ></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","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CardData } from 'verben-ng-ui';\nimport { Task } from 'verben-workflow-ui/src/lib/models';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Status } from 'verben-workflow-ui/src/lib/models';\nimport { Workflow } from 'verben-workflow-ui/src/lib/models';\nimport { Form } from 'verben-workflow-ui/src/lib/models';\nimport { DataType } from 'verben-workflow-ui/src/lib/models';\nimport { TaskFacade } from 'verben-workflow-ui/src/lib/components/tasks';\n\n@Component({\n selector: 'tasks-form',\n templateUrl: './tasks.form.component.html',\n})\nexport class TasksFormComponent {\n @Input()\n get currentData(): CardData | null {\n return this._currentData;\n }\n set currentData(value: CardData | null) {\n this._currentData = value;\n console.log(value?.data);\n if (value?.data) {\n this.form.patchValue({\n Name: value.data.Name || '',\n Description: value.data.Description || '',\n WorkflowCode: value.data.WorkflowCode || '',\n Status: value.data.Status || '',\n });\n } else {\n this.form.reset();\n }\n }\n\n private _currentData: CardData | null = null;\n\n taskForm: Form | null = null;\n active: number = 0;\n dataType: DataType = DataType.Text;\n\n @Output() onTaskFormSave = new EventEmitter<Form>();\n @Output() onSave = new EventEmitter<Partial<Task>>();\n\n form: FormGroup;\n statuses = Object.values(Status);\n workflows: Workflow[] = [];\n loadingTaskForm: boolean = false;\n taskFormView: boolean = false;\n\n // active: boolean = false;\n\n constructor(private fb: FormBuilder, private taskFacade: TaskFacade) {\n this.taskFacade.getWorkflow$().subscribe((workflows) => {\n this.workflows = workflows;\n });\n this.form = this.fb.group({\n Name: ['', { validators: [Validators.required] }],\n Description: ['', { validators: [Validators.required] }],\n WorkflowCode: ['', { validators: [Validators.required] }],\n Status: ['', { validators: [Validators.required] }],\n TaskForms: [],\n });\n }\n\n ngOnInit() {\n try {\n this.taskFacade.loadWorkflows().then(() => {});\n } catch (error) {\n // Handle error\n }\n\n this.form.get('WorkflowCode')?.valueChanges.subscribe((value) => {\n if (value) {\n const selectedWorkflow = this.workflows.find(\n ({ Code }) => Code === value\n );\n if (selectedWorkflow?.Form) {\n this.loadingTaskForm = true;\n this.taskFacade\n .loadFormsWithParam(selectedWorkflow.Form)\n .then((form) => {\n if (form) {\n this.taskForm = form;\n }\n })\n .finally(() => {\n this.loadingTaskForm = false;\n });\n } else {\n this.taskForm = null;\n }\n }\n });\n }\n\n handleSubmit(): void {\n if (this.form.valid) {\n // Emit save event with form value\n console.log('Form saved:', this.form.value);\n if (\n !this.taskForm ||\n (this.form.get('TaskForms')?.value as Form[])?.length > 0\n ) {\n this.onSave.emit(this.form.value);\n }\n }\n }\n\n onDelete(): void {\n // Emit delete event\n console.log('Delete requested');\n }\n\n sendTaskForm() {\n if (this.taskForm) {\n this.form\n .get('TaskForms')\n ?.setValue([{ ...this.taskForm, Swimlane: '' }]);\n this.taskFormView = false;\n this.onTaskFormSave.emit(this.taskForm);\n }\n }\n\n areRequiredPropertiesFilled(): boolean {\n const properties = this.taskForm?.Entities[this.active].Properties || [];\n\n // Check if all required properties have valid values\n // return properties.every((property: any) => {\n // console.log(property);\n // return (\n // !property.isRequired ||\n // (property.Value !== undefined &&\n // property.Value !== null &&\n // property.Value !== '')\n // );\n // });\n return true;\n }\n\n disableProcessing() {\n const selectedWorkflow = this.workflows.find(\n ({ Code }) => Code === this.form.get('WorkflowCode')?.value\n );\n\n if (\n selectedWorkflow?.Form &&\n (this.currentData?.data as Task)?.TaskForms?.length === 0\n ) {\n return true;\n } else return this.form.invalid;\n }\n}\n","@if (taskFormView && taskForm) {\n<div\n *ngIf=\"taskForm.Entities[active]\"\n class=\"flex flex-wrap bg-[#9A9FBF80] rounded-xl px-3 py-2 w-full relative gap-6\"\n>\n <app-form-timer></app-form-timer>\n <div *ngFor=\"let group of taskForm.Entities; let index = index\">\n <p\n (click)=\"active = index\"\n [ngClass]=\"{\n 'bg-[#fff] text-primary rounded-lg shadow-lg': active === index\n }\"\n class=\"px-6 py-2 cursor-pointer\"\n >\n {{ group.Name }}group\n </p>\n </div>\n</div>\n\n<div *ngIf=\"taskForm.Entities[active]; else emptyState\" class=\"mt-4\">\n <form-control\n [dataType]=\"dataType\"\n [formProperties]=\"taskForm.Entities[active].Properties\"\n ></form-control>\n\n <div class=\"flex gap-3 justify-end\">\n <verbena-button\n (click)=\"areRequiredPropertiesFilled()\"\n text=\"CHECK\"\n styleType=\"ylw-outline\"\n class=\"ml-auto\"\n ></verbena-button>\n\n <verbena-button\n (click)=\"taskFormView = false\"\n text=\"Close task form\"\n styleType=\"ylw-outline\"\n class=\"ml-auto\"\n ></verbena-button>\n\n <verbena-button\n class=\"verben-primary-button\"\n (click)=\"sendTaskForm()\"\n [disable]=\"!areRequiredPropertiesFilled()\"\n text=\"Save\"\n ></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\n} @else {\n<form\n [formGroup]=\"form\"\n class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\"\n (ngSubmit)=\"handleSubmit()\"\n>\n <verbena-input\n name=\"Name\"\n label=\"Name\"\n formControlName=\"Name\"\n placeHolder=\"Enter Name\"\n />\n <verbena-input\n name=\"Description\"\n label=\"Description\"\n formControlName=\"Description\"\n placeHolder=\"Enter Description\"\n />\n\n <div class=\"space-y-1\">\n <label for=\"workflow\">Workflow</label>\n\n <verben-drop-down\n label=\"Workflow\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"workflows\"\n optionLabel=\"Name\"\n optionValue=\"Code\"\n id=\"workflow\"\n formControlName=\"WorkflowCode\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down\n label=\"Status\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n [showClear]=\"true\"\n placeholder=\"Null\"\n [(options)]=\"statuses\"\n id=\"status\"\n formControlName=\"Status\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <!-- buttons -->\n <div class=\"flex justify-between gap-4 my-2\">\n <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n bgColor=\"#999999\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n [disable]=\"disableProcessing()\"\n ></verbena-button>\n <verbena-button\n [disable]=\"!taskForm || loadingTaskForm\"\n (click)=\"taskFormView = true\"\n [text]=\"loadingTaskForm ? 'Checking for form' : 'Fill task form'\"\n styleType=\"ylw-outline\"\n class=\"ml-auto\"\n ></verbena-button>\n <verbena-button\n type=\"submit\"\n text=\"Save\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n width=\"114px\"\n height=\"39px\"\n [disable]=\"disableProcessing()\"\n ></verbena-button>\n </div>\n</form>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { FormControlerModule } from 'verben-workflow-ui/src/lib/components/form-control';\nimport { FormTimerModule } from 'verben-workflow-ui/src/lib/components/form-timer';\nimport { SharedModule } from 'verben-workflow-ui/src/lib/shared';\nimport { MyQueueComponent } from './my-queue.component';\nimport { TasksFormComponent } from './tasks.form.component';\n\n@NgModule({\n declarations: [MyQueueComponent, TasksFormComponent],\n imports: [\n CommonModule,\n SharedModule,\n RouterLink,\n FormControlerModule,\n FormTimerModule,\n ],\n\n exports: [MyQueueComponent],\n})\nexport class MyQueueModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.MyQueueService","i2.MyQueueState","i3","i1.MyQueueFacade","i4","i1","i2","i5","i6"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"verben-workflow-ui-src-lib-components-my-queue.mjs","sources":["../../../projects/verben-workflow-ui/src/lib/components/my-queue/my-queue.columns.ts","../../../projects/verben-workflow-ui/src/lib/components/my-queue/my-queue.service.ts","../../../projects/verben-workflow-ui/src/lib/components/my-queue/my-queue.state.ts","../../../projects/verben-workflow-ui/src/lib/components/my-queue/my-queue.facade.ts","../../../projects/verben-workflow-ui/src/lib/components/my-queue/my-queue.component.ts","../../../projects/verben-workflow-ui/src/lib/components/my-queue/my-queue.component.html","../../../projects/verben-workflow-ui/src/lib/components/my-queue/tasks.form.component.ts","../../../projects/verben-workflow-ui/src/lib/components/my-queue/tasks.form.component.html","../../../projects/verben-workflow-ui/src/lib/components/my-queue/my-queue.module.ts","../../../projects/verben-workflow-ui/src/lib/components/my-queue/verben-workflow-ui-src-lib-components-my-queue.ts"],"sourcesContent":["import { ColumnDefinition } from 'verben-ng-ui';\nimport { Task } from 'verben-workflow-ui/src/lib/models';\n\nexport const columns: ColumnDefinition<Task>[] = [\n {\n id: 'task',\n header: 'TASK',\n accessorKey: 'Name',\n },\n {\n id: 'stage',\n header: 'STAGE',\n accessorFn: (row) =>\n row.FullStages?.slice(0, 3)\n ?.map(({ Name }) => Name)\n .join(', ') +\n (row.FullStages?.length && row.FullStages?.length > 3\n ? ` ... + ${row.FullStages?.length - 3}`\n : ''),\n },\n {\n id: 'history',\n header: 'HISTORY',\n accessorKey: 'Code',\n },\n {\n id: 'workflow',\n header: 'WORKFLOW',\n accessorKey: 'WorkflowCode',\n },\n { id: 'actions', header: 'Actions' },\n];\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { Actor, Form, Paged, Task, WorkflowAction } from 'verben-workflow-ui/src/lib/models';\nimport { HttpWebRequestService } from 'verben-workflow-ui/src/lib/services';\n\n@Injectable()\nexport class MyQueueService {\n private readonly BASE_URL = 'Task';\n\n constructor(private httpService: HttpWebRequestService) { }\n\n /**\n * Get tasks with pagination and sorting\n * @param skip Number of records to skip\n * @param limit Number of records to take\n * @param sortParam Sort parameter\n * @param sortOrder Sort order ('asc' or 'desc')\n * @returns Promise containing the tasks\n */\n getTasks(\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string\n ): Promise<Paged<Task>> {\n const url = `${this.BASE_URL}/GetTasks/${skip}/${limit}/${sortParam}/${sortOrder}`;\n return this.httpService.get(url) as Promise<Paged<Task>>;\n }\n\n /**\n * Get tasks with additional parameter, pagination and sorting\n * @param param Search parameter\n * @param skip Number of records to skip\n * @param limit Number of records to take\n * @param sortParam Sort parameter\n * @param sortOrder Sort order ('asc' or 'desc')\n * @returns Promise containing the filtered tasks\n */\n getTaskWithParam(\n param: string,\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string\n ): Promise<Paged<Task>> {\n const url = `${this.BASE_URL}/GetTaskWithParam/${param}/${skip}/${limit}/${sortParam}/${sortOrder}`;\n return this.httpService.get(url) as Promise<Paged<Task>>;\n }\n\n /**\n * Save multiple tasks\n * @param requests Array of tasks to save\n * @returns Promise containing the save operation result\n */\n saveTasks(requests: Task[]): Promise<any> {\n const url = `${this.BASE_URL}/SaveTasks`;\n return this.httpService.post(url, requests);\n }\n\n /**\n * Approve or reject multiple tasks\n * @param requests Array of tasks to save\n * @param isApproval True for approval, false for decline\n * @returns Promise containing the save operation result\n */\n processTasks(requests: Task[], isApproval: boolean): Promise<any> {\n const url = `${this.BASE_URL}/TaskAction/${isApproval}`;\n return this.httpService.post(url, requests);\n }\n\n /**\n * Delete multiple tasks\n * @param requestIds Array of request IDs to delete\n * @returns Observable containing the delete operation result\n */\n deleteTasks(requestIds: string[]): Observable<any> {\n const url = `${this.BASE_URL}/DeleteTasks`;\n return this.httpService.delete(`${url}?data=${requestIds.join(',')}`);\n }\n\n getTasksForUser(\n user: string,\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string\n ): Promise<Paged<Task>> {\n const url = `${this.BASE_URL}/GetTasksForUser/${skip}/${limit}/${sortParam}/${sortOrder}/${user}`;\n return this.httpService.get(url) as Promise<Paged<Task>>;\n }\n\n getQueueTasksForUser(\n user: string,\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string\n ): Promise<Paged<Task>> {\n const url = `${this.BASE_URL}/GetQueueTasksForUser/${skip}/${limit}/${sortParam}/${sortOrder}/${user}`;\n return this.httpService.get(url) as Promise<Paged<Task>>;\n }\n\n getPossibleTasksForUser(\n user: string,\n skip: number,\n limit: number,\n sortParam: string,\n sortOrder: string\n ): Promise<Paged<Task>> {\n const url = `${this.BASE_URL}/GetPossibleTasksForUser/${skip}/${limit}/${sortParam}/${sortOrder}/${user}`;\n return this.httpService.get(url) as Promise<Paged<Task>>;\n }\n\n getNextActions(taskCode: string): Promise<WorkflowAction[]> {\n const url = `${this.BASE_URL}/GetNextActions/${taskCode}`;\n return this.httpService.get(url) as Promise<WorkflowAction[]>;\n }\n\n getPreviousActions(taskCode: string): Promise<WorkflowAction[]> {\n const url = `${this.BASE_URL}/GetPreviousActions/${taskCode}`;\n return this.httpService.get(url) as Promise<WorkflowAction[]>;\n }\n\n getAllPreviousActions(taskCode: string): Promise<WorkflowAction[]> {\n const url = `${this.BASE_URL}/GetAllPreviousActions/${taskCode}`;\n return this.httpService.get(url) as Promise<WorkflowAction[]>;\n }\n\n getNextActors(\n taskCode: string,\n forCurrentStage: boolean,\n stageCode?: string,\n ): Promise<Actor[]> {\n const url = `${this.BASE_URL}/GetNextActors/${taskCode}${'/' + forCurrentStage + (stageCode ? '/' + stageCode : '')}`;\n return this.httpService.get(url) as Promise<Actor[]>;\n }\n\n passOn(\n fromStage: string,\n toStage: string,\n task: Task,\n comment: string,\n recipient?: string\n ): Promise<Task> {\n const url = `${this.BASE_URL}/PassOn/${fromStage}/${toStage}/${comment}${recipient ? '/' + recipient : ''\n }`;\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> {\n const url = `${this.BASE_URL}/PassBack/${fromStage}/${toStage}/${comment}${recipient ? '/' + recipient : ''\n }`;\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> {\n const url = `${this.BASE_URL}/PickTask/${comment}/${targetStage}${recipient ? '/' + recipient : ''\n }`;\n return this.httpService.post(url, task);\n }\n\n unPickTask(\n targetStage: string,\n task: Task,\n comment: string,\n recipient?: string\n ): Promise<Task> {\n const url = `${this.BASE_URL}/UnPickTask/${comment}/${targetStage}${recipient ? '/' + recipient : ''\n }`;\n return this.httpService.post(url, task);\n }\n\n followTask(actorId: string, task: Task): Promise<Task> {\n const url = `${this.BASE_URL}/FollowTask/${actorId}`;\n return this.httpService.post(url, task);\n }\n\n unFollowTask(\n taskId: string,\n actorId: string\n // task: Task,\n ): Promise<void> {\n const url = `${this.BASE_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> {\n const url = `${this.BASE_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> {\n const url = `${this.BASE_URL}/SkipTo/${fromStage}/${toStage}/${comment}${recipient ? '/' + recipient : ''\n }/${isBackward}`;\n return this.httpService.post(url, task);\n }\n\n getCurrentFormsForTask(taskCode: string): Promise<Form[]> {\n const url = `Task/GetCurrentFormsForTask/${taskCode}`;\n return this.httpService.get(url) as Promise<Form[]>;\n }\n\n fillForm(form: Form, taskCode: string): Promise<Form> {\n const url = `Form/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, QueryParams, SortDirection, Task, WorkflowAction } from 'verben-workflow-ui/src/lib/models';\n\n@Injectable()\nexport class MyQueueState {\n private updating$ = new BehaviorSubject<boolean>(false);\n private tasks$ = new BehaviorSubject<Task[]>([]);\n private queryParams$ = new BehaviorSubject<\n QueryParams<Task> & { user?: string }\n >({\n skip: 0,\n limit: 20,\n sortParam: 'CreatedAt',\n sortOrder: SortDirection.Desc,\n });\n private nextActions$ = new BehaviorSubject<WorkflowAction[]>([]);\n private nextActors$ = new BehaviorSubject<Actor[]>([]);\n private taskForms$ = new BehaviorSubject<Form[]>([]);\n\n isUpdating$(): Observable<boolean> {\n return this.updating$.asObservable();\n }\n\n setUpdating(isUpdating: boolean): void {\n this.updating$.next(isUpdating);\n }\n\n getRequests$(): Observable<Task[]> {\n return this.tasks$.asObservable();\n }\n\n setRequests(tasks: Task[]): void {\n this.tasks$.next(tasks);\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 setNextActions(nextActions: WorkflowAction[]): void {\n this.nextActions$.next(nextActions);\n }\n\n setNextActors(nextActors: Actor[]): void {\n this.nextActors$.next(nextActors);\n }\n\n setTaskForms(taskForms: Form[]): void {\n this.taskForms$.next(taskForms);\n }\n\n getQueryParams$(): Observable<QueryParams<Task>> {\n return this.queryParams$.asObservable();\n }\n\n getQueryParamsValue(): QueryParams<Task> & { user?: string } {\n return this.queryParams$.getValue();\n }\n\n updateQueryParams(params: Partial<QueryParams<Task>>): void {\n this.queryParams$.next({ ...this.queryParams$.getValue(), ...params });\n }\n\n addRequest(task: Task): void {\n const currentValue = this.tasks$.getValue();\n this.tasks$.next([task, ...currentValue]);\n }\n\n updateRequest(updatedRequest: Task): void {\n const tasks = this.tasks$.getValue();\n const index = tasks.findIndex((r) => r.Code === updatedRequest.Code);\n if (index !== -1) {\n tasks[index] = updatedRequest;\n this.tasks$.next([...tasks]);\n }\n }\n\n removeRequest(taskCode: string): void {\n const currentValue = this.tasks$.getValue();\n this.tasks$.next(currentValue.filter((r) => r.Code !== taskCode));\n }\n\n appendRequests(newRequests: Task[]): void {\n const currentRequests = this.tasks$.getValue();\n this.tasks$.next([...currentRequests, ...newRequests]);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, lastValueFrom } from 'rxjs';\nimport { Actor, Form, QueryParams, Task, WorkflowAction } from 'verben-workflow-ui/src/lib/models';\nimport { UtilService } from 'verben-workflow-ui/src/lib/services';\nimport { MyQueueService } from './my-queue.service';\nimport { MyQueueState } from './my-queue.state';\n\n@Injectable()\nexport class MyQueueFacade {\n constructor(\n private service: MyQueueService,\n private state: MyQueueState,\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.isUpdating$();\n }\n\n getRequests$(): Observable<Task[]> {\n return this.state.getRequests$();\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 getQueryParams$(): Observable<QueryParams<Task>> {\n return this.state.getQueryParams$();\n }\n\n addNewRequest(task: Task) {\n this.state.addRequest(task);\n }\n\n async loadRequests(queue: boolean = false): Promise<void> {\n try {\n this.state.setUpdating(true);\n const params = this.state.getQueryParamsValue();\n\n const { Skip, PageSize, Result } = queue\n ? await this.service.getQueueTasksForUser(\n params.user || '',\n params.skip,\n params.limit,\n params.sortParam || 'CreatedDate',\n params.sortOrder\n )\n : await this.service.getTasksForUser(\n params.user || '',\n params.skip,\n params.limit,\n params.sortParam || 'CreatedDate',\n params.sortOrder\n );\n\n if (Result) {\n this.state.setRequests(Result);\n this.state.updateQueryParams({ skip: Skip });\n }\n } catch (error) {\n console.error('Failed to load requests:', error);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async loadRequestsWithParam(param: string): Promise<void> {\n try {\n this.state.setUpdating(true);\n const params = this.state.getQueryParamsValue();\n\n const requests = await this.service.getTaskWithParam(\n param,\n params.skip,\n params.limit,\n params.sortParam || 'CreatedDate',\n params.sortOrder\n );\n\n this.state.setRequests(requests.Result);\n this.state.updateQueryParams({ skip: requests.Skip });\n } catch (error) {\n console.error('Failed to load requests with param:', error);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n updateQueryParams(\n params: Partial<QueryParams<Task>> & { user?: string }\n ): void {\n this.state.updateQueryParams(params);\n // this.loadRequests();\n }\n\n async addRequest(request: Partial<Task>): Promise<void> {\n try {\n this.state.setUpdating(true);\n const newRequest = { ...request } as Task;\n this.state.addRequest(newRequest);\n\n await this.service.saveTasks([newRequest]);\n this.utilService.showSuccess('Task created successfully');\n await this.loadRequests(); // Reload to get server-side changes\n } catch (error) {\n console.error('Failed to add request:', error);\n this.state.removeRequest(request.Code!);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async updateRequest(request: Task): Promise<void> {\n try {\n this.state.setUpdating(true);\n await this.service.saveTasks([request]);\n this.utilService.showSuccess('Task updated successfully');\n this.state.updateRequest(request);\n } catch (error) {\n console.error('Failed to update request:', error);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async deleteRequest(requestId: string): Promise<void> {\n try {\n this.state.setUpdating(true);\n await lastValueFrom(this.service.deleteTasks([requestId]));\n this.state.removeRequest(requestId);\n } catch (error) {\n console.error('Failed to delete request:', error);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async approveRequest(request: Task): Promise<void> {\n try {\n this.state.setUpdating(true);\n const response = await this.service.processTasks([request], true);\n // console.log(response);\n const data = (response as Task[])?.[0];\n if (data) {\n this.state.updateRequest(data);\n }\n } catch (error) {\n console.error('Failed to update request:', error);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async loadNextActions(taskCode: string): Promise<WorkflowAction[]> {\n try {\n this.state.setUpdating(true);\n const params = this.state.getQueryParamsValue();\n\n const requests = await this.service.getNextActions(taskCode);\n\n this.state.setNextActions(requests);\n\n // if (requests.length > 0) {\n // // this.selectedAction = actions[0];\n // this.loadNextActors(taskCode, requests[0].ToStage);\n // }\n\n return requests;\n } catch (error) {\n console.error('Failed to load requests with param:', error);\n return [];\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async loadPreviousActions(taskCode: string): Promise<WorkflowAction[]> {\n try {\n this.state.setUpdating(true);\n\n const requests = await this.service.getPreviousActions(taskCode);\n\n this.state.setNextActions(requests);\n\n return requests;\n } catch (error) {\n console.error('Failed to load requests with param:', error);\n return [];\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async loadAllPreviousActions(taskCode: string): Promise<WorkflowAction[]> {\n try {\n this.state.setUpdating(true);\n\n const requests = await this.service.getAllPreviousActions(taskCode);\n\n this.state.setNextActions(requests);\n\n return requests;\n } catch (error) {\n console.error('Failed to load requests with param:', error);\n return [];\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async loadNextActors(\n taskCode: string,\n forCurrentStage: boolean,\n stageCode?: string,\n ): Promise<Actor[]> {\n try {\n this.state.setUpdating(true);\n const params = this.state.getQueryParamsValue();\n\n const requests = await this.service.getNextActors(\n taskCode,\n forCurrentStage,\n stageCode,\n );\n\n this.state.setNextActors(requests);\n\n return requests;\n } catch (error) {\n console.error('Failed to load requests with param:', error);\n return [];\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async loadTaskForms(taskCode: string): Promise<Form[]> {\n try {\n this.state.setUpdating(true);\n console.log('Loading task form');\n const requests = await this.service.getCurrentFormsForTask(taskCode);\n console.log('FORMS', requests);\n this.state.setTaskForms(requests);\n\n return requests;\n } catch (error) {\n console.error('Failed to load requests with param:', error);\n return [];\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async passOn(\n action: WorkflowAction,\n request: Task,\n comment: string,\n recipient: string | null,\n currentUser: string\n ): Promise<void> {\n try {\n this.state.setUpdating(true);\n const response = await this.service.passOn(\n action.FromStage,\n action.ToStage,\n {\n ...request,\n FullStages: [],\n CurrentActors: request.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n },\n comment,\n recipient ?? undefined\n );\n // console.log(response);\n const data = response as Task;\n if (data) {\n if (data.CurrentActors.map((c) => c.Identifier).includes(currentUser)) {\n this.state.updateRequest(data);\n } else {\n this.state.removeRequest(request.Code);\n }\n this.utilService.showSuccess('Task passed on successfully');\n }\n } catch (error) {\n console.error('Failed to update request:', error);\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async passBack(\n action: WorkflowAction,\n request: Task,\n comment: string,\n recipient: string | null,\n currentUser: string\n ): Promise<void> {\n try {\n this.state.setUpdating(true);\n const response = await this.service.passBack(\n // Alternate from and to stage o.\n action.ToStage,\n action.FromStage,\n {\n ...request,\n FullStages: [],\n CurrentActors: request.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n },\n comment,\n recipient ?? undefined\n );\n // console.log(response);\n const data = response as Task;\n if (data) {\n if (data.CurrentActors.map((c) => c.Identifier).includes(currentUser)) {\n this.state.updateRequest(data);\n } else {\n this.state.removeRequest(request.Code);\n }\n this.utilService.showSuccess('Task passed back successfully');\n }\n } catch (error) {\n console.error('Failed to update request:', error);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async skipTo(\n from: WorkflowAction['FromStage'],\n to: WorkflowAction['ToStage'],\n request: Task,\n comment: string,\n recipient: string | null,\n currentUser: string\n ): Promise<void> {\n try {\n this.state.setUpdating(true);\n const response = await this.service.skipTo(\n from,\n to,\n {\n ...request,\n FullStages: [],\n CurrentActors: request.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n },\n comment,\n recipient ?? undefined\n );\n // console.log(response);\n const data = response as Task;\n if (data) {\n if (data.CurrentActors.map((c) => c.Identifier).includes(currentUser)) {\n this.state.updateRequest(data);\n } else {\n this.state.removeRequest(request.Code);\n }\n this.utilService.showSuccess('Task skipped to successfully');\n }\n } catch (error) {\n console.error('Failed to update request:', error);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async pickTask(\n action: WorkflowAction,\n request: Task,\n comment: string,\n recipient: string | null,\n currentUser: string\n ): Promise<void> {\n try {\n this.state.setUpdating(true);\n const response = await this.service.passOn(\n action.FromStage,\n action.ToStage,\n {\n ...request,\n FullStages: [],\n CurrentActors: request.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n },\n comment,\n recipient ?? undefined\n );\n // console.log(response);\n const data = response as Task;\n if (data) {\n if (data.CurrentActors.map((c) => c.Identifier).includes(currentUser)) {\n this.state.updateRequest(data);\n } else {\n this.state.removeRequest(request.Code);\n }\n this.utilService.showSuccess('Task picked successfully');\n }\n } catch (error) {\n console.error('Failed to update request:', error);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async reAssign(request: Task, comment: string, currentUser: string): Promise<void> {\n try {\n this.state.setUpdating(true);\n const response = await this.service.reAssign(\n {\n ...request,\n FullStages: [],\n CurrentActors: request.CurrentActors.map((c) => ({\n ...c,\n ActorTags: [],\n })),\n },\n comment\n );\n // console.log(response);\n const data = response as Task;\n if (data) {\n if (data.CurrentActors.map((c) => c.Identifier).includes(currentUser)) {\n this.state.updateRequest(data);\n } else {\n this.state.removeRequest(request.Code);\n }\n this.utilService.showSuccess('Task re-assigned successfully');\n }\n } catch (error) {\n console.error('Failed to update request:', error);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n async fillForm(form: Form, taskCode: string): Promise<Form> {\n try {\n this.state.setUpdating(true);\n const filledForm = await this.service.fillForm(form, taskCode);\n return filledForm;\n } catch (error) {\n console.error('Failed to fill form:', error);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n\n // Load more handling\n async loadMore(queue: boolean = false): Promise<void> {\n try {\n this.state.setUpdating(true);\n const currentParams = this.state.getQueryParamsValue();\n // const searchTerm = this.state.getSearchTermValue();\n const searchTerm = false;\n\n // Update skip value\n const newSkip = currentParams.skip + currentParams.limit;\n\n // Load and append data\n const response = queue\n ? await this.service.getQueueTasksForUser(\n currentParams.user || '',\n currentParams.skip,\n currentParams.limit,\n currentParams.sortParam || 'CreatedDate',\n currentParams.sortOrder\n )\n : await this.service.getTasksForUser(\n currentParams.user || '',\n currentParams.skip,\n currentParams.limit,\n currentParams.sortParam || 'CreatedDate',\n currentParams.sortOrder\n );\n\n this.state.appendRequests(response.Result);\n this.state.updateQueryParams({\n skip: newSkip,\n limit: currentParams.limit,\n });\n } catch (error) {\n console.error('Load more failed:', error);\n throw error;\n } finally {\n this.state.setUpdating(false);\n }\n }\n}\n","import { ChangeDetectorRef, Component, input, Input } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { VerbenPopUpComponent } from 'verben-ng-ui';\nimport { TaskModel } from 'verben-workflow-ui/src/lib/components/tasks';\nimport { Actor, DataType, Form, ObjectState, Task, TaskStatus, WorkflowAction } from 'verben-workflow-ui/src/lib/models';\nimport { BaseDataViewComponent, DataViewConfig } from 'verben-workflow-ui/src/lib/shared';\nimport { columns } from './my-queue.columns';\nimport { MyQueueFacade } from './my-queue.facade';\nimport { MyQueueService } from './my-queue.service';\nimport { MyQueueState } from './my-queue.state';\n\n@Component({\n selector: 'lib-my-queue',\n templateUrl: './my-queue.component.html',\n styleUrl: './my-queue.component.css',\n providers: [MyQueueService, MyQueueState, MyQueueFacade],\n})\nexport class MyQueueComponent extends BaseDataViewComponent<Task> {\n isGeneral = input<boolean>(false);\n @Input() user!: string;\n config: DataViewConfig<Task> = {\n dataSource: [], // Populate from service\n columns: columns, // Your existing column definitions\n cardDataMapper: (task) => ({\n selected: false,\n title: task.Name,\n data: task,\n body: [\n { title: 'Name', value: task.Name },\n { title: 'Status', value: task.Status },\n ],\n children: [],\n }),\n onDetailView: (task) => {\n // Custom detail view logic\n },\n };\n\n selectedTaskCode: string | null = null;\n activeActionType: ActionType | null = null;\n comment: string = '';\n isModalVisible: boolean = false;\n\n tableRowActions = [\n { label: 'Pick Task', action: (data: Task) => { }, divider: false },\n { label: 'Release Task', action: (data: Task) => { }, divider: false },\n { label: 'Follow Task', action: (data: Task) => { }, divider: true },\n { label: 'Unfollow Task', action: (data: Task) => { }, divider: true },\n\n {\n label: 'Pass On',\n action: (data: Task) => {\n // console.log(data);\n this.activeActionType = ActionType.PassOn;\n this.selectedTaskCode = data.Code;\n this.facade.loadNextActions(data.Code);\n // .then((actions) => {\n // if (actions.length === 1) {\n // this.selectedAction = actions[0];\n // this.facade\n // .loadNextActors(data.Code, this.selectedAction?.Code)\n // .then((actors) => {});\n // }\n // });\n this.facade.loadTaskForms(data.Code);\n // console.log(this.selectedTaskCode);\n },\n divider: false,\n },\n {\n label: 'Pass Back',\n action: (data: Task) => {\n this.activeActionType = ActionType.PassBack;\n this.selectedTaskCode = data.Code;\n this.facade.loadPreviousActions(data.Code);\n },\n divider: false,\n },\n {\n label: 'Skip To',\n action: (data: Task) => {\n this.activeActionType = ActionType.SkipTo;\n this.selectedTaskCode = data.Code;\n this.facade.loadAllPreviousActions(data.Code);\n },\n divider: false,\n },\n {\n label: 'Re-Assign',\n action: (data: Task) => {\n this.activeActionType = ActionType.ReAssign;\n this.selectedTaskCode = data.Code;\n },\n divider: true,\n },\n // { label: 'View Operation', action: (data: Task) => {}, divider: false },\n ];\n\n nextActions: WorkflowAction[] = [];\n nextActors: Actor[] = [];\n stageForm: Form | null = null;\n active: number = 0;\n dataType: DataType = DataType.Text;\n\n recipientCode: string | null = null;\n selectedAction: BehaviorSubject<WorkflowAction | null> =\n new BehaviorSubject<WorkflowAction | null>(null);\n currentTask: Task | null = null;\n\n constructor(private cdr: ChangeDetectorRef, private facade: MyQueueFacade) {\n super();\n\n this.facade.getRequests$().subscribe((data) => {\n this.data.set(data);\n });\n\n this.facade.getNextActions$().subscribe((data) => {\n this.nextActions = data;\n });\n\n this.facade.getNextActors$().subscribe((data) => {\n this.nextActors = data;\n });\n\n this.facade.getTaskForms$().subscribe((data) => {\n this.stageForm = data?.[0] || null;\n });\n\n this.selectedAction.subscribe((action) => {\n if (action) {\n this.facade.loadNextActors(this.selectedTaskCode!, false, action.ToStage);\n } else {\n this.nextActors = [];\n }\n });\n }\n\n override loadInitialData() {\n this.facade.updateQueryParams({ user: this.user });\n try {\n this.facade.loadRequests();\n } catch (error) {\n // Handle error\n }\n }\n\n // protected getCardDataByIdentifier(mailAddress: string): CardData | undefined {\n // return this.cardData().find(({ data }) => data.MailAddress === mailAddress);\n // }\n\n async loadMore() {\n try {\n await this.facade.loadMore();\n } catch (error) {\n // Handle error\n }\n }\n\n getTableActions(task: Task) {\n const actions = [] as typeof this.tableRowActions;\n if (this.isGeneral()) {\n const actionNames = [\n 'Pick Task',\n 'Release Task',\n 'Follow Task',\n 'Unfollow Task',\n ];\n actions.push(\n ...this.tableRowActions.filter(({ label }) =>\n actionNames.includes(label)\n )\n );\n } else {\n const actionNames = ['Pass On', 'Pass Back', 'Skip To', 'Re-Assign'];\n if (task.FullStages?.[0]?.IsEntryPoint) {\n actions.push(\n ...this.tableRowActions.filter(\n ({ label }) => actionNames.includes(label) && label !== 'Pass Back'\n )\n );\n } else {\n actions.push(\n ...this.tableRowActions.filter(({ label }) =>\n actionNames.includes(label)\n )\n );\n }\n }\n\n return actions;\n }\n\n groupByWorkflowCode(task: Task) {\n return `Workflow: ${task.WorkflowCode}`;\n }\n\n handlePopupClose(event: boolean) {\n // console.log('Closing...', event);\n if (event) {\n this.selectedTaskCode = null;\n }\n }\n\n checkForFormThenPassOn(task: Task, popup?: VerbenPopUpComponent) {\n this.currentTask = task;\n\n if (this.stageForm) {\n popup?.toggleDropdown();\n this.isModalVisible = true;\n } else {\n this.passOn(popup);\n }\n\n // this.passOn(popup);\n }\n\n handleAction(task: Task, popup: VerbenPopUpComponent) {\n const action = this.activeActionType;\n\n switch (action) {\n case ActionType.PassOn:\n // console.log('Pass On Action', task);\n this.checkForFormThenPassOn(task, popup);\n break;\n case ActionType.ReAssign:\n this.facade.reAssign(task, this.comment, this.user).then(() => {\n this.comment = '';\n this.nextActions = [];\n this.recipientCode = null;\n this.selectedAction.next(null);\n popup.toggleDropdown();\n });\n break;\n case ActionType.PassBack:\n if (this.selectedAction) {\n const selectedAction = this.selectedAction.getValue();\n if (selectedAction) {\n this.facade\n .passBack(selectedAction, task, this.comment, this.recipientCode, this.user)\n .then(() => {\n this.comment = '';\n this.nextActions = [];\n this.recipientCode = null;\n this.selectedAction.next(null);\n popup.toggleDropdown();\n });\n }\n }\n break;\n case ActionType.SkipTo:\n const selectedAction = this.selectedAction.getValue();\n // console.log('Selected Action for Skip:', selectedAction);\n // console.log('Task for Skip:', task);\n // console.log('Comment for Skip:', this.comment);\n // console.log('Recipient Code for Skip:', this.recipientCode);\n if (selectedAction) {\n this.facade\n .skipTo(\n task.CurrentStages[0],\n selectedAction.ToStage,\n task,\n this.comment,\n this.recipientCode,\n this.user\n )\n .then(() => {\n this.comment = '';\n this.nextActions = [];\n this.recipientCode = null;\n this.selectedAction.next(null);\n popup.toggleDropdown();\n });\n }\n break;\n default:\n break;\n }\n }\n\n submitForm() {\n const form = this.stageForm;\n if (form && this.currentTask) {\n this.facade\n .fillForm(form, this.currentTask.Code)\n .then((filledForm) => {\n this.stageForm = null;\n this.isModalVisible = false;\n this.passOn();\n })\n .catch((error) => {\n console.error('Error filling form:', error);\n // Handle error (e.g., show a notification)\n });\n }\n }\n\n passOn(popup?: VerbenPopUpComponent) {\n const selectedAction = this.selectedAction.getValue();\n // console.log('Selected Action:', selectedAction);\n // console.log('Current Task:', this.currentTask);\n // console.log('Comment:', this.comment);\n // console.log('Recipient Code:', this.recipientCode);\n if (selectedAction && this.currentTask && this.comment) {\n this.facade\n .passOn(\n selectedAction,\n this.currentTask,\n this.comment,\n this.recipientCode,\n this.user\n )\n .then(() => {\n this.comment = '';\n this.nextActions = [];\n this.recipientCode = null;\n this.selectedAction.next(null);\n\n if (popup) {\n popup.toggleDropdown();\n }\n });\n }\n }\n\n areRequiredPropertiesFilled(): boolean {\n const properties = this.stageForm?.Entities[this.active].Properties || [];\n\n // Check if all required properties have valid values\n // return properties.every((property: any) => {\n // console.log(property);\n // return (\n // !property.isRequired ||\n // (property.Value !== undefined &&\n // property.Value !== null &&\n // property.Value !== '')\n // );\n // });\n return true;\n }\n\n onActionDropDownChange(event: any) {\n const selectedAction = event as WorkflowAction;\n if (selectedAction) {\n console.log('Selected Action:', selectedAction);\n // // this.selectedAction = selectedAction;\n // this.facade\n // .loadNextActors(this.selectedTaskCode!, selectedAction.Code)\n // .then((actors) => {});\n }\n }\n\n override onStateChange(event: { key: string; value: boolean }): void {\n switch (event.key) {\n case 'create':\n var newItem: Task = new TaskModel({\n WorkflowCode: '',\n Status: TaskStatus.Active,\n Flowable: '',\n FlowableData: null,\n FlowablePath: '',\n CurrentActors: [],\n DataState: ObjectState.New,\n }) as unknown as Task;\n this.facade.addNewRequest(newItem);\n // const cardData: CardData = {\n // selected: false,\n // title: ,\n // data: newGroup,\n // body: [],\n // children: [],\n // };\n // this.data = this.data.concat([newGroup]);\n // this.cardData.push(cardData);\n // this.userCardClicked(cardData);\n this.dataView.isTableView = false;\n break;\n // case 'filter':\n // this.showFilter = event.value;\n // break;\n // case 'sort':\n // this.showSort = event.value;\n // break;\n // case 'column':\n // this.showColumn = event.value;\n // break;\n default:\n break;\n }\n }\n}\n\nenum ActionType {\n PickTask = 'PickTask',\n UnPickTask = 'UnPickTask',\n ReAssign = 'ReAssign',\n PassOn = 'PassOn',\n PassBack = 'PassBack',\n FollowTask = 'FollowTask',\n UnfollowTask = 'UnfollowTask',\n SkipTo = 'SkipTo',\n}\n","<div class=\"space-y-8\">\n <verben-data-view #vdv [viewState]=\"{\n isSearch: true,\n isColumn: true,\n isFilter: true,\n isSort: true,\n isExport: true,\n isSelect: true,\n isCreate: isGeneral(),\n isToggle: true,\n }\" [buttonClass]=\"'my-custom-button-class'\" [iconClass]=\"'my-icon-class'\"\n [activeIconClass]=\"'my-active-icon-class'\" [selectedColumnCount]=\"0\" [selectedSortCount]=\"0\"\n [selectedFilterTableCount]=\"0\" (viewChange)=\"onViewChange($event)\" (stateChange)=\"onStateChange($event)\">\n <div table-content>\n <lib-data-table [data]=\"data()\" [columns]=\"config.columns\" [styleConfig]=\"styles\"\n (selectionChange)=\"onSelectionChange($event)\" [groupBy]=\"groupByWorkflowCode\">\n <ng-container libColumn=\"history\">\n <ng-template #cell let-value let-deleteRow>\n <a [routerLink]=\"['/workflow/task-history', value]\" routerLinkActive=\"router-link-active\"\n class=\"underline text-[#0000FF]\">view history</a>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"workflow\">\n <ng-template #cell let-value>\n <a [routerLink]=\"['/workflow/workflows', value]\" routerLinkActive=\"router-link-active\"\n class=\"underline text-[#0000FF]\">view Workflow</a>\n </ng-template>\n </ng-container>\n\n <ng-container libColumn=\"actions\">\n <ng-template #cell let-row=\"row\">\n <verben-pop-Up #popup [customStyles]=\"{ 'z-index': '99' }\" [enableMouseLeave]=\"false\" [customStyles]=\"{\n border: '1px solid #d4a10780',\n borderRadius: '5px',\n backgroundColor: 'white'\n }\" (dropdownOpenChange)=\"handlePopupClose($event)\">\n <verben-svg dropdown-trigger icon=\"dots\" [width]=\"3\" [height]=\"18\"\n class=\"cursor-pointer w-auto\"></verben-svg>\n <div class=\"bg-white rounded-sm\" dropdown-content>\n @for (item of getTableActions(row); track item.label) {\n\n <verben-pop-Up #popup2 [customStyles]=\"{ 'z-index': '99' }\" [enableMouseLeave]=\"false\" [customStyles]=\"{\n border: '1px solid #d4a10780',\n borderRadius: '5px',\n backgroundColor: 'white'\n }\" (dropdownOpenChange)=\"handlePopupClose($event)\">\n <div (click)=\"item.action(row)\" dropdown-trigger class=\"cursor-pointer py-2 px-3 hover:bg-primary\">\n {{ item.label }}\n </div>\n <div class=\"bg-white rounded-sm\" dropdown-content>\n <div 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 <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\">Select Assignee</h3>\n </div>\n\n <div class=\"grid gap-2 max-h-96 overflow-y-auto p-2\">\n <verben-drop-down label=\"Action\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\"\n [filter]=\"true\" [showClear]=\"true\" placeholder=\"Select Action\" [(options)]=\"nextActions\"\n id=\"actions\" optionLabel=\"Name\" [ngModel]=\"selectedAction | async\"\n (ngModelChange)=\"selectedAction.next($event)\" class=\"form-control\">\n </verben-drop-down>\n\n <verben-drop-down label=\"Actors\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\"\n [filter]=\"true\" [showClear]=\"true\" placeholder=\"Select Actor\" [(options)]=\"nextActors\"\n id=\"actors\" optionLabel=\"Name\" optionValue=\"Code\" [(ngModel)]=\"recipientCode\"\n class=\"form-control\">\n </verben-drop-down>\n\n <textarea [(ngModel)]=\"comment\" placeholder=\"Enter Comment\"\n class=\"w-full p-1 text-xs border border-primary rounded-md\" style=\"height: 8rem\"\n [cols]=\"8\"></textarea>\n\n <verbena-button [disable]=\"!comment\" [text]=\"activeActionType ?? ''\"\n (click)=\"handleAction(row, popup)\" class=\"text-xs w-full\" bgColor=\"#FFE681\"\n textColor=\"#404040\" borderRadius=\"10px\" fontSize=\"14px\" pd=\"10px 20px\" width=\"100%\"\n height=\"32px\">\n {{ activeActionType }}\n </verbena-button>\n </div>\n </div>\n </div>\n </verben-pop-Up>\n\n @if (item.divider) {\n <hr class=\"bg-[#FFE681] h-1 rounded-xl border-0\" />\n } }\n </div>\n </verben-pop-Up>\n </ng-template>\n <ng-template #header>\n <strong class=\"text-center\">Actions</strong>\n </ng-template>\n </ng-container>\n </lib-data-table>\n </div>\n <div card-content>\n <verben-card-data-view borderRadius=\"12px\" (loadMoreClick)=\"loadMore()\" #vdcv dataId=\"Id\" border=\"5px\"\n [cardDataList]=\"cardData()\" rbgColor=\"#f5f6f9\" mg=\"20px\">\n <verben-left-card-data-view class=\"space-y-7\">\n <verben-left-card-data #vlcd [parent]=\"vdcv\" dataId=\"Code\"\n class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\" [cardDataList]=\"cardData()\">\n <ng-template #card let-item>\n <div (click)=\"\n currentData = isGeneral() ? vdcv.onItemClick(item) : null\n \" class=\"flex\">\n <div (click)=\"\n currentData = isGeneral() ? vdcv.onItemClick(item) : null\n \" class=\"flex cursor-pointer w-full bg-secondary rounded-xl\">\n <div class=\"w-3 rounded-xl rounded-tr-none rounded-br-none\" [ngClass]=\"\n item.selected ? 'bg-primary' : 'bg-secondary-200'\n \"></div>\n <div class=\"flex flex-col py-2 px-4 w-full\">\n <div class=\"flex items-center gap-4 justify-between\">\n <div class=\"grid gap-y-2\">\n <span class=\"font-semibold text-[#404040]\">{{\n item.title\n }}</span>\n <p class=\"flex items-center\">\n <label for=\"phone\" class=\"text-[10px] font-light\">Status:</label>\n <span id=\"phone\" class=\"text-sm\">{{\n item.data.Status\n }}</span>\n </p>\n </div>\n\n <div class=\"grid gap-y-2\">\n <span for=\"role\" class=\"font-light\">{{\n item.data.WorkflowCode\n }}</span>\n\n <div (click)=\"$event.stopPropagation();\" class=\"flex items-end gap-4\">\n <a [routerLink]=\"[\n '/workflow/task-history',\n item.data.Code\n ]\" routerLinkActive=\"router-link-active\" class=\"underline text-[#0000FF] text-xs\">view\n history</a>\n\n <verben-pop-Up #popup [customStyles]=\"{ 'z-index': '99' }\" [enableMouseLeave]=\"false\"\n [customStyles]=\"{\n border: '1px solid #d4a10780',\n borderRadius: '5px',\n backgroundColor: 'white'\n }\" (dropdownOpenChange)=\"handlePopupClose($event);\">\n <verben-svg dropdown-trigger icon=\"dots\" [width]=\"3\" [height]=\"18\"\n class=\"cursor-pointer\"></verben-svg>\n <div class=\"bg-white rounded-sm\" dropdown-content>\n @for (actionItem of getTableActions(item.data); track actionItem.label) {\n\n <verben-pop-Up #popup2 [customStyles]=\"{ 'z-index': '99' }\" [enableMouseLeave]=\"false\"\n [customStyles]=\"{\n border: '1px solid #d4a10780',\n borderRadius: '5px',\n backgroundColor: 'white'\n }\" (dropdownOpenChange)=\"handlePopupClose($event)\">\n <div (click)=\"actionItem.action(item.data)\" dropdown-trigger\n class=\"cursor-pointer py-2 px-3 hover:bg-primary\">\n {{ actionItem.label }}\n </div>\n <div class=\"bg-white rounded-sm\" dropdown-content>\n <div 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\"\n xmlns=\"http://www.w3.org/2000/svg\">\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\">Select Assignee</h3>\n </div>\n\n <div class=\"grid gap-2 max-h-96 overflow-y-auto p-2\">\n <verben-drop-down label=\"Action\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" [showClear]=\"true\"\n placeholder=\"Select Action\" [(options)]=\"nextActions\" id=\"actions\"\n optionLabel=\"Name\" [ngModel]=\"selectedAction | async\"\n (ngModelChange)=\"selectedAction.next($event)\" class=\"form-control\">\n </verben-drop-down>\n\n <verben-drop-down label=\"Actors\" styleClass=\"w-full\" width=\"100%\"\n [multiselect]=\"false\" [filter]=\"true\" [showClear]=\"true\"\n placeholder=\"Select Actor\" [(options)]=\"nextActors\" id=\"actors\"\n optionLabel=\"Name\" optionValue=\"Code\" [(ngModel)]=\"recipientCode\"\n class=\"form-control\">\n </verben-drop-down>\n\n <textarea [(ngModel)]=\"comment\" placeholder=\"Enter Comment\"\n class=\"w-full p-1 text-xs border border-primary rounded-md\" style=\"height: 8rem\"\n [cols]=\"8\"></textarea>\n\n <verbena-button [disable]=\"!comment\" [text]=\"activeActionType ?? ''\"\n (click)=\"handleAction(item.data, popup)\" class=\"text-xs w-full\"\n bgColor=\"#FFE681\" textColor=\"#404040\" borderRadius=\"10px\" fontSize=\"14px\"\n pd=\"10px 20px\" width=\"100%\" height=\"32px\">\n {{ activeActionType }}\n </verbena-button>\n </div>\n </div>\n </div>\n </verben-pop-Up>\n\n @if (actionItem.divider) {\n <hr class=\"bg-[#FFE681] h-1 rounded-xl border-0\" />\n } }\n </div>\n </verben-pop-Up>\n </div>\n </div>\n </div>\n\n <!-- <div class=\"flex\">\n <span class=\"font-normal text-sm\">{{ item.title }}</span>\n </div>\n @for (ciItem of item.body; track ciItem.value) {\n <div class=\"\">\n <span class=\"text-muted font-light text-xs\"\n >{{ ciItem.title }}:</span\n >\n <span class=\"text-black\">{{ ciItem.value }}</span>\n </div>\n } -->\n </div>\n </div>\n </div>\n </ng-template>\n </verben-left-card-data>\n </verben-left-card-data-view>\n\n <verben-right-card-data-view>\n <ng-template #parent>\n <!-- <lib-user-request-form\n [currentData]=\"currentData\"\n (switchView)=\"vdv.toggleView()\"\n (onApproval)=\"onApprove($event)\"\n ></lib-user-request-form> -->\n </ng-template>\n </verben-right-card-data-view>\n\n <verben-card-data-view-footer class=\"w-full\">\n <div [ngClass]=\"{\n 'flex gap-2 items-center': true,\n 'justify-end': true,\n }\">\n <!-- <verbena-button\n *ngIf=\"!vdcv.hasCurrentItem()\"\n [fontWeight]=\"'bold'\"\n [bgColor]=\"'#8E8D87'\"\n [borderRadius]=\"'4px'\"\n [textColor]=\"'#fff'\"\n [pd]=\"'9.79px 37.28px'\"\n [text]=\"'Delete'\"\n >\n </verbena-button> -->\n <div class=\"flex {{\n vdcv.hasCurrentItem() ? 'flex-1' : ''\n }} justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData().length }} records loaded</span>\n <button (click)=\"loadMore()\" class=\"load-more view-links text-[#3479E9] underline\">\n Load more\n </button>\n </div>\n </div>\n </verben-card-data-view-footer>\n </verben-card-data-view>\n </div>\n <div column-content>\n <lib-data-columns [columns]=\"config.columns\" (columnsUpdated)=\"onColumnsUpdated($event)\"></lib-data-columns>\n </div>\n <div filter-content>\n <verben-table-filter [border]=\"'1px solid rgba(212, 160, 7, 1)'\" borderRadius=\"10px\"\n boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"420px\" textColor=\"black\" pd=\"1rem\"\n primaryColor=\"#FFE681\" secondaryColor=\"#3479E9\" tertiaryColor=\"#404040\" [filterOptions]=\"filterArray\"\n [maxFilterLength]=\"3\"></verben-table-filter>\n </div>\n <div sort-content>\n <lib-data-sort [columns]=\"config.columns\" [data]=\"data()\" (sortApplied)=\"onSortUpdated($event)\"></lib-data-sort>\n </div>\n <div export-content>\n <lib-data-export [data]=\"data()\" (exportDataEvent)=\"handleExport($event)\">\n </lib-data-export>\n </div>\n </verben-data-view>\n\n <div *ngIf=\"vdv.isTableView\" class=\"flex gap-2 justify-end\">\n\n <div class=\"flex justify-end items-center gap-5\">\n <span class=\"paginator-text\">{{ cardData().length }} records loaded</span>\n <button (click)=\"loadMore()\" class=\"load-more view-links text-[#3479E9] underline\">\n Load more\n </button>\n </div>\n </div>\n</div>\n\n<verben-dialogue [showCloseIcon]=\"true\" [dismissOutsideClick]=\"true\" [closeOnEscape]=\"true\" [mode]=\"'drawer'\"\n [padding]=\"'0px'\" [drawerWidth]=\"'400px'\" [disableFooter]=\"false\" [isVisible]=\"isModalVisible\" [modalData]=\"stageForm\"\n [headerTemplate]=\"headerTemplate\" [bodyTemplate]=\"bodyTemplate\" [showCloseIcon]=\"false\">\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)=\"isModalVisible = 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()\" [disable]=\"!areRequiredPropertiesFilled()\"\n 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","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CardData } from 'verben-ng-ui';\nimport { Task } from 'verben-workflow-ui/src/lib/models';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { Status } from 'verben-workflow-ui/src/lib/models';\nimport { Workflow } from 'verben-workflow-ui/src/lib/models';\nimport { Form } from 'verben-workflow-ui/src/lib/models';\nimport { DataType } from 'verben-workflow-ui/src/lib/models';\nimport { TaskFacade } from 'verben-workflow-ui/src/lib/components/tasks';\n\n@Component({\n selector: 'tasks-form',\n templateUrl: './tasks.form.component.html',\n})\nexport class TasksFormComponent {\n @Input()\n get currentData(): CardData | null {\n return this._currentData;\n }\n set currentData(value: CardData | null) {\n this._currentData = value;\n console.log(value?.data);\n if (value?.data) {\n this.form.patchValue({\n Name: value.data.Name || '',\n Description: value.data.Description || '',\n WorkflowCode: value.data.WorkflowCode || '',\n Status: value.data.Status || '',\n });\n } else {\n this.form.reset();\n }\n }\n\n private _currentData: CardData | null = null;\n\n taskForm: Form | null = null;\n active: number = 0;\n dataType: DataType = DataType.Text;\n\n @Output() onTaskFormSave = new EventEmitter<Form>();\n @Output() onSave = new EventEmitter<Partial<Task>>();\n\n form: FormGroup;\n statuses = Object.values(Status);\n workflows: Workflow[] = [];\n loadingTaskForm: boolean = false;\n taskFormView: boolean = false;\n\n // active: boolean = false;\n\n constructor(private fb: FormBuilder, private taskFacade: TaskFacade) {\n this.taskFacade.getWorkflow$().subscribe((workflows) => {\n this.workflows = workflows;\n });\n this.form = this.fb.group({\n Name: ['', { validators: [Validators.required] }],\n Description: ['', { validators: [Validators.required] }],\n WorkflowCode: ['', { validators: [Validators.required] }],\n Status: ['', { validators: [Validators.required] }],\n TaskForms: [],\n });\n }\n\n ngOnInit() {\n try {\n this.taskFacade.loadWorkflows().then(() => {});\n } catch (error) {\n // Handle error\n }\n\n this.form.get('WorkflowCode')?.valueChanges.subscribe((value) => {\n if (value) {\n const selectedWorkflow = this.workflows.find(\n ({ Code }) => Code === value\n );\n if (selectedWorkflow?.Form) {\n this.loadingTaskForm = true;\n this.taskFacade\n .loadFormsWithParam(selectedWorkflow.Form)\n .then((form) => {\n if (form) {\n this.taskForm = form;\n }\n })\n .finally(() => {\n this.loadingTaskForm = false;\n });\n } else {\n this.taskForm = null;\n }\n }\n });\n }\n\n handleSubmit(): void {\n if (this.form.valid) {\n // Emit save event with form value\n console.log('Form saved:', this.form.value);\n if (\n !this.taskForm ||\n (this.form.get('TaskForms')?.value as Form[])?.length > 0\n ) {\n this.onSave.emit(this.form.value);\n }\n }\n }\n\n onDelete(): void {\n // Emit delete event\n console.log('Delete requested');\n }\n\n sendTaskForm() {\n if (this.taskForm) {\n this.form\n .get('TaskForms')\n ?.setValue([{ ...this.taskForm, Swimlane: '' }]);\n this.taskFormView = false;\n this.onTaskFormSave.emit(this.taskForm);\n }\n }\n\n areRequiredPropertiesFilled(): boolean {\n const properties = this.taskForm?.Entities[this.active].Properties || [];\n\n // Check if all required properties have valid values\n // return properties.every((property: any) => {\n // console.log(property);\n // return (\n // !property.isRequired ||\n // (property.Value !== undefined &&\n // property.Value !== null &&\n // property.Value !== '')\n // );\n // });\n return true;\n }\n\n disableProcessing() {\n const selectedWorkflow = this.workflows.find(\n ({ Code }) => Code === this.form.get('WorkflowCode')?.value\n );\n\n if (\n selectedWorkflow?.Form &&\n (this.currentData?.data as Task)?.TaskForms?.length === 0\n ) {\n return true;\n } else return this.form.invalid;\n }\n}\n","@if (taskFormView && taskForm) {\n<div\n *ngIf=\"taskForm.Entities[active]\"\n class=\"flex flex-wrap bg-[#9A9FBF80] rounded-xl px-3 py-2 w-full relative gap-6\"\n>\n <app-form-timer></app-form-timer>\n <div *ngFor=\"let group of taskForm.Entities; let index = index\">\n <p\n (click)=\"active = index\"\n [ngClass]=\"{\n 'bg-[#fff] text-primary rounded-lg shadow-lg': active === index\n }\"\n class=\"px-6 py-2 cursor-pointer\"\n >\n {{ group.Name }}group\n </p>\n </div>\n</div>\n\n<div *ngIf=\"taskForm.Entities[active]; else emptyState\" class=\"mt-4\">\n <form-control\n [dataType]=\"dataType\"\n [formProperties]=\"taskForm.Entities[active].Properties\"\n ></form-control>\n\n <div class=\"flex gap-3 justify-end\">\n <verbena-button\n (click)=\"areRequiredPropertiesFilled()\"\n text=\"CHECK\"\n styleType=\"ylw-outline\"\n class=\"ml-auto\"\n ></verbena-button>\n\n <verbena-button\n (click)=\"taskFormView = false\"\n text=\"Close task form\"\n styleType=\"ylw-outline\"\n class=\"ml-auto\"\n ></verbena-button>\n\n <verbena-button\n class=\"verben-primary-button\"\n (click)=\"sendTaskForm()\"\n [disable]=\"!areRequiredPropertiesFilled()\"\n text=\"Save\"\n ></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\n} @else {\n<form\n [formGroup]=\"form\"\n class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\"\n (ngSubmit)=\"handleSubmit()\"\n>\n <verbena-input\n name=\"Name\"\n label=\"Name\"\n formControlName=\"Name\"\n placeHolder=\"Enter Name\"\n />\n <verbena-input\n name=\"Description\"\n label=\"Description\"\n formControlName=\"Description\"\n placeHolder=\"Enter Description\"\n />\n\n <div class=\"space-y-1\">\n <label for=\"workflow\">Workflow</label>\n\n <verben-drop-down\n label=\"Workflow\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n placeholder=\"Select\"\n [options]=\"workflows\"\n optionLabel=\"Name\"\n optionValue=\"Code\"\n id=\"workflow\"\n formControlName=\"WorkflowCode\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <div class=\"space-y-1\">\n <label for=\"status\">Status</label>\n\n <verben-drop-down\n label=\"Status\"\n styleClass=\"w-full\"\n width=\"100%\"\n [multiselect]=\"false\"\n [showClear]=\"true\"\n placeholder=\"Null\"\n [(options)]=\"statuses\"\n id=\"status\"\n formControlName=\"Status\"\n class=\"form-control\"\n >\n </verben-drop-down>\n </div>\n\n <!-- buttons -->\n <div class=\"flex justify-between gap-4 my-2\">\n <verbena-button\n width=\"114px\"\n height=\"39px\"\n text=\"Delete\"\n bgColor=\"#999999\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n [disable]=\"disableProcessing()\"\n ></verbena-button>\n <verbena-button\n [disable]=\"!taskForm || loadingTaskForm\"\n (click)=\"taskFormView = true\"\n [text]=\"loadingTaskForm ? 'Checking for form' : 'Fill task form'\"\n styleType=\"ylw-outline\"\n class=\"ml-auto\"\n ></verbena-button>\n <verbena-button\n type=\"submit\"\n text=\"Save\"\n bgColor=\"#FFE681\"\n textColor=\"#404040\"\n borderRadius=\"10px\"\n pd=\"10px 20px\"\n width=\"114px\"\n height=\"39px\"\n [disable]=\"disableProcessing()\"\n ></verbena-button>\n </div>\n</form>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { FormControlerModule } from 'verben-workflow-ui/src/lib/components/form-control';\nimport { FormTimerModule } from 'verben-workflow-ui/src/lib/components/form-timer';\nimport { SharedModule } from 'verben-workflow-ui/src/lib/shared';\nimport { MyQueueComponent } from './my-queue.component';\nimport { TasksFormComponent } from './tasks.form.component';\n\n@NgModule({\n declarations: [MyQueueComponent, TasksFormComponent],\n imports: [\n CommonModule,\n SharedModule,\n RouterLink,\n FormControlerModule,\n FormTimerModule,\n ],\n\n exports: [MyQueueComponent],\n})\nexport class MyQueueModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.MyQueueService","i2.MyQueueState","i3","i1.MyQueueFacade","i4","i1","i2","i5","i6"],"mappings":"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"}
|