{"version":3,"file":"verben-workflow-ui-src-lib-components-actors.mjs","sources":["../../../projects/verben-workflow-ui/src/lib/components/actors/actors.columns.ts","../../../projects/verben-workflow-ui/src/lib/components/actors/actors.service.ts","../../../projects/verben-workflow-ui/src/lib/components/actors/actors.state.ts","../../../projects/verben-workflow-ui/src/lib/components/actors/actors.facade.ts","../../../projects/verben-workflow-ui/src/lib/components/actors/actors.form.component.ts","../../../projects/verben-workflow-ui/src/lib/components/actors/actors.form.component.html","../../../projects/verben-workflow-ui/src/lib/components/actors/actors.component.ts","../../../projects/verben-workflow-ui/src/lib/components/actors/actors.component.html","../../../projects/verben-workflow-ui/src/lib/components/actors/actors.module.ts","../../../projects/verben-workflow-ui/src/lib/components/actors/verben-workflow-ui-src-lib-components-actors.ts"],"sourcesContent":["import { ColumnDefinition } from 'verben-ng-ui';\nimport { Actor } from 'verben-workflow-ui/src/lib/models';\n\nexport const columns: ColumnDefinition<Actor>[] = [\n  {\n    id: 'date',\n    header: 'CREATED',\n    accessorKey: 'CreatedAt',\n  },\n  {\n    id: 'name',\n    header: 'NAME',\n    accessorKey: 'Name',\n    formControlName: 'Name',\n  },\n  {\n    id: 'email',\n    header: 'E-MAIL',\n    accessorKey: 'Identifier',\n    formControlName: 'Identifier',\n  },\n  {\n    id: 'tags',\n    header: 'Tags',\n    accessorFn: (row) => {\n      const tags = row.Tags || [];\n      if (tags.length === 0) return '';\n      if (tags.length <= 3) {\n        return tags.map((tag) => tag.Name).join(', ');\n      }\n      const firstThree = tags\n        .slice(0, 3)\n        .map((tag) => tag.Name)\n        .join(', ');\n      return `${firstThree} ... + ${tags.length - 3} other(s)`;\n    },\n    formControlName: 'Tags',\n  },\n  { id: 'actions', header: 'Actions' },\n];\n","import { Injectable } from '@angular/core';\nimport { Actor, ErrorResponse, Paged, Tag } from 'verben-workflow-ui/src/lib/models';\nimport { EnvironmentService, HttpWebRequestService } from 'verben-workflow-ui/src/lib/services';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ActorService {\n\n  constructor(\n    private httpService: HttpWebRequestService,\n    private envSvc: EnvironmentService\n  ) { }\n\n  /**\n   * Get data 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 data\n   */\n  getData(\n    skip: number,\n    limit: number,\n    sortParam: string,\n    sortOrder: string\n  ): Promise<Paged<Actor> | ErrorResponse> {\n    const url = `GetActors/${skip}/${limit}/${sortParam}/${sortOrder}`;\n    return this.httpService.get(url) as Promise<Paged<Actor> | ErrorResponse>;\n  }\n\n  /**\n   * Get data 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 data\n   */\n  getActorWithParam(\n    param: string,\n    skip: number,\n    limit: number,\n    sortParam: string,\n    sortOrder: string\n  ): Promise<Paged<Actor> | ErrorResponse> {\n    const url = `GetActorsWithParam/${param}/${skip}/${limit}/${sortParam}/${sortOrder}`;\n    return this.httpService.get(url) as Promise<Paged<Actor> | ErrorResponse>;\n  }\n\n  /**\n   * Save multiple data\n   * @param requests Array of data to save\n   * @returns Promise containing the save operation result\n   */\n  saveActors(requests: Actor[]): Promise<any | ErrorResponse> {\n    const url = `SaveActors`;\n    return this.httpService.post(url, requests);\n  }\n\n  /**\n   * Get user access requests 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 user access requests\n   */\n  getTags(\n    skip: number,\n    limit: number,\n    sortParam: string,\n    sortOrder: string\n  ): Promise<Paged<Tag> | ErrorResponse> {\n    const url = `GetTags/${skip}/${limit}/${sortParam}/${sortOrder}`;\n    return this.httpService.get(\n      url,\n      this.envSvc.environment.AuthAPI\n    ) as Promise<Paged<Tag> | ErrorResponse>;\n  }\n\n  /**\n   * Get actor tags 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 actor tags\n   */\n  getActorTags(\n    skip: number,\n    limit: number,\n    sortParam: string,\n    sortOrder: string\n  ): Promise<Paged<Tag> | ErrorResponse> {\n    const url = `GetActorTags/${skip}/${limit}/${sortParam}/${sortOrder}`;\n    return this.httpService.get(url) as Promise<Paged<Tag> | ErrorResponse>;\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { IDataFilter } from 'verben-ng-ui';\nimport { Actor, QueryParams, SortDirection, Tag } from 'verben-workflow-ui/src/lib/models';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ActorState {\n  private updating$ = new BehaviorSubject<boolean>(false);\n  private data$ = new BehaviorSubject<Actor[]>([]);\n  private searchTerm$ = new BehaviorSubject<string>('');\n  private queryParams$ = new BehaviorSubject<QueryParams<Actor>>({\n    skip: 0,\n    limit: 20,\n    sortParam: 'CreatedAt',\n    sortOrder: SortDirection.Desc,\n  });\n  private filterParams$ = new BehaviorSubject<IDataFilter[]>([]);\n\n  private tags$ = new BehaviorSubject<Tag[]>([]);\n  private actorTags$ = new BehaviorSubject<Tag[]>([]);\n  //   private forms$ = 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<Actor[]> {\n    return this.data$.asObservable();\n  }\n\n  setRequests(data: Actor[]): void {\n    this.data$.next(data);\n  }\n\n  getTags$(): Observable<Tag[]> {\n    return this.tags$.asObservable();\n  }\n\n  setTags(tags: Tag[]): void {\n    this.tags$.next(tags);\n  }\n\n  getActorTags$(): Observable<Tag[]> {\n    return this.actorTags$.asObservable();\n  }\n\n  setActorTags(tags: Tag[]): void {\n    this.actorTags$.next(tags);\n  }\n\n  getSearchTerm$(): Observable<string> {\n    return this.searchTerm$.asObservable();\n  }\n\n  getSearchTermValue(): string {\n    return this.searchTerm$.getValue();\n  }\n\n  setSearchTerm(term: string): void {\n    this.searchTerm$.next(term);\n  }\n\n  getFilterParams$(): Observable<IDataFilter[]> {\n    return this.filterParams$.asObservable();\n  }\n\n  setFilterParams(params: IDataFilter[]): void {\n    this.filterParams$.next(params);\n  }\n\n  getQueryParams$(): Observable<QueryParams<Actor>> {\n    return this.queryParams$.asObservable();\n  }\n\n  getQueryParamsValue(): QueryParams<Actor> {\n    return this.queryParams$.getValue();\n  }\n\n  updateQueryParams(params: Partial<QueryParams<Actor>>): void {\n    this.queryParams$.next({ ...this.queryParams$.getValue(), ...params });\n  }\n\n  addRequest(task: Actor): void {\n    const currentValue = this.data$.getValue();\n    this.data$.next([task, ...currentValue]);\n  }\n\n  resetPagination(): void {\n    const currentParams = this.queryParams$.getValue();\n    this.queryParams$.next({ ...currentParams, skip: 0 });\n  }\n\n  updateRequest(updatedRequest: Actor): void {\n    const data = this.data$.getValue();\n    const index = data.findIndex((r) => r.Code === updatedRequest.Code);\n    if (index !== -1) {\n      data[index] = updatedRequest;\n      this.data$.next([...data]);\n    }\n  }\n\n  removeRequest(code: string): void {\n    const currentValue = this.data$.getValue();\n    this.data$.next(currentValue.filter((r) => r.Code !== code));\n  }\n\n  appendRequests(newRequests: Actor[]): void {\n    const currentRequests = this.data$.getValue();\n    this.data$.next([...currentRequests, ...newRequests]);\n  }\n}\n","import { Injectable } from '@angular/core';\nimport {\n  Observable,\n  Subject,\n  debounceTime,\n  distinctUntilChanged,\n  takeUntil,\n} from 'rxjs';\nimport { IDataFilter } from 'verben-ng-ui';\nimport { Actor, ErrorResponse, QueryParams, SortDirection, Tag } from 'verben-workflow-ui/src/lib/models';\nimport { UtilService } from 'verben-workflow-ui/src/lib/services';\nimport { ActorService } from './actors.service';\nimport { ActorState } from './actors.state';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ActorFacade {\n  private searchSubject = new Subject<string>();\n  private destroy$ = new Subject<void>();\n\n  constructor(\n    private service: ActorService,\n    private state: ActorState,\n    private utilService: UtilService\n  ) {\n    this.searchSubject\n      .pipe(\n        debounceTime(1000),\n        distinctUntilChanged(),\n        takeUntil(this.destroy$)\n      )\n      .subscribe((searchTerm) => {\n        this.handleSearch(searchTerm);\n      });\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<Actor[]> {\n    return this.state.getRequests$();\n  }\n\n  getTags$(): Observable<Tag[]> {\n    return this.state.getTags$();\n  }\n\n  getActorTags$(): Observable<Tag[]> {\n    return this.state.getActorTags$();\n  }\n\n  //   getForms$(): Observable<Form[]> {\n  //     return this.state.getForms$();\n  //   }\n\n  getQueryParams$(): Observable<QueryParams<Actor>> {\n    return this.state.getQueryParams$();\n  }\n\n  getSearchTerm$(): Observable<string> {\n    return this.state.getSearchTerm$();\n  }\n\n  // Search handling\n  search(term: string): void {\n    this.searchSubject.next(term);\n  }\n\n  private async handleSearch(searchTerm: string): Promise<void> {\n    this.state.setSearchTerm(searchTerm);\n    this.state.resetPagination();\n\n    try {\n      this.state.setUpdating(true);\n      if (searchTerm.trim()) {\n        await this.loadRequestsWithParam(searchTerm);\n      } else {\n        await this.loadRequests();\n      }\n    } catch (error) {\n      console.error('Search failed:', error);\n      throw error;\n    } finally {\n      this.state.setUpdating(false);\n    }\n  }\n\n  async filter(filterParams: IDataFilter[]): Promise<void> {\n    this.state.resetPagination();\n    this.state.setFilterParams(filterParams);\n  }\n\n  addNewRequest(task: Actor) {\n    this.state.addRequest(task);\n  }\n\n  async loadRequests(): Promise<void> {\n    try {\n      this.state.setUpdating(true);\n      const params = this.state.getQueryParamsValue();\n\n      const requests = await this.service.getData(\n        params.skip,\n        params.limit,\n        params.sortParam || 'createdDate',\n        params.sortOrder\n      );\n\n      if (requests instanceof ErrorResponse) {\n        this.utilService.showError(requests.ErrorMsg);\n        return;\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:', 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.getActorWithParam(\n        param,\n        params.skip,\n        params.limit,\n        params.sortParam || 'CreatedDate',\n        params.sortOrder\n      );\n\n      if (requests instanceof ErrorResponse) {\n        this.utilService.showError(requests.ErrorMsg);\n        return;\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(params: Partial<QueryParams<Actor>>): void {\n    this.state.updateQueryParams(params);\n    // this.loadRequests();\n  }\n\n  async addRequest(request: Partial<Actor>): Promise<void> {\n    try {\n      this.state.setUpdating(true);\n      const newRequest = { ...request } as Actor;\n      // this.state.addRequest(newRequest);\n\n      const response = await this.service.saveActors([newRequest]);\n\n      if (response instanceof ErrorResponse) {\n        this.utilService.showError(response.ErrorMsg);\n        return;\n      }\n\n      this.state.resetPagination();\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  resetPagination() {\n    this.state.resetPagination();\n  }\n\n  async updateRequest(request: Actor): Promise<void> {\n    try {\n      this.state.setUpdating(true);\n      const response = await this.service.saveActors([request]);\n\n      if (response instanceof ErrorResponse) {\n        this.utilService.showError(response.ErrorMsg);\n        return;\n      }\n\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  // 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 = await this.service.getData(\n        currentParams.skip,\n        currentParams.limit,\n        currentParams.sortParam || 'createdDate',\n        currentParams.sortOrder\n      );\n\n      if (response instanceof ErrorResponse) {\n        this.utilService.showError(response.ErrorMsg);\n        return;\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  // Load more handling\n  async loadData(skip: number, limit: number): Promise<Actor[] | void> {\n    try {\n      this.state.setUpdating(true);\n      const response = await this.service.getData(\n        skip,\n        limit,\n        'CreatedDate',\n        SortDirection.Desc\n      );\n\n      if (response instanceof ErrorResponse) {\n        this.utilService.showError(response.ErrorMsg);\n        return;\n      }\n\n      return response.Result;\n    } catch (error) {\n      console.error('Load more failed:', error);\n      throw error;\n    } finally {\n      this.state.setUpdating(false);\n    }\n  }\n\n  async loadTags(): Promise<void> {\n    try {\n      const response = await this.service.getTags(\n        0,\n        0,\n        'CreatedDate',\n        SortDirection.Desc\n      );\n\n      if (response instanceof ErrorResponse) {\n        this.utilService.showError(response.ErrorMsg);\n        return;\n      }\n\n      this.state.setTags(response.Result);\n    } catch (error) {\n      console.error('Failed to load requests:', error);\n      throw error;\n    } finally {\n    }\n  }\n\n  async loadActorTags(): Promise<void> {\n    try {\n      const response = await this.service.getActorTags(\n        0,\n        0,\n        'CreatedDate',\n        SortDirection.Desc\n      );\n\n      if (response instanceof ErrorResponse) {\n        this.utilService.showError(response.ErrorMsg);\n        return;\n      }\n\n      this.state.setActorTags(response.Result);\n    } catch (error) {\n      console.error('Failed to load actor tags:', error);\n      throw error;\n    }\n  }\n}\n","import {\n  Component,\n  EventEmitter,\n  Input,\n  Output,\n  signal,\n  WritableSignal,\n} from '@angular/core';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { CardData } from 'verben-ng-ui';\nimport { Actor, Status, Tag } from 'verben-workflow-ui/src/lib/models';\nimport { ActorFacade } from './actors.facade';\n\n@Component({\n  selector: 'actors-form',\n  templateUrl: './actors.form.component.html',\n})\nexport class ActorsFormComponent {\n  @Output() onSave = new EventEmitter<Partial<Actor>>();\n  @Output() switchView = new EventEmitter<undefined>();\n\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, \"FORM DATA\");\n    if (value?.data) {\n      this.form.patchValue({\n        Name: value.data.Name || '',\n        Identifier: value.data.Identifier || '',\n        Tags: value.data.Tags || [],\n        ActorTags: value.data.ActorTags || [],\n        Status: value.data.Status || Status.Active,\n      });\n    } else {\n      this.form.reset();\n    }\n  }\n\n  private _currentData: CardData | null = null;\n\n  form: FormGroup;\n  tags: WritableSignal<Tag[]> = signal([]);\n  actorTags: WritableSignal<Tag[]> = signal([]);\n  statusOptions: Status[] = Object.values(Status);\n\n\n  constructor(private fb: FormBuilder, private facade: ActorFacade) {\n    // this.facade.getWorkflow$().subscribe((workflows) => {\n    //   this.workflows = workflows;\n    // });\n    this.form = this.fb.group({\n      Name: ['', { validators: [Validators.required] }],\n      Identifier: ['', { validators: [Validators.required] }],\n      Tags: [[], { validators: [] }],\n      ActorTags: [[], { validators: [] }],\n      Status: [Status.Active, { validators: [Validators.required] }],\n    });\n\n    this.facade.loadActorTags();\n\n    this.facade.getTags$().subscribe((data) => {\n      this.tags.set(data);\n    });\n\n    this.facade.getActorTags$().subscribe((data) => {\n      this.actorTags.set(data);\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      this.onSave.emit(this.form.value);\n    }\n  }\n}\n","<form [formGroup]=\"form\" class=\"flex flex-col px-3 pb-3 rounded-xl h-full w-full relative space-y-4\"\n  (ngSubmit)=\"handleSubmit()\">\n  <verbena-input name=\"Name\" label=\"Name\" formControlName=\"Name\" placeHolder=\"Enter Name\" />\n  <verbena-input name=\"Identifier\" label=\"Identifier\" formControlName=\"Identifier\" placeHolder=\"Actor Identifier\" />\n\n  <div class=\"space-y-1\">\n    <label for=\"tags\">Tags</label>\n\n    <verben-drop-down selectKey=\"Code\" label=\"Tags\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\"\n      placeholder=\"Select\" [options]=\"tags()\" optionLabel=\"Name\" id=\"tags\" formControlName=\"Tags\" class=\"form-control\">\n    </verben-drop-down>\n  </div>\n\n  <div class=\"space-y-1\">\n    <label for=\"actorTags\">Actor Tags</label>\n\n    <verben-drop-down selectKey=\"Code\" label=\"Actor Tags\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"true\"\n      placeholder=\"Select\" [options]=\"actorTags()\" optionLabel=\"Name\" id=\"actorTags\" formControlName=\"ActorTags\"\n      class=\"form-control\">\n    </verben-drop-down>\n  </div>\n\n  <div class=\"space-y-1\">\n    <label for=\"status\">Status</label>\n\n    <verben-drop-down label=\"Status\" styleClass=\"w-full\" width=\"100%\" [multiselect]=\"false\" placeholder=\"Select\"\n      [options]=\"statusOptions\" id=\"status\" formControlName=\"Status\" class=\"form-control\">\n    </verben-drop-down>\n  </div>\n\n  <div class=\"flex justify-between gap-4 my-2\">\n    <verbena-button (click)=\"switchView.emit()\" text=\"Switch To Table\" styleType=\"ylw-outline\"\n      class=\"ml-auto\"></verbena-button>\n    <verbena-button type=\"submit\" text=\"Save\" bgColor=\"#FFE681\" textColor=\"#404040\" borderRadius=\"10px\" pd=\"10px 20px\"\n      width=\"114px\" height=\"39px\" [disable]=\"form.invalid\"></verbena-button>\n  </div>\n</form>\n","import {\n  ChangeDetectorRef,\n  Component,\n  signal,\n  WritableSignal\n} from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { CardData, FormGroupConfig } from 'verben-ng-ui';\nimport { Actor, ObjectState, Status, Tag } from 'verben-workflow-ui/src/lib/models';\nimport { BaseDataViewComponent, DataViewConfig } from 'verben-workflow-ui/src/lib/shared';\nimport { columns } from './actors.columns';\nimport { ActorFacade } from './actors.facade';\n\n@Component({\n  selector: 'lib-actors',\n  templateUrl: './actors.component.html',\n  styleUrl: './actors.component.css',\n})\nexport class ActorsComponent extends BaseDataViewComponent<Actor> {\n  config: DataViewConfig<Actor> = {\n    dataSource: [], // Populate from service\n    columns: columns, // Your existing column definitions\n    cardDataMapper: (actor) => ({\n      selected: false,\n      title: actor.Tags[0]?.Name,\n      data: actor,\n      body: [\n        { title: 'Name', value: actor.Name },\n        // { title: 'Status', value: actor.Status },\n      ],\n      children: [],\n    }),\n    onDetailView: (actor) => {\n      // Custom detail view logic\n    },\n  };\n\n  tags: WritableSignal<Tag[]> = signal([]);\n  formGroupConfig: WritableSignal<FormGroupConfig<any>>;\n\n  constructor(\n    private cdr: ChangeDetectorRef,\n    private facade: ActorFacade,\n    private fb: FormBuilder\n  ) {\n    super();\n\n    this.loadData = this.loadData.bind(this);\n\n    this.formGroupConfig = signal({\n      controls: {\n        Name: this.fb.control('', [Validators.required]),\n        Identifier: this.fb.control('', [Validators.required]),\n        Tags: this.fb.control([], [Validators.required]),\n        ActorTags: this.fb.control([], [Validators.required]),\n        Status: this.fb.control(Status.Active, [Validators.required]),\n      },\n      // validatorOrOpts: null,\n      // asyncValidator: null,\n    });\n\n    this.facade.getRequests$().subscribe((data) => {\n      this.data.set(data);\n    });\n\n    this.facade.getTags$().subscribe((data) => {\n      this.tags.set(data);\n    });\n  }\n\n  override loadInitialData() {\n    try {\n      this.facade.resetPagination();\n      this.facade.loadRequests();\n      this.facade.loadTags();\n    } catch (error) {\n      // Handle error\n    }\n  }\n\n  // generateFormGroup(data?: Partial<Actor>) {\n  //   console.log(data);\n  //   const form = this.fb.group({\n  //     Name: new FormControl(data?.Name ?? '', [Validators.required]),\n  //     Identifier: new FormControl(data?.Identifier ?? '', [\n  //       Validators.required,\n  //     ]),\n  //     Tags: new FormControl(data?.Tags ?? [], [Validators.required]),\n  //   });\n  //   // console.log(form.value);\n  //   return form;\n  // }\n\n  // getFormControl(index: number, field: string) {\n  //   const control = this.editForms.get(index)?.get(field) as FormControl<any>;\n  //   console.log(control);\n  //   return control;\n  // }\n\n  // isRowValid(index: number): boolean {\n  //   return this.editForms.get(index)?.valid || false;\n  // }\n\n  protected getCardDataByIdentifier(code: string): CardData | undefined {\n    return this.cardData()?.find(({ data }) => data.data.Code === code);\n  }\n\n  async loadMore() {\n    try {\n      await this.facade.loadMore();\n    } catch (error) {\n      // Handle error\n    }\n  }\n\n  async onSave(data: Partial<Actor>) {\n    const payload = {\n      ...this.currentData?.data,\n      ...data,\n      DataState: ObjectState.Changed,\n    } as Actor;\n    await this.facade.addRequest(payload);\n  }\n\n  handleSearch(event: { key: string; value: string }) {\n    this.facade.search(event.value);\n  }\n\n  handleFetchedExport({ skip, limit }: any) {\n    this.facade.loadData(skip, limit).then((data) => {\n      if (data) {\n        this.handleExport(data);\n      }\n    });\n  }\n\n  async loadData(range: { skip: number; limit: number }) {\n    const data = await this.facade.loadData(range.skip, range.limit);\n    return data ?? [];\n  }\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: false,\n      isToggle: true,\n    }\"\n    [buttonClass]=\"'my-custom-button-class'\"\n    [iconClass]=\"'my-icon-class'\"\n    [activeIconClass]=\"'my-active-icon-class'\"\n    [selectedColumnCount]=\"selectedColumnCount\"\n    [selectedSortCount]=\"selectedSortCount\"\n    [selectedFilterTableCount]=\"selectedFilterTableCount\"\n    (viewChange)=\"onViewChange($event)\"\n    (stateChange)=\"onStateChange($event)\"\n    (onSearchChange)=\"handleSearch($event)\"\n  >\n    <div table-content>\n      <lib-data-table\n        [data]=\"data()\"\n        [columns]=\"config.columns\"\n        [styleConfig]=\"styles\"\n        [formGroupConfig]=\"formGroupConfig()\"\n        (selectionChange)=\"onSelectionChange($event)\"\n        (rowSave)=\"onSave($event.data)\"\n      >\n        <ng-container libColumn=\"date\">\n          <ng-template #cell let-row=\"row\" let-value>\n            {{ value | date }}\n          </ng-template>\n        </ng-container>\n\n        <ng-container libColumn=\"name\">\n          <ng-template #cellEdit let-control=\"control\">\n            <verbena-input\n              name=\"Name\"\n              [formControl]=\"control\"\n              placeHolder=\"Enter Name\"\n            />\n          </ng-template>\n        </ng-container>\n\n        <ng-container libColumn=\"tags\">\n          <ng-template #cellEdit let-control=\"control\">\n            <verben-drop-down\n              styleClass=\"w-full\"\n              width=\"100%\"\n              [multiselect]=\"false\"\n              placeholder=\"Select tags\"\n              [options]=\"tags()\"\n              optionLabel=\"Name\"\n              id=\"tags\"\n              [formControl]=\"control\"\n              class=\"form-control\"\n            >\n            </verben-drop-down>\n          </ng-template>\n        </ng-container>\n\n        <ng-container libColumn=\"actions\">\n          <ng-template\n            #cell\n            let-value\n            let-isEditing=\"isEditing\"\n            let-toggleRowEdit=\"toggleRowEdit\"\n            let-deleteRow=\"deleteRow\"\n          >\n            <div class=\"flex gap-6\">\n              <verben-svg\n                (click)=\"toggleRowEdit()\"\n                icon=\"edit\"\n                [width]=\"15\"\n                [height]=\"15\"\n                class=\"cursor-pointer\"\n              ></verben-svg>\n\n              <verben-svg\n                icon=\"delete\"\n                [width]=\"15\"\n                [height]=\"15\"\n                (click)=\"deleteRow()\"\n                class=\"cursor-pointer\"\n              ></verben-svg>\n            </div>\n          </ng-template>\n\n          <ng-template\n            #cellEdit\n            let-value\n            let-deleteRow\n            let-isEditing=\"isEditing\"\n            let-toggleRowEdit=\"toggleRowEdit\"\n            let-row=\"row\"\n            let-rowIndex=\"rowIndex\"\n          >\n            <div class=\"flex gap-6\">\n              <verben-svg\n                (click)=\"toggleRowEdit()\"\n                icon=\"tick\"\n                [width]=\"15\"\n                [height]=\"15\"\n                class=\"cursor-pointer\"\n              ></verben-svg>\n\n              <verben-svg\n                icon=\"delete\"\n                [width]=\"15\"\n                [height]=\"15\"\n                (click)=\"toggleRowEdit()\"\n                class=\"cursor-pointer\"\n              ></verben-svg>\n            </div>\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 (click)=\"currentData = vdcv.onItemClick(item)\" class=\"flex\">\n                <div\n                  (click)=\"currentData = vdcv.onItemClick(item)\"\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 gap-1\">\n                          <label for=\"phone\" class=\"text-[10px] font-light\"\n                            >E-Mail:</label\n                          >\n                          <span id=\"phone\" class=\"text-sm\">{{\n                            item.data.Identifier\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\n                      <div class=\"grid gap-y-1\">\n                        <p class=\"grid\">\n                          <label\n                            for=\"role\"\n                            class=\"text-[10px] font-light text-[#404040]\"\n                            >Name</label\n                          >\n                          <span id=\"role\" class=\"text-sm font-medium\">{{\n                            item.data?.Name\n                          }}</span>\n                        </p>\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            <actors-form\n              [currentData]=\"currentData\"\n              (switchView)=\"vdv.toggleView()\"\n              (onSave)=\"onSave($event)\"\n            ></actors-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-xport\n        [columns]=\"config.columns\"\n        [data]=\"data()\"\n        [dataQueryFunction]=\"loadData\"\n      >\n      </lib-data-xport>\n    </div>\n  </verben-data-view>\n\n  <div *ngIf=\"vdv.isTableView\" class=\"flex gap-2 justify-end\">\n    <!-- <div class=\"message-log-button-container flex justify-between\">\n      <verbena-button\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    <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","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ActorsComponent } from './actors.component';\nimport { SharedModule } from 'verben-workflow-ui/src/lib/shared';\nimport { RouterLink } from '@angular/router';\nimport { ActorsFormComponent } from './actors.form.component';\n\n@NgModule({\n  declarations: [ActorsComponent, ActorsFormComponent],\n  imports: [CommonModule, SharedModule, RouterLink],\n  exports: [ActorsComponent],\n})\nexport class ActorsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ActorService","i2.ActorState","i3","i1","i2.ActorFacade","i1.ActorFacade","i2","i5.ActorsFormComponent"],"mappings":"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"}