{"version":3,"file":"verben-workflow-ui-src-lib-components-form-group.mjs","sources":["../../../projects/verben-workflow-ui/src/lib/components/form-group/base-table-style.ts","../../../projects/verben-workflow-ui/src/lib/components/form-group/form-group.service.ts","../../../projects/verben-workflow-ui/src/lib/components/form-group/form-group.component.ts","../../../projects/verben-workflow-ui/src/lib/components/form-group/form-group.component.html","../../../projects/verben-workflow-ui/src/lib/components/form-group/form-fields/form-fields.service.ts","../../../projects/verben-workflow-ui/src/lib/components/form-group/form-fields/form-fields.component.ts","../../../projects/verben-workflow-ui/src/lib/components/form-group/form-fields/form-fields.component.html","../../../projects/verben-workflow-ui/src/lib/components/form-group/form-fields/form-fields.module.ts","../../../projects/verben-workflow-ui/src/lib/components/form-group/form-group.module.ts","../../../projects/verben-workflow-ui/src/lib/components/form-group/verben-workflow-ui-src-lib-components-form-group.ts"],"sourcesContent":["export const baseStyle: any = {\n  width: '100%',\n  fontFamily: '\"Fraunces\", serif',\n  fontSize: '125%',\n  whiteSpace: 'nowrap',\n  margin: '0',\n  border: '1px solid #D4A007',\n  borderRadius: '16px',\n  borderCollapse: 'separate',\n  borderSpacing: '0',\n  // tableLayout: 'fixed',\n  overflow: 'hidden',\n  rows: {\n    even: {\n      backgroundColor: '#FDFDFD',\n    },\n    odd: {\n      backgroundColor: '#F1F4FB',\n    },\n    height: '68px',\n  },\n  cells: {\n    padding: '2rem 1rem',\n  },\n  header: {\n    // stickyTop: true,\n    // zIndex: 2,\n    backgroundColor: '#EFF2FB',\n    fontWeight: 'bold',\n    textAlign: 'left',\n    padding: '12px 16px',\n    height: '30px',\n  },\n  footer: {\n    // stickyBottom: true,\n    // zIndex: 2,\n    padding: '3px',\n  },\n  //   body: {\n  //     background: '#fff',\n  //     padding: '4px 5px',\n  //     textAlign: 'center',\n  //   },\n  // firstColumn: {\n  //   stickyLeft: true,\n  //   zIndex: 1,\n  // },\n  lastColumn: {\n    // stickyRight: true,\n    // zIndex: 1,\n  },\n};\n","import { Injectable } from '@angular/core';\nimport { ColumnDefinition } from 'verben-ng-ui';\nimport { FormEntity } from 'verben-workflow-ui/src/lib/models';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class FormsService {\n  constructor() {}\n\n  get FormGroupColumns(): ColumnDefinition<FormEntity>[] {\n    return [\n      {\n        id: 'select',\n        header: '',\n      },\n      {\n        id: 'name',\n        header: 'NAME',\n        accessorFn: (row: FormEntity) => {\n          return row;\n        },\n      },\n      {\n        id: 'description',\n        header: 'DESCRIPTION',\n        accessorKey: 'Description',\n      },\n      {\n        id: 'workflow',\n        header: 'WORK FLOW',\n        accessorKey: 'Workflow',\n      },\n      {\n        id: 'isValidated',\n        header: 'VALIDATED',\n        accessorKey: 'IsValidated',\n      },\n      {\n        id: 'actions',\n        header: 'ACTIONS',\n        accessorFn: (row: FormEntity) => {\n          return row;\n        },\n      },\n    ];\n  }\n}\n","import {\n  ChangeDetectorRef,\n  Component,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  ViewChild,\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport {\n  CardData,\n  CardDataViewComponent,\n  ColumnDefinition,\n  ConditionalOptions,\n  DataFilterType,\n  DataTableComponent,\n  DataViewComponent,\n  DropdownChangeEvent,\n  IDataFilter,\n} from 'verben-ng-ui';\nimport { ErrorResponse, FormEntity, ObjectState, PagedResult, SearchOperator, SearchPropertySign, SearchPropertyValue, SearchPropertyValueType, SortDirection, Status } from 'verben-workflow-ui/src/lib/models';\nimport { EnvironmentService, HttpWebRequestService, UtilService } from 'verben-workflow-ui/src/lib/services';\nimport { baseStyle } from './base-table-style';\nimport { FormsService } from './form-group.service';\n\nenum FormFieldProperty {\n  Name = 'Name',\n  Description = 'Description',\n  IsValidated = 'IsValidated',\n  WorkFlow = 'WorkFlow',\n  ServiceName = 'ServiceName',\n  CreatedAt = 'CreatedAt',\n}\n\nenum TaskUserPropertyMap {\n  User = 'Name',\n  Date = 'CreatedAt',\n  Role = 'RoleID',\n  Service = 'ServiceName',\n  Application = 'Application',\n  Tenant = 'TenantId',\n  Email = 'MailAddress',\n  Status = 'Status',\n}\n\nenum FilterTypes {\n  Before = SearchPropertySign.LT,\n  On = SearchPropertySign.EQ,\n  After = SearchPropertySign.GT,\n  NEQ = SearchPropertySign.NEQ,\n}\n\n@Component({\n  selector: 'lib-form-group',\n  templateUrl: './form-group.component.html',\n  styleUrl: './form-group.component.css',\n})\nexport class FormGroupComponent implements OnInit {\n  visibleColumnDef: ColumnDefinition<FormEntity>[] = [];\n  styles = baseStyle;\n  data: FormEntity[] = [];\n  @Input() path: string = '/documentation/form-group/fields';\n  cardData: CardData[] = [];\n  selectedFilterTableCount: number = 0;\n  selectedSortTableCount: number = 0;\n  selectedColumnTableCount: number = 0;\n  showFilter: boolean = false;\n  showSort: boolean = false;\n  showColumn: boolean = false;\n  currentData: CardData | null = null;\n  @ViewChild('vdcv') cardDataView!: CardDataViewComponent;\n  @ViewChild('vdv') dataView!: DataViewComponent;\n  @ViewChild('dt') tableView!: DataTableComponent<FormEntity>;\n  @Input() application: string | null = null;\n  @Input() pageSize: number = 20;\n  skip: number = 0;\n  hasMore: boolean = true;\n  @Output() onViewProcessClicked: EventEmitter<string> = new EventEmitter();\n  searchTerm: string = '';\n  pageState: PagedResult<FormEntity> | null = null;\n  isOpen: boolean = false;\n  openDropdownId: string | null = null;\n  currentFilters: IDataFilter[] = [];\n  currentSorts: IDataFilter[] = [];\n  searchTerm$ = new Subject<string>();\n  statusOptions: Status[] = Object.values(Status);\n\n  users: FormEntity[] = [];\n\n  visibleColumns: IDataFilter[] = [];\n\n  filterArray: IDataFilter[] = [\n    {\n      name: FormFieldProperty.Name,\n      type: DataFilterType.String,\n      checked: false,\n    },\n    {\n      name: FormFieldProperty.Description,\n      type: DataFilterType.String,\n      checked: false,\n    },\n    {\n      name: FormFieldProperty.IsValidated,\n      type: DataFilterType.Bool,\n      checked: false,\n    },\n    {\n      name: FormFieldProperty.ServiceName,\n      type: DataFilterType.String,\n      checked: false,\n    },\n    {\n      name: FormFieldProperty.WorkFlow,\n      type: DataFilterType.String,\n      checked: false,\n    },\n    {\n      name: FormFieldProperty.CreatedAt,\n      type: DataFilterType.Date,\n      checked: false,\n    },\n  ];\n  closePopUp(row: FormEntity): void {\n    if (this.openDropdownId === row.id) {\n      this.openDropdownId = null; // Properly reset when closing\n    }\n    this.onClose(); // Call any additional logic for closure\n  }\n  toggleTable(row: FormEntity) {\n    this.tableView.toggleRowEdit(row.Code);\n  }\n  sortOptions: IDataFilter[] = [\n    {\n      name: FormFieldProperty.Name,\n      type: DataFilterType.String,\n      checked: false,\n    },\n    {\n      name: FormFieldProperty.Description,\n      type: DataFilterType.String,\n      checked: false,\n    },\n    {\n      name: FormFieldProperty.IsValidated,\n      type: DataFilterType.Bool,\n      checked: false,\n    },\n    {\n      name: FormFieldProperty.ServiceName,\n      type: DataFilterType.String,\n      checked: false,\n    },\n    {\n      name: FormFieldProperty.WorkFlow,\n      type: DataFilterType.String,\n      checked: false,\n    },\n    {\n      name: FormFieldProperty.CreatedAt,\n      type: DataFilterType.Date,\n      checked: false,\n    },\n  ];\n\n  private currentSearchTerm: string = '';\n\n  constructor(\n    private utilService: UtilService,\n    private server: HttpWebRequestService,\n    private cdr: ChangeDetectorRef,\n    private envSvc: EnvironmentService,\n    private router: Router,\n    private FormGroupSvc: FormsService\n  ) {\n    this.visibleColumnDef = FormGroupSvc.FormGroupColumns;\n    this.visibleColumns = FormGroupSvc.FormGroupColumns.map((col) => ({\n      checked: true,\n      name: typeof col.header === 'string' ? col.header : col.id,\n      type: DataFilterType.Bool,\n    }));\n  }\n  async ngOnInit(): Promise<void> {\n    this.getForms();\n  }\n\n  async getAllTaskUsers(): Promise<FormEntity[] | undefined> {\n    this.utilService.sendBI(true);\n    const res = await this.server.get(\n      `GetTaskUsers/0/${this.pageSize}`,\n      this.envSvc.environment.WorkFlowAPI\n    );\n    this.utilService.sendBI(false);\n    if (res instanceof ErrorResponse) {\n      return undefined;\n    } else {\n      this.pageState = res as PagedResult<FormEntity>;\n      var result = (res as PagedResult<FormEntity>).Result;\n      return result;\n    }\n  }\n  clearLogs(sortValue: string = 'CreatedAt', order: string = 'asc') {\n    this.data = [];\n    this.skip = 0;\n    this.hasMore = true;\n    this.getForms();\n  }\n  async getForms(): Promise<FormEntity[] | undefined> {\n    if (this.showColumn) {\n      this.showColumn = false;\n      this.selectedColumnTableCount = 0;\n      this.reset();\n    }\n    if (this.showFilter) {\n      this.showFilter = false;\n      this.selectedFilterTableCount = 0;\n\n      this.reset();\n    }\n    if (this.showSort) {\n      this.showSort = false;\n      this.reset();\n      this.selectedSortTableCount = 0;\n    }\n\n    this.utilService.sendBI(true);\n    const res = await this.server.get(\n      `GetFormEntities/${this.skip}/${this.pageSize}/CreatedAt/${SortDirection.Desc}`,\n      this.envSvc.environment.WorkFlowAPI\n    );\n    this.utilService.sendBI(false);\n\n    if (res instanceof ErrorResponse) {\n      return undefined;\n    }\n\n    this.pageState = res as PagedResult<FormEntity>;\n    const result = this.pageState.Result;\n\n    if (this.data && Array.isArray(this.data)) {\n      this.data = [...this.data, ...result];\n    } else {\n      this.data = result;\n    }\n    this.data.forEach((x) => (x.id = x.Id));\n\n    this.skip += this.pageSize;\n    this.hasMore = this.skip < this.pageState.Total;\n    this.setUpCardData();\n\n    return result;\n  }\n\n  loadMore() {\n    if (this.hasMore) {\n      this.getForms();\n    }\n  }\n\n  reset() {\n    this.data = [];\n    this.skip = 0;\n    this.pageSize = 10;\n  }\n  onUserSelected(event: DropdownChangeEvent, item: FormEntity) {\n    const user = this.users.find((x) => x.Name == event.value);\n    if (user) {\n      item.Name = user.Name;\n      item.Description = user.Description;\n      item.Workflow = user.Workflow;\n      item.IsValidated = user.IsValidated;\n    }\n  }\n  onClear(event: Event, item: FormEntity) {\n    item.Name = '';\n    item.Description = '';\n    item.Workflow = '0';\n    item.IsValidated = false;\n  }\n\n  getItemLabel(name: string): string {\n    const item = this.users.find((user) => user.Name === name);\n    const otherCheck = this.data.find((data) => data.Name === name);\n    return item ? item.Name : otherCheck ? otherCheck.Name : '';\n  }\n\n  getAsyncLabel(value: any): string {\n    const data = this.data.find((x) => x.Name == value);\n\n    return data ? data.Name : '';\n  }\n\n  setUpCardData() {\n    const cardData: CardData[] = this.data.map((x) => {\n      return {\n        selected: false,\n        title: x.Name,\n        data: x,\n        body: [],\n        children: [],\n      };\n    });\n    this.cardData = cardData;\n  }\n\n  setUpCardDataExtra(baseData: FormEntity[]) {\n    const cardData: CardData[] = baseData.map((x) => {\n      return {\n        selected: false,\n        title: x.Name,\n        data: x,\n        body: [],\n        children: [],\n      };\n    });\n    this.cardData = this.cardData.concat(cardData);\n  }\n\n  goToCardView(data: FormEntity) {\n    const item = this.cardData.find((x) => x.data == data);\n    if (item) {\n      this.userCardClicked(item, true);\n    }\n  }\n\n  goToTableView() {\n    if (!this.currentData) {\n      return;\n    }\n    this.dataView.toggleView();\n    const id = this.currentData.data ? this.currentData.data.Id : '';\n    if (id.trim().length > 0 && !this.tableView.isRowEditing(id)) {\n      console.log(id);\n\n      this.tableView.toggleRowEdit(id);\n    }\n  }\n\n  viewProcesses(code: string) {\n    if (code.trim().length == 0) {\n      return;\n    }\n    this.onViewProcessClicked.emit(code);\n  }\n\n  userCardClicked(item: CardData, toggleView: boolean = false) {\n    this.currentData = this.cardDataView.onItemClick(item);\n    if (toggleView) {\n      this.dataView.toggleView();\n    }\n  }\n\n  async saveFormGroup() {\n    if (this.currentData) {\n      var form: FormEntity = this.currentData.data as FormEntity;\n\n      if (this.currentData.data.Name.trim().length == 0) {\n        this.utilService.showInfo('Name cannot be empty');\n        return;\n      }\n      form.DataState =\n        form.DataState == ObjectState.New\n          ? ObjectState.New\n          : ObjectState.Changed;\n      form.Id = form.DataState == ObjectState.New ? '' : form.Id;\n      this.utilService.sendBI(true);\n      const res = await this.server.post(\n        `SaveFormEntities`,\n        [form],\n        this.envSvc.environment.WorkFlowAPI\n      );\n      this.utilService.sendBI(false);\n      if (res instanceof ErrorResponse) {\n      } else {\n        this.utilService.showSuccess('Form group saved successfully');\n        const result = res as FormEntity[];\n        if (result.length > 0) {\n          var formResult = result[0];\n          const itemIndex = this.data.findIndex(\n            (x) => x == this.currentData?.data\n          );\n          if (itemIndex > -1) {\n            this.data[itemIndex].Name = formResult.Name;\n            this.data[itemIndex].Id = formResult.Id;\n            this.data[itemIndex].id = formResult.id;\n            this.data[itemIndex].DataState = formResult.DataState;\n            this.data[itemIndex].Description = formResult.Description;\n            this.data[itemIndex].IsValidated = formResult.IsValidated;\n            this.data[itemIndex].Workflow = formResult.Workflow;\n            this.data = this.data.map((x) => x);\n          }\n        }\n      }\n    }\n  }\n  toggleIsValidate(value: boolean, row: FormEntity): void {\n    const newValue = !value;\n    row.IsValidated = newValue;\n    console.log(row);\n  }\n  async tableSaveUser(form: FormEntity, callBack: () => any) {\n    form.DataState =\n      form.DataState == ObjectState.New ? ObjectState.New : ObjectState.Changed;\n    form.Id = form.DataState == ObjectState.New ? '' : form.Id;\n    this.utilService.sendBI(true);\n    const res = await this.server.post(\n      `SaveFormEntities`,\n      [form],\n      this.envSvc.environment.WorkFlowAPI\n    );\n    this.utilService.sendBI(false);\n    if (res instanceof ErrorResponse) {\n    } else {\n      this.utilService.showSuccess('Form group saved successfully');\n      const result = res as FormEntity[];\n      if (result.length > 0) {\n        var formResult = result[0];\n        const itemIndex = this.data.findIndex((x) => x == form);\n        if (itemIndex > -1) {\n          this.data[itemIndex].Name = formResult.Name;\n          this.data[itemIndex].Id = formResult.Id;\n          this.data[itemIndex].id = formResult.id;\n          this.data[itemIndex].DataState = formResult.DataState;\n          this.data[itemIndex].Description = formResult.Description;\n          this.data[itemIndex].IsValidated = formResult.IsValidated;\n          this.data[itemIndex].Workflow = formResult.Workflow;\n\n          this.data = this.data.map((x) => x);\n        }\n        this.closePopUp(form);\n        callBack();\n      }\n    }\n  }\n\n  updateTable() {\n    this.data = this.data.map((x) => x);\n    console.log(this.data);\n  }\n\n  onFieldCountChange(value: any, source: FormEntity) {\n    source.Workflow = value;\n  }\n\n  getFieldCount(source: FormEntity) {\n    return source.Workflow;\n  }\n  navigateToFields(card: FormEntity) {\n    const queryParams = { FormId: card.Code, Name: card.Name };\n    this.router.navigate([`${this.path}`], { queryParams });\n  }\n  onClose() {\n    this.isOpen = false;\n  }\n\n  openDropdown(item: any): void {\n    if (this.openDropdownId === item.Id) {\n      this.openDropdownId = null;\n    } else {\n      this.openDropdownId = item.Id;\n    }\n  }\n\n  async onSearch(event: { key: string; value: string }) {\n    this.searchTerm = event.value;\n    this.reset();\n    if (!this.searchTerm) {\n      this.getForms();\n      return;\n    }\n\n    this.utilService.sendBI(true);\n\n    try {\n      const res = await this.server.get(\n        `GetFormEntitiesWithParam/${this.searchTerm}/${this.skip}/${this.pageSize}/CreatedAt/asc`\n      );\n\n      this.utilService.sendBI(false);\n\n      if (res instanceof ErrorResponse) {\n        console.error('Error during search:', res);\n      } else {\n        this.pageState = res as PagedResult<FormEntity>;\n        var result = (res as PagedResult<FormEntity>).Result;\n        this.data = result;\n        this.setUpCardData();\n      }\n    } catch (error) {\n      console.error('Search error:', error);\n    } finally {\n    }\n  }\n  isDropdownOpen(item: any): boolean {\n    return this.openDropdownId === item.id;\n  }\n\n  onViewChange(isGridView: boolean): void { }\n\n  onStateChange(event: { key: string; value: boolean }): void {\n    switch (event.key) {\n      case 'create':\n        var newGroup: FormEntity = {\n          Code: '',\n          TenantId: '',\n          Id: '',\n          id: '',\n          ServiceName: '',\n          CreatedAt: new Date(),\n          UpdatedAt: new Date(),\n          DataState: ObjectState.New,\n          Name: '',\n          Description: '',\n          Workflow: '',\n          Form: '',\n          Properties: [],\n          IsValidated: false,\n          Tags: [],\n        };\n\n        const cardData: CardData = {\n          selected: false,\n          title: newGroup.Name,\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  showTableView: boolean = false;\n  onSelectionChange(selectedRows: FormEntity[]) { }\n\n  onColumnsUpdated(updatedColumns: IDataFilter[]) {\n    this.selectedColumnTableCount = updatedColumns.length;\n    this.showColumn = false;\n    const updatedColumnDef: ColumnDefinition<FormEntity>[] = [];\n    updatedColumns.forEach((col) => {\n      const matchingCol = this.FormGroupSvc.FormGroupColumns.find(\n        (column) => column.header === col.name || column.id === col.name\n      );\n      if (matchingCol) {\n        updatedColumnDef.push(matchingCol);\n      }\n    });\n\n    this.visibleColumnDef = [...updatedColumnDef];\n  }\n\n  async updateFiltersAndSorts(isSearch: boolean = false) {\n    if (!isSearch) {\n      this.dataView.onClearSearch();\n      this.currentSearchTerm = '';\n      this.cdr.detectChanges();\n      const clickEvent = new MouseEvent('click', {\n        bubbles: true,\n        cancelable: true,\n        view: window,\n      });\n      document.dispatchEvent(clickEvent);\n    }\n    var payload: SearchPropertyValue[] = this.currentFilters.map((x) => {\n      return {\n        PropertyName:\n          FormFieldProperty[x.name as keyof typeof FormFieldProperty],\n        EntityValue: x.value,\n        Operator: SearchOperator.And,\n        Sign:\n          x.condition && Object.keys(FilterTypes).includes(x.condition)\n            ? (FilterTypes[\n              x.condition as keyof typeof FilterTypes\n            ] as unknown as SearchPropertySign)\n            : SearchPropertySign.EQ,\n        Type:\n          x.name == FormFieldProperty.CreatedAt\n            ? SearchPropertyValueType.Date\n            : SearchPropertyValueType.String,\n      };\n    });\n    // payload.push({\n    //   PropertyName: 'APIKey',\n    //   EntityValue: this.envSvc.environment.APIKey,\n    //   Operator: SearchOperator.And,\n    //   Sign: SearchPropertySign.EQ,\n    // });\n    const sortParam: { Param: string; Order: string } | null =\n      this.currentSorts.length > 0\n        ? {\n          Param:\n            FormFieldProperty[\n            this.currentSorts[0].name as keyof typeof FormFieldProperty\n            ],\n          Order: this.currentSorts[0].value,\n        }\n        : null;\n    const searchTermExists = this.currentSearchTerm.trim().length > 0;\n    this.utilService.sendBI(true);\n    const res = searchTermExists\n      ? await this.server.get(\n        `GetFormEntitiesWithParam/${this.currentSearchTerm.trim()}/0/${this.pageSize\n        }`,\n        this.envSvc.environment.WorkFlowAPI\n      )\n      : await this.server.post(\n        sortParam\n          ? `SearchFormEntities/0/${this.pageSize}/${sortParam.Param}/${sortParam.Order}`\n          : `SearchFormEntities/0/${this.pageSize}`,\n        payload,\n        this.envSvc.environment.WorkFlowAPI\n      );\n    this.utilService.sendBI(false);\n    if (res instanceof ErrorResponse) {\n      this.currentFilters = [];\n      this.currentSorts = [];\n      return undefined;\n    } else {\n      this.pageState = res as PagedResult<FormEntity>;\n      var result = (res as PagedResult<FormEntity>).Result;\n      this.data = result;\n      this.setUpCardData();\n    }\n  }\n\n  async postSearch(payload: any) {\n    this.utilService.sendBI(true);\n    const res = await this.server.post(\n      `SearchFormEntities/0/${this.pageSize}`,\n      payload\n    );\n\n    this.utilService.sendBI(false);\n    if (res instanceof ErrorResponse) {\n      return;\n    } else {\n      this.pageState = res as PagedResult<FormEntity>;\n      var result = (res as PagedResult<FormEntity>).Result;\n      this.data = result;\n\n      this.setUpCardData();\n      // this.setUpCardDataExtra(this.data)\n\n      return result;\n    }\n  }\n  onFilterApplied(appliedFilter: IDataFilter[]) {\n    this.showFilter = false;\n    if (Array.isArray(appliedFilter)) {\n      this.selectedFilterTableCount = appliedFilter.length;\n      console.log(appliedFilter);\n\n      const queryParams = appliedFilter\n        .filter((filter) => filter.checked)\n        .map((filter) => ({\n          PropertyName: filter.name,\n          EntityValue: filter.value,\n          Type: filter.type,\n          Operator: 'And',\n          Sign: this.getCondition(filter.condition),\n        }));\n\n      this.postSearch(queryParams);\n    }\n  }\n  getCondition(value: any) {\n    switch (value) {\n      case ConditionalOptions.On:\n        return SearchPropertySign.EQ;\n      case ConditionalOptions.After:\n        return SearchPropertySign.EQ;\n      case ConditionalOptions.Before:\n        return SearchPropertySign.LT;\n      case ConditionalOptions.NotEqual:\n        return SearchPropertySign.NEQ;\n      default:\n        return value;\n    }\n  }\n\n  onSortUpdated(updatedSorts: IDataFilter[]) {\n    this.currentSorts = updatedSorts;\n    this.showSort = false;\n    this.selectedSortTableCount = updatedSorts.length;\n    this.updateFiltersAndSorts();\n  }\n\n  handleSearch(event: { key: string; value: string }) {\n    this.searchTerm$.next(event.value);\n  }\n\n  handleExport(exportedData: Partial<any>[]) {\n    // console.log('Exported data:', exportedData);\n    this.downloadCSV(exportedData);\n  }\n  private downloadCSV(data: Partial<any>[]) {\n    const headers = Object.keys(data[0]);\n    const csvContent = [\n      headers.join(','),\n      ...data.map((row) => headers.map((header) => row[header]).join(',')),\n    ].join('\\n');\n\n    const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n    const link = document.createElement('a');\n    if (link.download !== undefined) {\n      const url = URL.createObjectURL(blob);\n      link.setAttribute('href', url);\n      link.setAttribute('download', 'export.csv');\n      link.style.visibility = 'hidden';\n      document.body.appendChild(link);\n      link.click();\n      document.body.removeChild(link);\n    }\n  }\n}\n","<div #messageLog class=\"flex flex-col gap-4 message-log-container\">\n\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: true,\n        isToggle:true,\n        \n      }\" [buttonClass]=\"'my-custom-button-class'\" [iconClass]=\"'my-icon-class'\"\n      [searchValue]=\"searchTerm\"\n      (onSearchChange)=\"onSearch($event)\"\n      [showFilterChild]=\"showFilter\"\n      [showSortChild]=\"showSort\"\n      [showColumnChild]=\"showColumn\"\n      [activeIconClass]=\"'my-active-icon-class'\" [selectedColumnCount]=\"selectedColumnTableCount\" [selectedSortCount]=\"selectedSortTableCount\"\n      [selectedFilterTableCount]=\"selectedFilterTableCount\" (viewChange)=\"onViewChange($event)\" (stateChange)=\"onStateChange($event)\"\n      >\n      <div class=\"mt-2\" table-content>\n        <lib-data-table #dt [data]=\"data\" [columns]=\"visibleColumnDef\" [styleConfig]=\"styles\"\n          (selectionChange)=\"onSelectionChange($event)\">\n          <ng-container libColumn=\"select\">\n            <ng-template #cell let-isSelected=\"isSelected\" let-toggleRowSelection=\"toggleRowSelection\">\n              <input type=\"checkbox\" [checked]=\"isSelected\" (change)=\"toggleRowSelection()\" />\n            </ng-template>\n            <ng-template #header let-allRowsSelected=\"allRowsSelected\" let-someRowsSelected=\"someRowsSelected\"\n              let-toggleAllRows=\"toggleAllRows\">\n              <input type=\"checkbox\" [checked]=\"allRowsSelected()\" [indeterminate]=\"someRowsSelected()\"\n                (change)=\"toggleAllRows()\" />\n            </ng-template>\n          </ng-container>\n          <ng-container libColumn=\"name\">\n            <ng-template #cell let-row=\"row\" let-value>\n              {{value.Name}}\n            </ng-template>\n            <ng-template #cellEdit let-row=\"row\" let-updateValue=\"updateValue\" let-value>\n               <verbena-input inputContainerClass=\"w-fit\" [(ngModel)]=\"row.Name\"></verbena-input>\n            </ng-template>\n          </ng-container>\n          <ng-container libColumn=\"workflow\">\n            <ng-template #cell let-row=\"row\" let-value>\n              {{value}}\n            </ng-template>\n            <ng-template #cellEdit let-row=\"row\" let-updateValue=\"updateValue\" let-value>\n               <verbena-input  inputContainerClass=\"w-fit\" [(ngModel)]=\"row.Workflow\"></verbena-input>\n            </ng-template>\n          </ng-container>\n          <ng-container libColumn=\"description\">\n            <ng-template #cell let-row=\"row\" let-value>\n              {{value}}\n            </ng-template>\n            <ng-template #cellEdit let-row=\"row\" let-updateValue=\"updateValue\" let-value>\n               <verbena-input inputContainerClass=\"w-fit\" [(ngModel)]=\"row.Description\"></verbena-input>\n            </ng-template>\n          </ng-container>\n          <ng-container libColumn=\"isValidated\">\n            <ng-template #cell let-row=\"row\" let-value>\n              <verben-svg *ngIf=\"value===true\" [icon]=\"'check'\"></verben-svg>\n              <verben-svg *ngIf=\"value===false\" [icon]=\"'error'\"></verben-svg>\n            </ng-template>\n            <ng-template #cellEdit let-row=\"row\" let-updateValue=\"updateValue\" let-value>\n              <verbena-switch [onColor]=\"'#1A237E'\" [(ngModel)]=\"row.IsValidated\"></verbena-switch>\n            </ng-template>\n            \n        </ng-container>\n      \n          <ng-container libColumn=\"actions\">\n            <ng-template #cell let-isEditing=\"isEditing\" let-toggleRowEdit=\"toggleRowEdit\" let-row=\"row\" let-value>\n              <verben-pop-Up [customStyles]=\"{'z-index': '99'}\" [dropdownOpen]=\"isDropdownOpen(row)\"\n                [enableMouseLeave]=\"false\" (close)=\"onClose()\">\n                <verben-svg class=\"cursor-pointer actions-icon\" (click)=\"openDropdown(row)\" dropdown-trigger\n                  icon=\"list\"></verben-svg>\n                <div class=\"pop-up-content flex flex-col\" dropdown-content>\n                  <div (click)=\"navigateToFields(row)\" class=\"pop-up-value cursor-pointer\">View Fields</div>\n                  <div (click)=\"toggleRowEdit()\" class=\"pop-up-value cursor-pointer\">Edit</div>\n                  <!-- <div class=\"pop-up-value cursor-pointer\">Delete</div> -->\n                </div>\n              </verben-pop-Up>\n            </ng-template>\n            <ng-template #cellEdit let-isEditing=\"isEditing\" let-toggleRowEdit=\"toggleRowEdit\" let-row=\"row\" let-value>\n              <div class=\"flex gap-2 items-center\">\n                <verben-svg icon=\"check\" [width]=\"15\" [height]=\"15\"\n                  (click)=\"tableSaveUser(value, toggleRowEdit)\"></verben-svg>\n                <!-- <verben-svg icon=\"delete\" [width]=\"15\" [height]=\"15\"></verben-svg> -->\n                <verben-svg icon=\"cardViewAlt\" [width]=\"15\" [height]=\"15\" (click)=\"goToCardView(value)\"></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 borderRadius=\"12px\" #vdcv dataId=\"Id\" border=\"5px\" [cardDataList]=\"cardData\"\n          rbgColor=\"#f5f6f9\" mg=\"0px\">\n          <verben-left-card-data-view class=\"space-y-7\">\n            <verben-left-card-data #vlcd [parent]=\"vdcv\" dataId=\"MailAddress\"\n              class=\"bg-secondary-100 rounded-xl border-primary border-[1px]\" [cardDataList]=\"cardData\">\n              <ng-template #card let-item>\n                <div (click)=\"userCardClicked(item)\" class=\"flex cursor-pointer h-[max-content]\">\n                  <!-- <verben-svg [width]=\"15\" [height]=\"15\" (click)=\"toggleChildren(item); $event.stopPropagation()\"\n                    [ngClass]=\"item.children && item.children.length?'visible':'invisible'\"\n                    class=\"items-center flex  pr-1 cursor-pointer\" [icon]=\"item.isChildrenExpanded?'minus':'plus'\" /> -->\n                  <div class=\"flex  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=\"py-3 px-4 flex-1 h-[100%]\">\n                      <div class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\">\n                        <div class=\"flex flex-col flex-1 card-min-height justify-between h-[100%]\">\n                          <div class=\"flex justify-between\">\n                            <div>\n                              <h3 class=\"my-0 font-bold text-[#404040] leading-[19.5px]\">{{\n                                item.data.Name\n                                }}</h3>\n                              <span class=\"flex mt-2 items-center gap-1\">\n                                <span class=\"!text-[10px] font-light text-[#404040]\">Description:</span> <span\n                                  class=\"!text-[12px] font-semibold\">{{item.data.Description}}</span>\n                              </span>\n                            </div>\n                          \n                               <div>\n                                <span class=\"!text-[10px] text-[#404040]\"\n                                  >Work Flow</span\n                                >\n                                <p class=\"!text-[12px]\">{{ item.data.Workflow }}</p>\n                              </div>\n                          </div>\n                         \n                        </div>\n  \n                        <!-- <div class=\"flex items-end h-[100%]\">\n                          <span class=\"enum-val {{item.data.Status}}\">{{item.data.Status}}</span>\n                        </div> -->\n                      </div>\n                    </div>\n                  </div>\n                </div>\n              </ng-template>\n            </verben-left-card-data>\n          </verben-left-card-data-view>\n          <verben-right-card-data-view>\n            <ng-template #parent>\n              <div *ngIf=\"this.currentData\"\n                class=\"flex flex-col rounded-xl h-full  w-full relative gap-6\">\n                <verbena-input name=\"Name\" label=\"Name\" (ngModelChange)=\"updateTable()\"\n                  [(ngModel)]=\"currentData.data.Name\" />\n                <verbena-input name=\"Description\" label=\"Description\" (ngModelChange)=\"updateTable()\"\n                  [(ngModel)]=\"currentData.data.Description\" />\n                <verbena-input  name=\"Workflow\" label=\"Work Flow\" [(ngModel)]='currentData.data.Workflow' />\n                 <div>\n                  <p class=\"mb-2\">Validate</p>\n                   <verbena-switch [onColor]=\"'#1A237E'\" [(ngModel)]=\"currentData.data.IsValidated\"></verbena-switch>\n               \n                 </div>\n                <!-- <div class=\"flex flex-col gap-1\">\n                  <div>Status</div>\n                  <verben-drop-down width=\"100%\" placeholder=\"Change Status\" [(options)]=\"statusOptions\"\n                    [(ngModel)]=\"this.currentData.data.Status\">\n                  </verben-drop-down>\n                </div> -->\n  \n                <!-- buttons -->\n                <div class=\"flex  justify-between w-full bottom-8 left-0 right-0\">\n                  <div></div>\n                  <!-- <verbena-button class=\"verben-delete-button\" text=\"Delete\"></verbena-button> -->\n                  <div class=\"flex gap-3\">\n                    <verbena-button *ngIf=\"currentData.data.DataState !=='New'\" class=\"verben-switch-button\"\n                      (click)=\"navigateToFields(currentData.data)\"\n                      text=\"View Fields\"></verbena-button>\n                    <verbena-button class=\"verben-switch-button\" (click)=\"goToTableView()\"\n                      text=\"Switch To Table\"></verbena-button>\n                    <verbena-button class=\"verben-primary-button\" (click)=\"this.saveFormGroup()\" text=\"Save\"></verbena-button>\n                  </div>\n                </div>\n              </div>\n  \n            </ng-template>\n          </verben-right-card-data-view>\n          <!-- <verben-right-card-data-view>\n            yeshhhhhh\n          </verben-right-card-data-view> -->\n  \n          <verben-card-data-view-footer>\n            <div class=\"flex gap-2 justify-between\">\n              <div *ngIf=\"!vdcv.hasCurrentItem()\" class=\"message-log-button-container flex justify-between\">\n                <!-- <verbena-button [fontWeight]=\"'bold'\" [bgColor]=\"'#8E8D87'\" [borderRadius]=\"'4px'\" [textColor]=\"'#fff'\"\n                  [text]=\"'Delete'\">\n                </verbena-button> -->\n              </div>\n              <div class=\"flex {{vdcv.hasCurrentItem()?'flex-1':''}} 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\">Load more</button>\n              </div>\n            </div>\n          </verben-card-data-view-footer>\n        </verben-card-data-view>\n      </div>\n      <div column-content>\n        <verben-visible-column (resetFilter)=\"getForms()\" (columnsUpdated)=\"onColumnsUpdated($event)\" [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n          borderRadius=\"10px\" boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"400px\" textColor=\"black\" pd=\"1rem\"\n          primaryColor=\"#FFE681\" secondaryColor=\"#3479E9\" [columns]=\"visibleColumns\"\n          [displayedColumns]=\"5\"></verben-visible-column>\n      </div>\n      <div filter-content>\n        <verben-table-filter (resetSortData)=\"getForms()\"  (filtersApplied)=\"onFilterApplied($event)\" [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n          borderRadius=\"10px\" 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        <verben-sort-table (resetSortData)=\"getForms()\" (selectedOptions)=\"onSortUpdated($event)\" [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n          borderRadius=\"10px\" boxShadow=\"2px 2px 2px 0px silver\" bgColor=\"white\" width=\"400px\" textColor=\"black\" pd=\"1rem\"\n          primaryColor=\"#FFE681\" secondaryColor=\"#3479E9\" tertiaryColor=\"#404040\" [enableDragAndDrop]=\"true\"\n          [sortOptions]=\"sortOptions\"></verben-sort-table>\n      </div>\n      <div export-content>\n        <lib-data-export [data]=\"data\" (exportDataEvent)=\"handleExport($event)\">\n        </lib-data-export>\n      </div>\n      \n    </verben-data-view>\n    <div *ngIf=\"vdv.isTableView\" class=\"flex gap-2 justify-between\">\n      <div class=\"message-log-button-container flex justify-between\">\n        <!-- <verbena-button [fontWeight]=\"'bold'\" [bgColor]=\"'#8E8D87'\" [borderRadius]=\"'4px'\" [textColor]=\"'#fff'\"\n          [text]=\"'Delete'\">\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 (click)=\"loadMore()\" class=\"load-more view-links\">Load more</button>\n      </div>\n    </div>\n  </div>","import { Injectable } from '@angular/core';\nimport { ColumnDefinition } from 'verben-ng-ui';\nimport { FormProperty } from 'verben-workflow-ui/src/lib/models';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class FormsFieldService {\n  constructor() {}\n\n  get formFieldColumns(): ColumnDefinition<FormProperty>[] {\n    return [\n      {\n        id: 'select',\n        header: '',\n      },\n      {\n        id: 'name',\n        header: 'NAME',\n        accessorFn: (row: FormProperty) => {\n          return row;\n        },\n      },\n      {\n        id: 'propertyName',\n        header: 'PROPERTY NAME',\n        accessorFn: (row: FormProperty) => {\n          return row.PropertyName;\n        },\n      },\n      {\n        id: 'dataType',\n        header: 'DATA TYPE',\n        accessorKey: 'DataType',\n      },\n      {\n        id: 'minValue',\n        header: 'MIN VALUE',\n        accessorKey: 'MinValue',\n      },\n      {\n        id: 'maxValue',\n        header: 'MAX VALUE',\n        accessorKey: 'MaxValue',\n      },\n      {\n        id: 'defaultValue',\n        header: 'DEFAULT VALUE',\n        accessorKey: 'DefaultValue',\n      },\n      {\n        id: 'isRequired',\n        header: 'REQUIRED',\n        accessorKey: 'IsRequired',\n      },\n      {\n        id: 'isReadOnly',\n        header: 'READ ONLY',\n        accessorKey: 'IsReadOnly',\n      },\n      {\n        id: 'actions',\n        header: 'ACTIONS',\n        accessorFn: (row: FormProperty) => {\n          return row;\n        },\n      },\n    ];\n  }\n}\n","import { Location } from '@angular/common';\nimport {\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnInit,\n  Output,\n  Renderer2,\n  ViewChild,\n} from '@angular/core';\nimport { FormBuilder } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { debounceTime, Subject } from 'rxjs';\nimport {\n  CardData,\n  CardDataViewComponent,\n  ChipChangeEvent,\n  ColumnDefinition,\n  ConditionalOptions,\n  DataFilterType,\n  DataTableComponent,\n  DataViewComponent,\n  DropdownChangeEvent,\n  IDataFilter\n} from 'verben-ng-ui';\nimport { DataType, ErrorResponse, FormEntity, FormProperty, ObjectState, PagedResult, SearchOperator, SearchPropertySign, SearchPropertyValue, SearchPropertyValueType, Status } from 'verben-workflow-ui/src/lib/models';\nimport { EnvironmentService, HttpWebRequestService, UtilService } from 'verben-workflow-ui/src/lib/services';\nimport { baseStyle } from '../base-table-style';\nimport { FormsFieldService } from './form-fields.service';\n\nenum TaskUserPropertyName {\n  User = 'User',\n  Date = 'Date',\n  Role = 'Role',\n  Service = 'Service',\n  Application = 'Application',\n  Tenant = 'Tenant',\n  Email = 'Email',\n  Status = 'Status',\n}\nenum TaskUserPropertyMap {\n  User = 'Name',\n  Date = 'CreatedAt',\n  Role = 'RoleID',\n  Service = 'ServiceName',\n  Application = 'Application',\n  Tenant = 'TenantId',\n  Email = 'MailAddress',\n  Status = 'Status',\n}\n\nenum FilterTypes {\n  Before = SearchPropertySign.LT,\n  On = SearchPropertySign.EQ,\n  After = SearchPropertySign.GT,\n  NEQ = SearchPropertySign.NEQ,\n}\n\n@Component({\n  selector: 'lib-form-fields',\n  templateUrl: './form-fields.component.html',\n  styleUrl: './form-fields.component.css',\n})\nexport class FormFieldsComponent implements OnInit {\n  visibleColumnDef: ColumnDefinition<FormProperty>[] = [];\n  styles = baseStyle;\n  data: FormEntity[] = [];\n  hideMinMax: boolean = true;\n  @Input() path: string = '/documentation/workflow-forms/fields';\n  cardData: CardData[] = [];\n  queryParams: any = {};\n  showSort: boolean = false;\n  showColumn: boolean = false;\n  currentData: CardData | null = null;\n  @ViewChild('fileInput', { static: true }) fileInput!: ElementRef;\n  @ViewChild('vdcv') cardDataView!: CardDataViewComponent;\n  @ViewChild('vdv') dataView!: DataViewComponent;\n  @ViewChild('dt') tableView!: DataTableComponent<FormEntity>;\n  @Input() application: string | null = null;\n  @Input() pageSize: number = 10;\n  @Input() searchDebounceTime: number = 500;\n  @Output() onViewProcessClicked: EventEmitter<string> = new EventEmitter();\n  currentExpandedCard: CardData | null = null;\n  pageState: PagedResult<FormEntity> | null = null;\n  isOpen: boolean = false;\n  openDropdownId: string | null | number = null;\n  currentFilters: IDataFilter[] = [];\n  currentSorts: IDataFilter[] = [];\n  selectedFilterTableCount: number = 0;\n  selectedSortTableCount: number = 0;\n  selectedColumnTableCount: number = 0;\n  showFilter: boolean = false;\n  formName: string = '';\n  searchTerm$ = new Subject<string>();\n  properties: FormProperty[] = [];\n  searchTerm: string = '';\n  skip = 0;\n  chipArray: string[] = [];\n  Id: string = '';\n  chips: any;\n  statusOptions: Status[] = Object.values(Status);\n  dataType: DataType[] = Object.values(DataType);\n  dataType2: DataType = DataType.Text;\n  users: FormEntity[] = [];\n\n  visibleColumns: IDataFilter[] = [];\n\n  filterArray: IDataFilter[] = [\n    {\n      name: 'Name',\n      type: DataFilterType.String,\n      checked: false,\n    },\n    {\n      name: 'DataType',\n      type: DataFilterType.String,\n      checked: false,\n    },\n    {\n      name: 'DefaultValue',\n      type: DataFilterType.String,\n      checked: false,\n    },\n\n    {\n      name: 'Value',\n      type: DataFilterType.String,\n      checked: false,\n    },\n    {\n      name: 'MaxValue',\n      type: DataFilterType.Number,\n      checked: false,\n    },\n    {\n      name: 'MinValue',\n      type: DataFilterType.String,\n      checked: false,\n    },\n    {\n      name: 'IsRequired',\n      type: DataFilterType.Bool,\n      checked: false,\n    },\n  ];\n\n  sortOptions: IDataFilter[] = [\n    {\n      name: 'Name',\n      type: DataFilterType.String,\n      checked: false,\n    },\n    {\n      name: 'DataType',\n      type: DataFilterType.String,\n      checked: false,\n    },\n    {\n      name: 'DefaultValue',\n      type: DataFilterType.String,\n      checked: false,\n    },\n\n    {\n      name: 'Value',\n      type: DataFilterType.String,\n      checked: false,\n    },\n    {\n      name: 'MaxValue',\n      type: DataFilterType.Number,\n      checked: false,\n    },\n    {\n      name: 'MinValue',\n      type: DataFilterType.String,\n      checked: false,\n    },\n    {\n      name: 'IsRequired',\n      type: DataFilterType.Bool,\n      checked: false,\n    },\n  ];\n\n  private currentSearchTerm: string = '';\n\n  constructor(\n    private utilService: UtilService,\n    private server: HttpWebRequestService,\n    private cdr: ChangeDetectorRef,\n    private fb: FormBuilder,\n    private envSvc: EnvironmentService,\n    private router: Router,\n    private route: ActivatedRoute,\n    private taskUsersSvc: FormsFieldService,\n    private _location: Location,\n    private elRef: ElementRef,\n    private renderer: Renderer2,\n  ) {\n    this.visibleColumnDef = taskUsersSvc.formFieldColumns;\n    this.visibleColumns = taskUsersSvc.formFieldColumns.map((col) => ({\n      checked: true,\n      name: typeof col.header === 'string' ? col.header : col.id,\n      type: DataFilterType.Bool,\n    }));\n  }\n  async ngOnInit(): Promise<void> {\n    this.searchTerm$\n      .pipe(debounceTime(this.searchDebounceTime)) // Adjust debounce time here (in ms)\n      .subscribe(async (searchTerm) => {\n        this.currentSearchTerm = searchTerm;\n        this.updateFiltersAndSorts(true);\n      });\n    this.route.queryParams.subscribe((params) => {\n      const Id = params['FormId'];\n      const Name = params['Name'];\n      this.Id = Id;\n      this.formName = Name;\n      if (Id) {\n        this.getProperties(Id);\n      }\n    });\n  }\n  onChipChange(chips: ChipChangeEvent) {\n    this.chips = chips;\n  }\n  async postSearch(payload: any) {\n    this.utilService.sendBI(true);\n    const res = await this.server.post(\n      `SearchFormEntities/0/${this.pageSize}`,\n      payload\n    );\n    this.utilService.sendBI(false);\n\n    if (res instanceof ErrorResponse) {\n      this.utilService.showError('Error occurred while searching.');\n      return;\n    }\n\n    const pageState = res as PagedResult<FormEntity>;\n    const result = pageState?.Result;\n\n    if (!result || result.length === 0) {\n      this.utilService.showInfo('No results found.');\n      this.data = [];\n      return;\n    }\n\n    // Assign and ensure Properties exist\n    this.data = result.map((item) => ({\n      ...item,\n      Properties: item.Properties || [],\n    }));\n\n    this.setUpCardData();\n    return result;\n  }\n\n  onDropDownChange(event: string) {\n    if (event) {\n      this.checkMinMax(event);\n    }\n  }\n  async getProperties(\n    Id: string,\n    show: boolean = false,\n  ): Promise<FormEntity[] | undefined> {\n    if (this.showColumn) {\n      this.showColumn = false;\n      this.selectedColumnTableCount = 0;\n      this.reset();\n    }\n    if (this.showFilter) {\n      this.showFilter = false;\n      this.selectedFilterTableCount = 0;\n\n      this.reset();\n    }\n    if (this.showSort) {\n      this.showSort = false;\n      this.reset();\n      this.selectedSortTableCount = 0;\n    }\n\n    var payload: SearchPropertyValue[] = [\n      {\n        PropertyName: `Code`,\n        EntityValue: Id,\n        Operator: SearchOperator.And,\n        Sign: SearchPropertySign.EQ,\n        Type: SearchPropertyValueType.String,\n      },\n    ];\n    this.utilService.sendBI(true);\n    const res = await this.server.post(\n      `SearchFormEntities/${this.skip}/${this.pageSize}`,\n      payload\n    );\n    this.utilService.sendBI(false);\n    if (res instanceof ErrorResponse) {\n      return undefined;\n    } else {\n      var result = (res as PagedResult<FormEntity>).Result;\n      this.data = result;\n      this.data.forEach((x) =>\n        x.Properties.forEach((p, i) => (p.Id = i.toString())),\n      );\n      this.properties = this.data[0].Properties;\n      console.log(this.properties, 'jjj');\n\n      this.setUpCardData();\n      show = false;\n      return result;\n    }\n  }\n\n  onUserSelected(event: DropdownChangeEvent, item: FormEntity) {\n    const user = this.users.find((x) => x.Name == event.value);\n    if (user) {\n      item.Name = user.Name;\n      item.Description = user.Description;\n      item.Properties = user.Properties;\n      item.IsValidated = user.IsValidated;\n    }\n  }\n  onClear(event: Event, item: FormEntity) {\n    item.Name = '';\n    item.Description = '';\n    item.Properties = [];\n    item.IsValidated = false;\n  }\n  async getForms(): Promise<FormEntity[] | undefined> {\n    this.utilService.sendBI(true);\n    const res = await this.server.get(\n      `GetFormEntitiesWithParams/Group/0/${this.pageSize}`,\n      this.envSvc.environment.WorkFlowAPI\n    );\n    this.utilService.sendBI(false);\n    if (res instanceof ErrorResponse) {\n      return undefined;\n    } else {\n      this.pageState = res as PagedResult<FormEntity>;\n      var result = (res as PagedResult<FormEntity>).Result;\n      this.data = result;\n      this.setUpCardData();\n      this.properties = result[0].Properties;\n\n      return result;\n    }\n  }\n  getItemLabel(name: string): string {\n    const item = this.users.find((user) => user.Name === name);\n    const otherCheck = this.data.find((data) => data.Name === name);\n    return item ? item.Name : otherCheck ? otherCheck.Name : '';\n  }\n\n  getAsyncLabel(value: any): string {\n    const data = this.data.find((x) => x.Name == value);\n\n    return data ? data.Name : '';\n  }\n\n  async loadMore() {\n    if (!this.pageState) {\n      return;\n    }\n    this.utilService.sendBI(true);\n    const res =\n      this.currentFilters.length > 0 ||\n        this.currentSorts.length > 0 ||\n        this.currentSearchTerm.trim().length > 0\n        ? await this.loadMoreFiltersAndSorts()\n        : await this.server.get(\n          `GetTaskUsers/${this.pageState.Skip}/${this.pageSize}`,\n          this.envSvc.environment.WorkFlowAPI\n        );\n    this.utilService.sendBI(false);\n    if (res instanceof ErrorResponse) {\n      return;\n    } else {\n      this.pageState = res as PagedResult<FormEntity>;\n      var result = (res as PagedResult<FormEntity>).Result;\n\n      this.data = this.data.concat(\n        result.map((x) => {\n          return {\n            ...x,\n            id: x.Name,\n          };\n        }),\n      );\n      this.setUpCardDataExtra(result);\n    }\n  }\n  cardClicked(item: CardData, toggleView: boolean = false) {\n    this.currentData = this.cardDataView.onItemClick(item);\n    if (toggleView) {\n      this.dataView.toggleView();\n    }\n  }\n  toggleChildren(item: CardData) {\n    var currToggleState = item.isChildrenExpanded;\n    this.cardData.forEach((_) => {\n      _.isChildrenExpanded = false;\n    });\n    item.isChildrenExpanded = !currToggleState;\n    if (item.isChildrenExpanded) {\n      this.currentExpandedCard = item;\n    } else {\n      this.currentExpandedCard = null;\n    }\n  }\n  setUpCardData() {\n    const cardData: CardData[] = this.data[0]?.Properties?.map((x) => {\n      return {\n        ...x,\n        selected: false,\n        title: x.Name,\n        data: x,\n        body: [],\n        children: [],\n      };\n    });\n\n    this.cardData = cardData; // Assign the transformed array to `cardData`\n  }\n\n  openDropdown(item: FormProperty): void {\n    this.openDropdownId = this.openDropdownId === item.Id ? null : item.Id;\n  }\n\n  closePopUp(row: FormProperty): void {\n    if (this.openDropdownId === row.Id) {\n      this.openDropdownId = null; // Properly reset when closing\n    }\n    this.onClose(); // Call any additional logic for closure\n  }\n  setUpCardDataExtra(baseData: FormEntity[]) {\n    const cardData: CardData[] = baseData.map((x) => {\n      return {\n        selected: false,\n        title: x.Name,\n        data: x,\n        body: [],\n        children: [],\n      };\n    });\n    this.cardData = this.cardData.concat(cardData);\n  }\n\n  goToCardView(data: FormProperty) {\n    const item = this.cardData.find((x) => x.data == data);\n    if (item) {\n      this.userCardClicked(item, true);\n    }\n  }\n\n  goToTableView() {\n    if (!this.currentData) {\n      return;\n    }\n    this.dataView.toggleView();\n    const id = this.currentData.data ? this.currentData.data.Id : '';\n    if (id.trim().length > 0 && !this.tableView.isRowEditing(id)) {\n      this.tableView.toggleRowEdit(id);\n    }\n  }\n\n  viewProcesses(code: string) {\n    if (code.trim().length == 0) {\n      return;\n    }\n    this.onViewProcessClicked.emit(code);\n  }\n\n  userCardClicked(item: CardData, toggleView: boolean = false): void {\n    this.cardData.forEach((card) => (card.selected = false));\n    item.selected = true;\n    this.currentData = this.cardDataView.onItemClick(item);\n    this.chipArray = JSON.parse(this.currentData?.data.Value);\n    if (toggleView) {\n      this.dataView.toggleView();\n    }\n  }\n\n  async saveFormProperty() {\n    if (!this.currentData) {\n      return;\n    }\n\n    const formProperty: FormEntity[] = this.data;\n\n    this.utilService.sendBI(true);\n\n    try {\n      // API call to save user\n      const res = await this.server.post(\n        `SaveFormEntities`,\n        formProperty,\n        this.envSvc.environment.WorkFlowAPI,\n      );\n\n      this.utilService.sendBI(false);\n\n      if (!(res instanceof ErrorResponse)) {\n        this.utilService.showSuccess('Form property saved successfully');\n\n        const result = res as FormEntity[];\n        if (result.length > 0) {\n          const userResult = result[0];\n\n          const itemIndex = this.data.findIndex(\n            (x) => x === this.currentData?.data,\n          );\n        }\n      }\n    } catch (error) {\n      this.utilService.sendBI(false);\n      // Optional: Handle errors if needed\n    }\n  }\n  stringify(val: any) {\n    return JSON.stringify(val);\n  }\n  generateUniqueId(): string {\n    return '_' + Math.random().toString(36).substr(2, 9);\n  }\n\n  addOrUpdateFormProperty(form: FormEntity, property: FormProperty): void {\n    if (!property.id) {\n      property.id = this.generateUniqueId();\n    }\n\n    const index = form.Properties.findIndex((p) => p.id === property.id);\n\n    if (index !== -1) {\n      form.Properties[index] = { ...property }; // update\n    } else {\n      form.Properties.push({ ...property }); // add\n    }\n\n    form.DataState =\n      form.DataState === ObjectState.New\n        ? ObjectState.New\n        : ObjectState.Changed;\n  }\n  deleteProperty(propertyId: string) {\n    if (!this.data || this.data.length === 0) return;\n\n    const form = this.data[0];\n    form.Properties = form.Properties.filter(\n      (p: FormProperty) => p.Id !== propertyId,\n    );\n\n    this.cardData = this.cardData.filter((c) => c.data.Id !== propertyId);\n\n    if (this.currentData && this.currentData.data.Id === propertyId) {\n      this.currentData = null;\n      this.cardDataView.clearData();\n    }\n\n\n    this.data = [...this.data];\n\n    this.utilService.showInfo(\"Property removed\");\n  }\n\n\n  async saveAllProperties() {\n    if (!this.data || this.data.length === 0) return;\n    const form = this.data[0];\n    form.Properties.forEach((prop: FormProperty, index: number) => {\n      prop.Id = index.toString();\n      prop.MaxValue = Number(prop.MaxValue);\n      prop.MinValue = Number(prop.MinValue);\n      prop.Options = Array.isArray(prop.Options)\n        ? prop.Options.join(\",\")\n        : prop.Options ?? \"\";\n      prop.Value = prop.Value ?? \"\";\n    });\n\n\n\n\n\n\n    const invalid = form.Properties.find(\n      (p) => !p.Name || p.Name.trim().length === 0\n    );\n    if (invalid) {\n      this.utilService.showInfo(\"Name cannot be empty\");\n      return;\n    }\n\n    form.DataState = ObjectState.Changed;\n\n    this.utilService.sendBI(true);\n\n    const res = await this.server.post(\n      \"SaveFormEntities\",\n      [form],\n      this.envSvc.environment.WorkFlowAPI\n    );\n\n    this.utilService.sendBI(false);\n\n    if (res instanceof ErrorResponse) {\n      this.utilService.showError(\"An error occurred while saving\");\n    } else {\n      this.utilService.showSuccess(\"Form properties saved successfully\");\n\n\n\n    }\n  }\n\n\n\n\n  async saveViaTable(row: FormProperty, callBack: () => any) {\n    if (!row) return;\n\n    const property: FormProperty = row as FormProperty;\n    property.MaxValue = Number(property.MaxValue);\n    property.MinValue = Number(property.MinValue);\n    property.Options = this.chipArray?.toString();\n    property.Value = '';\n\n    if (!property.Name || property.Name.trim().length === 0) {\n      this.utilService.showInfo('Name cannot be empty');\n      return;\n    }\n\n    this.utilService.sendBI(true);\n\n    const form = this.data[0];\n    const index = form.Properties.findIndex((p) => p.id === property.id);\n\n    if (index > -1) {\n      form.Properties[index] = property;\n    } else {\n      form.Properties.push(property);\n    }\n\n    form.DataState =\n      form.DataState === ObjectState.New\n        ? ObjectState.New\n        : ObjectState.Changed;\n\n    const res = await this.server.post(\n      'SaveFormEntities',\n      this.data,\n      this.envSvc.environment.WorkFlowAPI,\n    );\n\n    this.utilService.sendBI(false);\n\n    if (res instanceof ErrorResponse) {\n      this.utilService.showError('An error occurred while saving');\n    } else {\n      this.utilService.showSuccess('Form property saved successfully');\n      const result = res as FormEntity[];\n      this.closePopUp(row);\n      callBack();\n      if (result.length > 0) {\n        const updatedForm = result[0];\n        this.data[0].Properties = updatedForm.Properties;\n        this.data = [...this.data];\n      }\n    }\n  }\n\n  toggleIsValidate(value: boolean, row: FormProperty): void {\n    const newValue = !value;\n    row.IsRequired = newValue;\n    console.log(row);\n  }\n  onKeyDown(e: KeyboardEvent, data: FormProperty) {\n    // allow navigation / control keys\n    const allowed = [\n      'Backspace',\n      'Delete',\n      'ArrowLeft',\n      'ArrowRight',\n      'ArrowUp',\n      'ArrowDown',\n      'Tab',\n      'Enter',\n      'Home',\n      'End',\n      'Escape',\n    ];\n    if (allowed.includes(e.key)) return;\n\n    // block the Space key (covers modern & old browsers)\n    if (e.key === ' ' || e.code === 'Space' || e.key === 'Spacebar') {\n      e.preventDefault();\n      return;\n    }\n  }\n\n  onPaste(e: ClipboardEvent, data: FormProperty) {\n    e.preventDefault();\n    const pasted = e.clipboardData?.getData('text') ?? '';\n    const cleaned = pasted.replace(/\\s+/g, '');\n    const input = e.target as HTMLInputElement;\n\n    const start = input.selectionStart ?? input.value.length;\n    const end = input.selectionEnd ?? start;\n    const newVal =\n      input.value.slice(0, start) + cleaned + input.value.slice(end);\n\n    input.value = newVal;\n    data.PropertyName = newVal;\n    this.updateTable?.();\n  }\n\n  onInput(e: Event, data: FormProperty) {\n    const input = e.target as HTMLInputElement;\n    const cleaned = input.value.replace(/\\s+/g, '');\n    if (input.value !== cleaned) {\n      const pos = input.selectionStart ?? cleaned.length;\n      input.value = cleaned;\n\n      const newPos = Math.min(pos, cleaned.length);\n      setTimeout(() => input.setSelectionRange(newPos, newPos), 0);\n    }\n    data.PropertyName = cleaned;\n    this.updateTable?.();\n  }\n\n  updateTable() {\n    this.data = this.data.map((x) => x);\n  }\n\n  convertToInt(value: any, data: any, prop: string) {\n    data[prop] = parseInt(value);\n  }\n  getStringValue(data: any, prop: string): string {\n    return data[prop].toString();\n  }\n\n  checkMinMax(value: string) {\n    var showMinmax = false;\n    switch (value) {\n      case 'String':\n        showMinmax = true;\n        break;\n      case 'Int':\n        showMinmax = true;\n        break;\n      case 'Decimal':\n        showMinmax = true;\n        break;\n      case 'Float':\n        showMinmax = true;\n        break;\n      default:\n        showMinmax = false;\n        break;\n    }\n    return (this.hideMinMax = showMinmax);\n  }\n\n  navigateToFields() {\n    const queryParams = this.queryParams;\n    this.router.navigate([`${this.path}`], { queryParams });\n  }\n  onClose() {\n    this.isOpen = false;\n  }\n\n  goBack() {\n    this._location.back();\n  }\n  isDropdownOpen(item: any): boolean {\n    return this.openDropdownId === item.id;\n  }\n\n  onViewChange(isGridView: boolean): void { }\n\n  onStateChange(event: { key: string; value: boolean }): void {\n    switch (event.key) {\n      case 'create':\n        const newId = `prop-${Date.now()}`;\n\n        var newUser: FormProperty = {\n          MaxValue: 100,\n          Name: '',\n          Value: '',\n          MinValue: 100,\n          Options: '',\n          IsRequired: false,\n          IsReadOnly: false,\n          DataType: DataType.Text,\n          DefaultValue: '',\n          PropertyName: '',\n          id: newId,\n          Id: newId,\n        };\n\n        this.chipArray = [];\n\n        const cardData: CardData = {\n          selected: false,\n          title: newUser.Name,\n          data: newUser,\n          body: [],\n          children: [],\n        };\n        if (this.data && this.data.length > 0) {\n          this.data[0].Properties = [\n            ...(this.data[0].Properties ?? []),\n            newUser,\n          ];\n        }\n        this.cardData.push(cardData);\n        this.userCardClicked(cardData);\n\n        this.dataView.isTableView = false;\n        break;\n\n      case 'filter':\n        this.showFilter = event.value;\n        break;\n\n      case 'sort':\n        this.showSort = event.value;\n        break;\n\n      case 'column':\n        this.showColumn = event.value;\n        break;\n\n      default:\n        break;\n    }\n  }\n\n  reset() {\n    this.skip = 0;\n    this.pageSize = 10;\n  }\n  async onSearch(event: { key: string; value: string }) {\n    this.searchTerm = event.value;\n    this.reset();\n    if (!this.searchTerm) {\n      this.getProperties(this.Id);\n      return;\n    }\n\n    this.utilService.sendBI(true);\n\n    try {\n      const res = await this.server.get(\n        `GetFormEntitiesWithParam/${this.searchTerm}/${this.skip}/${this.pageSize}/CreatedAt/asc`\n      );\n      this.utilService.sendBI(false);\n\n      if (res instanceof ErrorResponse) {\n        console.error('Error during search:', res);\n      } else {\n        this.pageState = res as PagedResult<FormEntity>;\n        var result = (res as PagedResult<FormEntity>).Result;\n        this.data = result;\n\n        this.setUpCardData();\n      }\n    } catch (error) {\n      console.error('Search error:', error);\n    } finally {\n    }\n  }\n  showTableView: boolean = false;\n  onSelectionChange(selectedRows: FormProperty[]) { }\n  retryMessage() { }\n\n  onColumnsUpdated(updatedColumns: IDataFilter[]) {\n    const updatedColumnDef: ColumnDefinition<FormProperty>[] = [];\n    this.showColumn = false;\n    this.selectedColumnTableCount = updatedColumns.length;\n    updatedColumns.forEach((col) => {\n      const matchingCol = this.taskUsersSvc.formFieldColumns.find(\n        (column) => column.header === col.name || column.id === col.name,\n      );\n      if (matchingCol) {\n        updatedColumnDef.push(matchingCol);\n      }\n    });\n\n    this.visibleColumnDef = [...updatedColumnDef];\n  }\n\n  async updateFiltersAndSorts(isSearch: boolean = false) {\n    if (!isSearch) {\n      this.dataView.onClearSearch();\n      this.currentSearchTerm = '';\n      this.cdr.detectChanges();\n      const clickEvent = new MouseEvent('click', {\n        bubbles: true,\n        cancelable: true,\n        view: window,\n      });\n      document.dispatchEvent(clickEvent);\n    }\n    var payload: SearchPropertyValue[] = this.currentFilters.map((x) => {\n      return {\n        PropertyName:\n          TaskUserPropertyMap[x.name as keyof typeof TaskUserPropertyMap],\n        EntityValue: x.value,\n        Operator: SearchOperator.And,\n        Sign:\n          x.condition && Object.keys(FilterTypes).includes(x.condition)\n            ? (FilterTypes[\n              x.condition as keyof typeof FilterTypes\n            ] as unknown as SearchPropertySign)\n            : SearchPropertySign.EQ,\n        Type:\n          x.name == TaskUserPropertyName.Date\n            ? SearchPropertyValueType.Date\n            : SearchPropertyValueType.String,\n      };\n    });\n    // payload.push({\n    //   PropertyName: 'APIKey',\n    //   EntityValue: this.envSvc.environment.APIKey,\n    //   Operator: SearchOperator.And,\n    //   Sign: SearchPropertySign.EQ,\n    // });\n    const sortParam: { Param: string; Order: string } | null =\n      this.currentSorts.length > 0\n        ? {\n          Param:\n            TaskUserPropertyMap[\n            this.currentSorts[0].name as keyof typeof TaskUserPropertyMap\n            ],\n          Order: this.currentSorts[0].value,\n        }\n        : null;\n    const searchTermExists = this.currentSearchTerm.trim().length > 0;\n    this.utilService.sendBI(true);\n    const res = searchTermExists\n      ? await this.server.get(\n        `GetTaskUserWithParam/${this.currentSearchTerm.trim()}/0/${this.pageSize\n        }`,\n        this.envSvc.environment.WorkFlowAPI\n      )\n      : await this.server.post(\n        sortParam\n          ? `SearchTaskUsers/0/${this.pageSize}/${sortParam.Param}/${sortParam.Order}`\n          : `SearchTaskUsers/0/${this.pageSize}`,\n        payload,\n        this.envSvc.environment.WorkFlowAPI\n      );\n    this.utilService.sendBI(false);\n    if (res instanceof ErrorResponse) {\n      this.currentFilters = [];\n      this.currentSorts = [];\n      return undefined;\n    } else {\n      this.pageState = res as PagedResult<FormEntity>;\n      var result = (res as PagedResult<FormEntity>).Result;\n      this.data = result.map((x) => {\n        return {\n          ...x,\n          id: x.Id,\n        };\n      });\n      this.setUpCardData();\n    }\n  }\n  async loadMoreFiltersAndSorts(): Promise<\n    PagedResult<FormEntity> | undefined\n  > {\n    if (!this.pageState) {\n      return;\n    }\n    var payload: SearchPropertyValue[] = this.currentFilters.map((x) => {\n      return {\n        PropertyName:\n          TaskUserPropertyMap[x.name as keyof typeof TaskUserPropertyMap],\n        EntityValue: x.value,\n        Operator: SearchOperator.And,\n        Sign:\n          x.condition && Object.keys(FilterTypes).includes(x.condition)\n            ? (FilterTypes[\n              x.condition as keyof typeof FilterTypes\n            ] as unknown as SearchPropertySign)\n            : SearchPropertySign.EQ,\n        Type:\n          x.name == TaskUserPropertyName.Date\n            ? SearchPropertyValueType.Date\n            : SearchPropertyValueType.String,\n      };\n    });\n    const sortParam: { Param: string; Order: string } | null =\n      this.currentSorts.length > 0\n        ? {\n          Param:\n            TaskUserPropertyMap[\n            this.currentSorts[0].name as keyof typeof TaskUserPropertyMap\n            ],\n          Order: this.currentSorts[0].value,\n        }\n        : null;\n    const searchTermExists = this.currentSearchTerm.trim().length > 0;\n    this.utilService.sendBI(true);\n    const res = searchTermExists\n      ? await this.server.get(\n        `GetTaskUserWithParam/${this.currentSearchTerm.trim()}/${this.pageState.Skip\n        }/${this.pageSize}`,\n        this.envSvc.environment.WorkFlowAPI\n      )\n      : await this.server.post(\n        sortParam\n          ? `SearchTaskUsers/${this.pageState.Skip}/${this.pageSize}/${sortParam.Param}/${sortParam.Order}`\n          : `SearchTaskUsers/${this.pageState.Skip}/${this.pageSize}`,\n        payload,\n        this.envSvc.environment.WorkFlowAPI\n      );\n    this.utilService.sendBI(false);\n    if (res instanceof ErrorResponse) {\n      return undefined;\n    } else {\n      var result = res as PagedResult<FormEntity>;\n      return result;\n    }\n  }\n  onFilterApplied(appliedFilter: IDataFilter[]) {\n    if (Array.isArray(appliedFilter)) {\n      this.selectedFilterTableCount = appliedFilter.length;\n\n      this.showFilter = false;\n      const queryParams = appliedFilter\n        .filter((filter) => filter.checked)\n        .map((filter) => ({\n          PropertyName: filter.name,\n          EntityValue: filter.value,\n          Type: filter.type,\n          Operator: 'And',\n          Sign: this.getCondition(filter.condition),\n        }));\n\n      this.postSearch(queryParams);\n    }\n  }\n  getCondition(value: any) {\n    switch (value) {\n      case ConditionalOptions.On:\n        return SearchPropertySign.EQ;\n      case ConditionalOptions.After:\n        return SearchPropertySign.EQ;\n      case ConditionalOptions.Before:\n        return SearchPropertySign.LT;\n      case ConditionalOptions.NotEqual:\n        return SearchPropertySign.NEQ;\n      default:\n        return value;\n    }\n  }\n  onSortUpdated(updatedSorts: IDataFilter[]) {\n    this.currentSorts = updatedSorts;\n    this.showSort = false;\n    this.selectedSortTableCount = updatedSorts.length;\n    this.updateFiltersAndSorts();\n  }\n\n  handleSearch(event: { key: string; value: string }) {\n    this.searchTerm$.next(event.value);\n  }\n\n  handleExport(exportedData: Partial<any>[]) {\n    // console.log('Exported data:', exportedData);\n    this.downloadCSV(exportedData);\n  }\n  private downloadCSV(data: Partial<any>[]) {\n    const headers = Object.keys(data[0]);\n    const csvContent = [\n      headers.join(','),\n      ...data.map((row) => headers.map((header) => row[header]).join(',')),\n    ].join('\\n');\n\n    const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });\n    const link = document.createElement('a');\n    if (link.download !== undefined) {\n      const url = URL.createObjectURL(blob);\n      link.setAttribute('href', url);\n      link.setAttribute('download', 'export.csv');\n      link.style.visibility = 'hidden';\n      document.body.appendChild(link);\n      link.click();\n      document.body.removeChild(link);\n    }\n  }\n}\n","<header\n  class=\"rounded-lg shadow-lg flex justify-between items-center px-6 py-2 bg-[#D4A00773]\"\n>\n  <div class=\"flex items-center gap-10\">\n    <h4 class=\"font-semibold\">{{ formName }}</h4>\n    <span class=\"flex items-center gap-1\">\n      Ref ID:\n      <span>{{ Id }}</span>\n    </span>\n  </div>\n  <div class=\"flex gap-3 items-center\">\n    <verbena-button\n      [pd]=\"'6px'\"\n      class=\"verben-primary-button\"\n      (click)=\"saveAllProperties()\"\n      text=\"Save All\"\n    ></verbena-button>\n    <verben-svg\n      (click)=\"goBack()\"\n      class=\"cursor-pointer\"\n      [width]=\"17\"\n      [height]=\"17\"\n      [icon]=\"'close'\"\n    ></verben-svg>\n  </div>\n</header>\n<div #messageLog class=\"flex flex-col gap-4 message-log-container\">\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: true,\n      isToggle: true,\n    }\"\n    [buttonClass]=\"'my-custom-button-class'\"\n    [iconClass]=\"'my-icon-class'\"\n    [showSortChild]=\"showSort\"\n    [showColumnChild]=\"showColumn\"\n    [activeIconClass]=\"'my-active-icon-class'\"\n    [selectedColumnCount]=\"selectedColumnTableCount\"\n    [selectedSortCount]=\"selectedSortTableCount\"\n    [selectedFilterTableCount]=\"selectedFilterTableCount\"\n    [showFilterChild]=\"showFilter\"\n    [searchValue]=\"searchTerm\"\n    (viewChange)=\"onViewChange($event)\"\n    (stateChange)=\"onStateChange($event)\"\n    (onSearchChange)=\"onSearch($event)\"\n  >\n    <div class=\"mt-2\" table-content>\n      <lib-data-table\n        #dt\n        [data]=\"data[0].Properties\"\n        [columns]=\"visibleColumnDef\"\n        [styleConfig]=\"styles\"\n        (selectionChange)=\"onSelectionChange($event)\"\n      >\n        <ng-container libColumn=\"select\">\n          <ng-template\n            #cell\n            let-isSelected=\"isSelected\"\n            let-toggleRowSelection=\"toggleRowSelection\"\n          >\n            <input\n              type=\"checkbox\"\n              [checked]=\"isSelected\"\n              (change)=\"toggleRowSelection()\"\n            />\n          </ng-template>\n          <ng-template\n            #header\n            let-allRowsSelected=\"allRowsSelected\"\n            let-someRowsSelected=\"someRowsSelected\"\n            let-toggleAllRows=\"toggleAllRows\"\n          >\n            <input\n              type=\"checkbox\"\n              [checked]=\"allRowsSelected()\"\n              [indeterminate]=\"someRowsSelected()\"\n              (change)=\"toggleAllRows()\"\n            />\n          </ng-template>\n        </ng-container>\n        <ng-container libColumn=\"name\">\n          <ng-template #cell let-row=\"row\" let-value>\n            {{ value.Name }}\n          </ng-template>\n          <ng-template\n            #cellEdit\n            let-row=\"row\"\n            let-updateValue=\"updateValue\"\n            let-value\n          >\n            <verbena-input\n              inputContainerClass=\"w-fit\"\n              [(ngModel)]=\"row.Name\"\n            ></verbena-input>\n          </ng-template>\n        </ng-container>\n        <ng-container libColumn=\"propertyName\">\n          <ng-template #cell let-row=\"row\" let-value>\n            {{ row.PropertyName }}\n          </ng-template>\n          <ng-template\n            #cellEdit\n            let-row=\"row\"\n            let-updateValue=\"updateValue\"\n            let-value\n          >\n            <verbena-input\n              (keydown)=\"onKeyDown($event, row)\"\n              (paste)=\"onPaste($event, row)\"\n              (input)=\"onInput($event, row)\"\n              inputContainerClass=\"w-fit\"\n              [(ngModel)]=\"row.PropertyName\"\n            ></verbena-input>\n          </ng-template>\n        </ng-container>\n        <ng-container libColumn=\"minValue\">\n          <ng-template #cell let-row=\"row\" let-value>\n            {{ value }}\n          </ng-template>\n          <ng-template\n            #cellEdit\n            let-row=\"row\"\n            let-updateValue=\"updateValue\"\n            let-value\n          >\n            <verbena-input\n              [type]=\"'number'\"\n              [ngModel]=\"getStringValue(row, 'MinValue')\"\n              (valueChange)=\"convertToInt($event, row, 'MinValue')\"\n              inputContainerClass=\"w-[130px]\"\n            ></verbena-input>\n          </ng-template>\n        </ng-container>\n        <ng-container libColumn=\"maxValue\">\n          <ng-template #cell let-row=\"row\" let-value>\n            {{ value }}\n          </ng-template>\n          <ng-template\n            #cellEdit\n            let-row=\"row\"\n            let-updateValue=\"updateValue\"\n            let-value\n          >\n            <verbena-input\n              [type]=\"'number'\"\n              inputContainerClass=\"w-[130px]\"\n              [ngModel]=\"getStringValue(row, 'MaxValue')\"\n              (valueChange)=\"convertToInt($event, row, 'MaxValue')\"\n            ></verbena-input>\n          </ng-template>\n        </ng-container>\n        <ng-container libColumn=\"defaultValue\">\n          <ng-template #cell let-row=\"row\" let-value>\n            {{ value }}\n          </ng-template>\n          <ng-template\n            #cellEdit\n            let-row=\"row\"\n            let-updateValue=\"updateValue\"\n            let-value\n          >\n            <verbena-input\n              [type]=\"'text'\"\n              inputContainerClass=\"w-[130px]\"\n              [(ngModel)]=\"row.DefaultValue\"\n            ></verbena-input>\n          </ng-template>\n        </ng-container>\n        <ng-container libColumn=\"dataType\">\n          <ng-template #cell let-row=\"row\" let-value>\n            {{ value }}\n          </ng-template>\n          <ng-template\n            #cellEdit\n            let-row=\"row\"\n            let-updateValue=\"updateValue\"\n            let-value\n          >\n            <div class=\"flex flex-col gap-1\">\n              <verben-drop-down\n                width=\"100%\"\n                placeholder=\"Change Data Type\"\n                [(options)]=\"dataType\"\n                [(ngModel)]=\"row.DataType\"\n              >\n              </verben-drop-down>\n            </div>\n          </ng-template>\n        </ng-container>\n\n        <ng-container libColumn=\"isRequired\">\n          <ng-template #cell let-row=\"row\" let-value>\n            <verben-svg *ngIf=\"value === true\" [icon]=\"'check'\"></verben-svg>\n            <verben-svg *ngIf=\"value === false\" [icon]=\"'error'\"></verben-svg>\n          </ng-template>\n          <ng-template\n            #cellEdit\n            let-row=\"row\"\n            let-updateValue=\"updateValue\"\n            let-value\n          >\n            <verbena-switch\n              [onColor]=\"'#1A237E'\"\n              [(ngModel)]=\"row.IsRequired\"\n            ></verbena-switch>\n          </ng-template>\n        </ng-container>\n\n        <ng-container libColumn=\"isReadOnly\">\n          <ng-template #cell let-row=\"row\" let-value>\n            <verben-svg *ngIf=\"value === true\" [icon]=\"'check'\"></verben-svg>\n            <verben-svg *ngIf=\"value === false\" [icon]=\"'error'\"></verben-svg>\n          </ng-template>\n          <ng-template\n            #cellEdit\n            let-row=\"row\"\n            let-updateValue=\"updateValue\"\n            let-value\n          >\n            <verbena-switch\n              [onColor]=\"'#1A237E'\"\n              [(ngModel)]=\"row.IsReadOnly\"\n            ></verbena-switch>\n          </ng-template>\n        </ng-container>\n\n        <ng-container libColumn=\"actions\">\n          <ng-template\n            #cell\n            let-isEditing=\"isEditing\"\n            let-toggleRowEdit=\"toggleRowEdit\"\n            let-row=\"row\"\n            let-value\n          >\n            <verben-pop-Up\n              [customStyles]=\"{ 'z-index': '99' }\"\n              [dropdownOpen]=\"openDropdownId === row.id\"\n              [enableMouseLeave]=\"false\"\n              (close)=\"onClose()\"\n            >\n              <verben-svg\n                class=\"cursor-pointer actions-icon\"\n                (click)=\"openDropdown(row)\"\n                dropdown-trigger\n                icon=\"list\"\n              ></verben-svg>\n              <div\n                class=\"pop-up-content flex flex-col\"\n                *ngIf=\"openDropdownId === row.Id\"\n                dropdown-content\n              >\n                <div\n                  (click)=\"toggleRowEdit()\"\n                  class=\"pop-up-value cursor-pointer\"\n                >\n                  Edit\n                </div>\n                <div\n                  (click)=\"deleteProperty(row.Id)\"\n                  class=\"pop-up-value cursor-pointer\"\n                >\n                  Delete\n                </div>\n              </div>\n            </verben-pop-Up>\n          </ng-template>\n          <ng-template\n            #cellEdit\n            let-isEditing=\"isEditing\"\n            let-toggleRowEdit=\"toggleRowEdit\"\n            let-row=\"row\"\n            let-value\n          >\n            <div class=\"flex gap-2 items-center\">\n              <verben-svg\n                icon=\"check\"\n                [width]=\"15\"\n                [height]=\"15\"\n                (click)=\"saveViaTable(row, toggleRowEdit)\"\n              ></verben-svg>\n              <verben-svg\n                (click)=\"toggleRowEdit(); deleteProperty(row.Id)\"\n                icon=\"delete\"\n                [width]=\"15\"\n                [height]=\"15\"\n              ></verben-svg>\n              <verben-svg\n                icon=\"cardViewAlt\"\n                [width]=\"15\"\n                [height]=\"15\"\n                (click)=\"goToCardView(value)\"\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        #vdcv\n        dataId=\"Id\"\n        border=\"5px\"\n        [cardDataList]=\"cardData\"\n        rbgColor=\"#f5f6f9\"\n        mg=\"0px\"\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)=\"userCardClicked(item)\"\n                class=\"flex cursor-pointer h-[max-content]\"\n              >\n                <!-- <verben-svg [width]=\"15\" [height]=\"15\" (click)=\"toggleChildren(item); $event.stopPropagation()\"\n                    [ngClass]=\"item.children && item.children.length?'visible':'invisible'\"\n                    class=\"items-center flex  pr-1 cursor-pointer\" [icon]=\"item.isChildrenExpanded?'minus':'plus'\" /> -->\n                <div class=\"flex w-full bg-secondary rounded-xl\">\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=\"py-3 px-4 flex-1 h-[100%]\">\n                    <div\n                      class=\"flex items-start flex-1 gap-1 justify-between h-[100%]\"\n                    >\n                      <div\n                        class=\"flex flex-col flex-1 card-min-height justify-between h-[100%]\"\n                      >\n                        <div class=\"flex justify-between mr-4\">\n                          <div>\n                            <h3\n                              class=\"my-0 font-bold text-[#404040] leading-[19.5px]\"\n                            >\n                              {{ item.data.Name }}\n                            </h3>\n                            <span class=\"flex items-center gap-1 mt-2\">\n                              <span class=\"!text-[10px] text-[#404040]\"\n                                >Data Type:</span\n                              >\n                              <span class=\"!text-[13px] font-bold\">{{\n                                item.data.DataType\n                              }}</span>\n                            </span>\n                          </div>\n\n                          <div>\n                            <!-- <span class=\"!text-[10px] text-[#404040]\"\n                              >Default Value:</span\n                            >\n                            <p class=\"!text-[12px]\">\n                              {{ item.data.DefaultValue }}\n                            </p> -->\n                          </div>\n                        </div>\n                      </div>\n\n                      <!-- <div class=\"flex items-end h-[100%]\">\n                          <span class=\"enum-val {{item.data.Status}}\">{{item.data.Status}}</span>\n                        </div> -->\n                    </div>\n                  </div>\n                </div>\n              </div>\n            </ng-template>\n          </verben-left-card-data>\n        </verben-left-card-data-view>\n        <verben-right-card-data-view>\n          <ng-template #parent>\n            <div\n              *ngIf=\"currentData\"\n              class=\"flex flex-col rounded-xl h-full w-full relative gap-6\"\n            >\n              <verbena-input\n                name=\"Name\"\n                label=\"Name\"\n                [(ngModel)]=\"currentData.data.Name\"\n              />\n              <verbena-input\n                name=\"Name\"\n                label=\"Property Name\"\n                (keydown)=\"onKeyDown($event, currentData.data)\"\n                (paste)=\"onPaste($event, currentData.data)\"\n                (input)=\"onInput($event, currentData.data)\"\n                [(ngModel)]=\"currentData.data.PropertyName\"\n              />\n              <div class=\"flex flex-col gap-1\">\n                <div>Data Type</div>\n                <verben-drop-down\n                  width=\"100%\"\n                  placeholder=\"Change Data Type\"\n                  [(options)]=\"dataType\"\n                  [(ngModel)]=\"currentData.data.DataType\"\n                  (ngModelChange)=\"onDropDownChange($event)\"\n                >\n                </verben-drop-down>\n              </div>\n\n              <div\n                *ngIf=\"\n                  currentData.data.DataType === 'SingleSelection' ||\n                  currentData.data.DataType === 'MultiSelection'\n                \"\n              >\n                <p class=\"mb-2\">Enter Options</p>\n                <verben-chip\n                  [placeholder]=\"'Enter Options'\"\n                  [(ngModel)]=\"chipArray\"\n                  (onChange)=\"onChipChange($event)\"\n                ></verben-chip>\n              </div>\n              <div>\n                <verbena-input\n                  [placeHolder]=\"'Enter default text'\"\n                  [(ngModel)]=\"currentData.data.DefaultValue\"\n                  name=\"DefaultValue\"\n                  label=\"Default Value (optional)\"\n                />\n              </div>\n              <div>\n                <p class=\"mb-2\">Required</p>\n\n                <verbena-switch\n                  [onColor]=\"'#1A237E'\"\n                  [(ngModel)]=\"currentData.data.IsRequired\"\n                ></verbena-switch>\n              </div>\n              <div>\n                <p class=\"mb-2\">Read Only</p>\n\n                <verbena-switch\n                  [onColor]=\"'#1A237E'\"\n                  [(ngModel)]=\"currentData.data.IsReadOnly\"\n                ></verbena-switch>\n              </div>\n              <div\n                *ngIf=\"\n                  currentData.data.DataType === 'Number' ||\n                  currentData.data.DataType === 'Text'\n                \"\n                class=\"flex flex-col gap-6\"\n              >\n                <verbena-input\n                  [type]=\"'number'\"\n                  name=\"minValue\"\n                  label=\"Min Value\"\n                  [ngModel]=\"getStringValue(currentData.data, 'MinValue')\"\n                  (valueChange)=\"\n                    convertToInt($event, currentData.data, 'MinValue')\n                  \"\n                />\n                <verbena-input\n                  [type]=\"'number'\"\n                  name=\"maxValue\"\n                  label=\"Max Value\"\n                  (ngModelChange)=\"updateTable()\"\n                  [ngModel]=\"getStringValue(currentData.data, 'MaxValue')\"\n                  (valueChange)=\"\n                    convertToInt($event, currentData.data, 'MaxValue')\n                  \"\n                />\n              </div>\n              <!-- buttons -->\n              <div class=\"flex justify-between w-full bottom-8 left-0 right-0\">\n                <verbena-button\n                  (click)=\"deleteProperty(currentData.data.Id)\"\n                  class=\"verben-delete-button\"\n                  text=\"Delete\"\n                ></verbena-button>\n                <div class=\"flex gap-3\">\n                  <verbena-button\n                    class=\"verben-switch-button\"\n                    (click)=\"goToTableView()\"\n                    text=\"Switch To Table\"\n                  ></verbena-button>\n                  <!-- <verbena-button class=\"verben-primary-button\" (click)=\"saveUser()\" text=\"Save\"></verbena-button> -->\n                </div>\n              </div>\n            </div>\n          </ng-template>\n        </verben-right-card-data-view>\n        <!-- <verben-right-card-data-view>\n            yeshhhhhh\n          </verben-right-card-data-view> -->\n\n        <verben-card-data-view-footer>\n          <div class=\"flex gap-2 justify-between\">\n            <div\n              *ngIf=\"!vdcv.hasCurrentItem()\"\n              class=\"message-log-button-container flex justify-between\"\n            >\n              <verbena-button\n                [fontWeight]=\"'bold'\"\n                [bgColor]=\"'#8E8D87'\"\n                [borderRadius]=\"'4px'\"\n                [textColor]=\"'#fff'\"\n                [text]=\"'Delete'\"\n              >\n              </verbena-button>\n            </div>\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            </div>\n          </div>\n        </verben-card-data-view-footer>\n      </verben-card-data-view>\n    </div>\n    <div column-content>\n      <verben-visible-column\n        (resetFilter)=\"getProperties(Id, showColumn)\"\n        (columnsUpdated)=\"onColumnsUpdated($event)\"\n        [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n        borderRadius=\"10px\"\n        boxShadow=\"2px 2px 2px 0px silver\"\n        bgColor=\"white\"\n        width=\"400px\"\n        textColor=\"black\"\n        pd=\"1rem\"\n        primaryColor=\"#FFE681\"\n        secondaryColor=\"#3479E9\"\n        [columns]=\"visibleColumns\"\n        [displayedColumns]=\"5\"\n      ></verben-visible-column>\n    </div>\n    <div filter-content>\n      <verben-table-filter\n        (resetSortData)=\"getProperties(Id, showFilter)\"\n        (filtersApplied)=\"onFilterApplied($event)\"\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      <verben-sort-table\n        (resetSortData)=\"getProperties(Id, showSort)\"\n        (selectedOptions)=\"onSortUpdated($event)\"\n        [border]=\"'1px solid rgba(212, 160, 7, 1)'\"\n        borderRadius=\"10px\"\n        boxShadow=\"2px 2px 2px 0px silver\"\n        bgColor=\"white\"\n        width=\"400px\"\n        textColor=\"black\"\n        pd=\"1rem\"\n        primaryColor=\"#FFE681\"\n        secondaryColor=\"#3479E9\"\n        tertiaryColor=\"#404040\"\n        [enableDragAndDrop]=\"true\"\n        [sortOptions]=\"sortOptions\"\n      ></verben-sort-table>\n    </div>\n    <div export-content>\n      <lib-data-export\n        [data]=\"data[0].Properties\"\n        (exportDataEvent)=\"handleExport($event)\"\n      >\n      </lib-data-export>\n    </div>\n  </verben-data-view>\n  <div *ngIf=\"vdv.isTableView\" class=\"flex gap-2 justify-between\">\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        [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 (click)=\"loadMore()\" class=\"load-more view-links\">\n        Load more\n      </button>\n    </div>\n  </div>\n</div>\n<!-- <div class=\"w-[400px] bg-white p-4 shadow-lg border\">\n  <form-control  [dataType]=\"dataType2\" [formProperties]=\"data[0].Properties\"></form-control>\n</div> -->\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FormFieldsComponent } from './form-fields.component';\nimport {\n  CardDataViewModule,\n  ChipModule,\n  DataExportModule,\n  DataTableModule,\n  DataViewModule,\n  DropDownModule,\n  SortTableModule,\n  SvgModule,\n  TableFilterModule,\n  VerbenaButtonModule,\n  VerbenaInputModule,\n  VerbenaSwitchModule,\n  VerbenPopUpModule,\n  VisibleColumnModule,\n} from 'verben-ng-ui';\nimport { FormControlerModule } from 'verben-workflow-ui/src/lib/components/form-control';\n\n@NgModule({\n  declarations: [FormFieldsComponent],\n  imports: [\n    CommonModule,\n    FormsModule,\n    ReactiveFormsModule,\n    DataTableModule,\n    SvgModule,\n    VerbenPopUpModule,\n    DataViewModule,\n    VerbenaButtonModule,\n    CardDataViewModule,\n    DropDownModule,\n    TableFilterModule,\n    VisibleColumnModule,\n    SortTableModule,\n    DataExportModule,\n    VerbenaInputModule,\n    VerbenaSwitchModule,\n    FormControlerModule,\n    ChipModule,\n  ],\n  exports: [FormFieldsComponent],\n})\nexport class FormsFieldLibModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport {\n  CardDataViewModule,\n  DataExportModule,\n  DataTableModule,\n  DataViewModule,\n  DropDownModule,\n  SortTableModule,\n  SvgModule,\n  TableFilterModule,\n  VerbenaButtonModule,\n  VerbenaInputModule,\n  VerbenaSwitchModule,\n  VerbenPopUpModule,\n  VisibleColumnModule,\n} from 'verben-ng-ui';\nimport { FormGroupComponent } from './form-group.component';\nimport { FormsFieldLibModule } from './form-fields/form-fields.module';\nimport { RouterModule, Routes } from '@angular/router';\nimport { FormFieldsComponent } from './form-fields/form-fields.component';\nexport const appRoutes: Routes = [\n  { path: '', component: FormGroupComponent, title: 'Form' },\n  { path: 'fields', component: FormFieldsComponent, title: 'Fields' },\n];\n@NgModule({\n  declarations: [FormGroupComponent],\n  imports: [\n    CommonModule,\n    FormsModule,\n    ReactiveFormsModule,\n    DataTableModule,\n    SvgModule,\n    VerbenPopUpModule,\n    DataViewModule,\n    VerbenaButtonModule,\n    CardDataViewModule,\n    DropDownModule,\n    VerbenaSwitchModule,\n    TableFilterModule,\n    VisibleColumnModule,\n    SortTableModule,\n    DataExportModule,\n    VerbenaInputModule,\n    FormsFieldLibModule,\n    RouterModule.forChild(appRoutes),\n  ],\n  exports: [FormGroupComponent],\n})\nexport class FormGroupLibModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["TaskUserPropertyMap","FilterTypes","i2","i3.FormsService","i4","i5","i4.FormsFieldService"],"mappings":"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"}