{"version":3,"file":"kivio.mjs","sources":["../../../projects/kivio/src/lib/enums/action-type.enum.ts","../../../projects/kivio/src/lib/components/kv-loading/kv-loading.component.ts","../../../projects/kivio/src/lib/components/kv-loading/kv-loading.component.html","../../../projects/kivio/src/lib/components/kv-resource-not-found/kv-resource-not-found.component.ts","../../../projects/kivio/src/lib/components/kv-resource-not-found/kv-resource-not-found.component.html","../../../projects/kivio/src/lib/services/pagination.service.ts","../../../projects/kivio/src/lib/components/kv-main-table/kv-main-table.component.ts","../../../projects/kivio/src/lib/components/kv-main-table/kv-main-table.component.html","../../../projects/kivio/src/lib/components/kv-popup/kv-popup.component.ts","../../../projects/kivio/src/lib/components/kv-popup/kv-popup.component.html","../../../projects/kivio/src/lib/components/date-picker/date-picker.component.ts","../../../projects/kivio/src/lib/components/date-picker/date-picker.component.html","../../../projects/kivio/src/lib/components/kv-step/kv-step.component.ts","../../../projects/kivio/src/lib/components/kv-step/kv-step.component.html","../../../projects/kivio/src/lib/components/kv-stepper/kv-stepper.component.ts","../../../projects/kivio/src/lib/components/kv-stepper/kv-stepper.component.html","../../../projects/kivio/src/lib/components/kv-accordion/kv-accordion.component.ts","../../../projects/kivio/src/lib/components/kv-accordion/kv-accordion.component.html","../../../projects/kivio/src/lib/components/kv-alert/kv-alert.component.ts","../../../projects/kivio/src/lib/components/kv-alert/kv-alert.component.html","../../../projects/kivio/src/lib/components/kv-side-menu/kv-side-menu.component.ts","../../../projects/kivio/src/lib/components/kv-side-menu/kv-side-menu.component.html","../../../projects/kivio/src/lib/factories/form-factory.service.ts","../../../projects/kivio/src/lib/components/kv-item-card/kv-item-card.component.ts","../../../projects/kivio/src/lib/components/kv-item-card/kv-item-card.component.html","../../../projects/kivio/src/lib/services/navigation.service.ts","../../../projects/kivio/src/lib/services/notification.service.ts","../../../projects/kivio/src/lib/services/session.service.ts","../../../projects/kivio/src/lib/injection-tokens/auth-config.ts","../../../projects/kivio/src/lib/services/auth-interceptor.service.ts","../../../projects/kivio/src/lib/services/auth.service.ts","../../../projects/kivio/src/lib/helpers/auth.helper.ts","../../../projects/kivio/src/lib/validators/password-missmatch.validator.ts","../../../projects/kivio/src/public-api.ts","../../../projects/kivio/src/kivio.ts"],"sourcesContent":["export enum ActionType {\r\n    Info = \"info\",\r\n    Warn = \"warn\",\r\n    Error = \"error\",\r\n    Advertise = \"advertise\"\r\n}","import { CommonModule } from \"@angular/common\";\r\nimport { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n    selector: 'lib-kv-loading',\r\n    standalone: true,\r\n    imports: [CommonModule],\r\n    templateUrl: './kv-loading.component.html',\r\n    styleUrl: './kv-loading.component.scss'\r\n  })\r\n  export class KvLoadingComponent{\r\n  \r\n    @Input() message: string = '';\r\n    @Input() isLoading: boolean = false;\r\n    @Input() isFullScreen: boolean = false;\r\n    @Input() customIcon: string = '';\r\n    @Input() customImage: string = '';\r\n    @Input() iconStyles: { [key: string]: any } = {};\r\n    @Input() imageStyles: { [key: string]: any } = {};\r\n  \r\n  }","<div class=\"loading-component\" [ngClass]=\"{'fullscreen-overlay': isFullScreen}\">\r\n    <div class=\"loading-container\" *ngIf=\"isLoading\">\r\n        <!-- Default spinner -->\r\n        <div class=\"loading-spinner\" *ngIf=\"!customIcon && !customImage\"></div>\r\n        \r\n        <!-- Custom icon (font icon or SVG) -->\r\n        <div class=\"custom-icon-container\" *ngIf=\"customIcon && !customImage\">\r\n            <i [class]=\"customIcon\" [ngStyle]=\"iconStyles\"></i>\r\n        </div>\r\n        \r\n        <!-- Custom image/GIF -->\r\n        <div class=\"custom-image-container\" *ngIf=\"customImage\">\r\n            <img [src]=\"customImage\" [alt]=\"message || 'Loading'\" [ngStyle]=\"imageStyles\">\r\n        </div>\r\n        \r\n        <p *ngIf=\"message\">{{message}}</p>\r\n    </div>\r\n</div>","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-kv-resource-not-found',\r\n  standalone: true,\r\n  imports: [],\r\n  templateUrl: './kv-resource-not-found.component.html',\r\n  styleUrl: './kv-resource-not-found.component.scss'\r\n})\r\nexport class ResourceNotFoundComponent {\r\n  @Input() messageTitle: string = 'Resource not found';\r\n  @Input() messageDescription: string = 'The requested resource could not be found.';\r\n}\r\n","<div class=\"empty-state\">\r\n    <div class=\"empty-state-content\">\r\n        <i class=\"material-icons empty-icon\">rule</i>\r\n        <h3>{{ messageTitle }}</h3>\r\n        <p>{{ messageDescription }}</p>\r\n    </div>\r\n</div>","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nexport interface PaginationState {\r\n  currentPage: number;\r\n  pageSize: number;\r\n  searchText: string;\r\n  totalItems: number;\r\n}\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class PaginationService {\r\n  private paginationState = new BehaviorSubject<PaginationState>({\r\n    currentPage: 1,\r\n    pageSize: 5,\r\n    searchText: '',\r\n    totalItems: 0\r\n  });\r\n\r\n  paginationState$ = this.paginationState.asObservable();\r\n\r\n  updatePaginationState(state: Partial<PaginationState>) {\r\n    const currentState = this.paginationState.value;\r\n    this.paginationState.next({\r\n      ...currentState,\r\n      ...state\r\n    });\r\n  }\r\n\r\n  getCurrentState(): PaginationState {\r\n    return this.paginationState.value;\r\n  }\r\n\r\n  resetState() {\r\n    this.paginationState.next({\r\n      currentPage: 1,\r\n      pageSize: 5,\r\n      searchText: '',\r\n      totalItems: 0\r\n    });\r\n  }\r\n\r\n  calculateTotalPages(): number {\r\n    const state = this.getCurrentState();\r\n    return Math.ceil(state.totalItems / state.pageSize);\r\n  }\r\n}","import { CommonModule } from '@angular/common';\r\nimport {\r\n  Component,\r\n  EventEmitter,\r\n  Input,\r\n  Output,\r\n  OnInit,\r\n  OnChanges,\r\n  SimpleChanges,\r\n  ContentChild,\r\n  OnDestroy,\r\n  HostListener,\r\n  ElementRef,\r\n} from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { KvLoadingComponent } from '../kv-loading/kv-loading.component';\r\nimport {\r\n  PaginationService,\r\n  PaginationState,\r\n} from '../../services/pagination.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { ResourceNotFoundComponent } from '../kv-resource-not-found/kv-resource-not-found.component';\r\n\r\ninterface TableItem {\r\n  state?: string;\r\n  type?: string;\r\n  created_at?: string;\r\n  expire_at?: string;\r\n  name?: string;\r\n  source?: string;\r\n  description?: string;\r\n  [key: string]: any;\r\n}\r\n\r\n@Component({\r\n  selector: 'lib-kv-main-table',\r\n  standalone: true,\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule,\r\n    KvLoadingComponent,\r\n    ResourceNotFoundComponent,\r\n  ],\r\n  templateUrl: './kv-main-table.component.html',\r\n  styleUrl: './kv-main-table.component.scss',\r\n})\r\nexport class KvMainTableComponent implements OnInit, OnChanges, OnDestroy {\r\n  @Input() columns: { key: string; label: string }[] = [];\r\n  @Input() data: TableItem[] = [];\r\n  @Input() extraData!: any[];\r\n  @Input() showPaginator: boolean = true;\r\n  @Input() lazyLoading: boolean = false;\r\n  @Input() loading: boolean = false;\r\n  @Input() messageTitle: string = 'Resource not found';\r\n  @Input() messageDescription: string =\r\n    'The requested resource could not be found.';\r\n  @Input() totalRecords: number = 0;\r\n  @Input() isolatePagination: boolean = false;\r\n  @Input() message: string = '';\r\n  @Input() hasMoreItems: boolean = true;\r\n  @Input() tableId: string = 'default';\r\n  @Input() letFilters: boolean = false;\r\n  @Input() hiddenColumnsOnMobile: string[] = [];\r\n  today!: string;\r\n  searchText: any;\r\n  pendingSearch: any;\r\n  @Input() set totalItems(value: number) {\r\n    if (value !== undefined) {\r\n      if (this.isolatePagination) {\r\n        this.localPaginationState = { ...this.localPaginationState, totalItems: value };\r\n      } else {\r\n        this.paginationService.updatePaginationState({ totalItems: value });\r\n      }\r\n    }\r\n  }\r\n\r\n  @ContentChild('cellActions') cellActionsTemplate: any;\r\n  @Output() onNameClicked: EventEmitter<any> = new EventEmitter<any>();\r\n  @Output() onPageChange: EventEmitter<{\r\n    page: number;\r\n    pageSize: number;\r\n    searchText: string;\r\n  }> = new EventEmitter<{\r\n    page: number;\r\n    pageSize: number;\r\n    searchText: string;\r\n  }>();\r\n\r\n  @Output() onFilterChange = new EventEmitter<{\r\n    state: string;\r\n    type: string;\r\n    created_at_start: string;\r\n    created_at_end: string;\r\n    name: string;\r\n    source: string;\r\n  }>();\r\n\r\n  dropdownOpenState = false;\r\n  dropdownOpenType = false;\r\n  dropdownOpenSource = false;\r\n  calendarOpen = false;\r\n  currentPage: number = 1;\r\n  pageSize: number = 5;\r\n  showFilterMenu = false;\r\n  filteredItems: TableItem[] = [];\r\n  public activeColumns: string[] = [];\r\n  options: string[] = [];\r\n  public searchInput: string = '';\r\n  public filters: any = {\r\n    state: '',\r\n    type: '',\r\n    created_at_start: '',\r\n    created_at_end: '',\r\n    name: '',\r\n    source: '',\r\n  };\r\n  private subscription: Subscription = new Subscription();\r\n\r\n  private localPaginationState: PaginationState = {\r\n    currentPage: 1,\r\n    pageSize: 5,\r\n    searchText: '',\r\n    totalItems: 0,\r\n  };\r\n\r\n  constructor(\r\n    private paginationService: PaginationService,\r\n    private eRef: ElementRef\r\n  ) {}\r\n\r\n  ngOnInit() {\r\n    if (!this.isolatePagination) {\r\n      this.subscription.add(\r\n        this.paginationService.paginationState$.subscribe(\r\n          (state: PaginationState) => {\r\n            this.currentPage = state.currentPage;\r\n            this.pageSize = state.pageSize;\r\n          }\r\n        )\r\n      );\r\n    } else {\r\n      this.currentPage = this.localPaginationState.currentPage;\r\n      this.pageSize = this.localPaginationState.pageSize;\r\n    }\r\n\r\n    const now = new Date();\r\n    this.today = now.toISOString().split('T')[0];\r\n\r\n    const currentState = this.isolatePagination ? this.localPaginationState : this.paginationService.getCurrentState();\r\n    this.currentPage = currentState.currentPage;\r\n    this.pageSize = currentState.pageSize;\r\n    this.filters.name = currentState.searchText;\r\n\r\n    if (this.totalRecords > 0) {\r\n      if (this.isolatePagination) {\r\n        this.localPaginationState.totalItems = this.totalRecords;\r\n      } else {\r\n        this.paginationService.updatePaginationState({\r\n          totalItems: this.totalRecords,\r\n        });\r\n      }\r\n    }\r\n\r\n    this.updateFilteredData();\r\n    if (this.lazyLoading) {\r\n      this.loadLazyData();\r\n    }\r\n\r\n    if (this.columns && this.columns.length > 0) {\r\n      if (this.columns[0].label === 'Offer name') {\r\n        this.options = ['Created', 'Offered', 'Closed'];\r\n      } else if (this.columns[0].label === 'Customer Email') {\r\n        this.options = ['Created', 'Rejected', 'Pending', 'Closed', 'Approved'];\r\n      } else {\r\n        this.options = ['Approved', 'Rejected', 'Pending', 'Error'];\r\n      }\r\n    }\r\n  }\r\n\r\n  @HostListener('document:click', ['$event'])\r\n  handleClickOutside(event: Event) {\r\n    if (!this.eRef.nativeElement.contains(event.target)) {\r\n      this.dropdownOpenState = false;\r\n      this.dropdownOpenType = false;\r\n      this.dropdownOpenSource = false;\r\n      this.calendarOpen = false;\r\n    }\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges) {\r\n    if (changes['totalRecords']) {\r\n      this.updatePaginationState({ totalItems: this.totalRecords });\r\n    }\r\n    if (changes['data'] && !this.lazyLoading) {\r\n      this.updateFilteredData();\r\n    }\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.subscription.unsubscribe();\r\n  }\r\n\r\n  private updatePaginationState(state: Partial<PaginationState>) {\r\n    if (this.isolatePagination) {\r\n      this.localPaginationState = { ...this.localPaginationState, ...state };\r\n      this.currentPage = this.localPaginationState.currentPage;\r\n      this.pageSize = this.localPaginationState.pageSize;\r\n      return;\r\n    }\r\n\r\n    this.paginationService.updatePaginationState(state);\r\n  }\r\n\r\n  private getCurrentPaginationState(): PaginationState {\r\n    if (this.isolatePagination) {\r\n      return this.localPaginationState;\r\n    }\r\n    return this.paginationService.getCurrentState();\r\n  }\r\n\r\n  public unSubscribeToPaginationService(): void {\r\n    this.subscription.unsubscribe();\r\n  }\r\n\r\n  private updateData(): void {\r\n    this.data = this.data.map((item: TableItem) => ({\r\n      ...item,\r\n      description: this.changeText(item.description ?? '', 50),\r\n    }));\r\n  }\r\n\r\n  private changeText(text: string, maxLength: number): string {\r\n    if (!text) return '';\r\n    return text.length > maxLength\r\n      ? text.substring(0, maxLength).trimEnd() + '...'\r\n      : text;\r\n  }\r\n\r\n  private updateFilteredData() {\r\n    this.updateData();\r\n    if (!this.lazyLoading) {\r\n      this.filteredItems = this.getFilteredData();\r\n    }\r\n  }\r\n\r\n  private getFilteredData() {\r\n    this.updateData();\r\n\r\n    let filtered: TableItem[] = this.data;\r\n    if (this.filters.name && this.filters.name.trim() !== '') {\r\n      filtered = this.data.filter((item: TableItem) =>\r\n        this.columns.some((col) =>\r\n          String(item[col.key])\r\n            .toLowerCase()\r\n            .includes(this.filters.name.toLowerCase())\r\n        )\r\n      );\r\n    }\r\n\r\n    return filtered.slice(\r\n      (this.currentPage - 1) * this.pageSize,\r\n      this.currentPage * this.pageSize\r\n    );\r\n  }\r\n\r\n  get filteredData() {\r\n    return this.lazyLoading ? this.data : this.filteredItems;\r\n  }\r\n\r\n  totalPages(): number {\r\n    if (this.isolatePagination) {\r\n      const state = this.getCurrentPaginationState();\r\n      const total = state.totalItems || this.data.length;\r\n      return Math.max(1, Math.ceil(total / this.pageSize));\r\n    }\r\n\r\n    return (\r\n      this.paginationService.calculateTotalPages() || Math.ceil(this.data.length / this.pageSize)\r\n    );\r\n  }\r\n\r\n  updateToFirstPage() {\r\n    this.currentPage = 1;\r\n    this.updatePaginationState({ currentPage: 1, searchText: this.filters.name });\r\n  }\r\n\r\n  onSearched() {\r\n    this.filters.name = this.pendingSearch;\r\n    this.updateToFirstPage();\r\n    this.updateFilteredData();\r\n\r\n    const hasFilters = Object.values(this.filters).some(\r\n      (value) => value !== null && value !== undefined && value !== ''\r\n    );\r\n\r\n    if (hasFilters) {\r\n      this.onFilterChange.emit(this.filters);\r\n    } else {\r\n      this.filters.name = '';\r\n      this.updateFilteredData();\r\n      this.onFilterChange.emit(this.filters);\r\n    }\r\n  }\r\n\r\n  changePage(direction: number) {\r\n    const totalPages = this.totalPages();\r\n\r\n    const newPage = this.currentPage + direction;\r\n\r\n    if (this.lazyLoading) {\r\n      if (newPage >= 1 && newPage <= totalPages) {\r\n        this.updatePaginationState({ currentPage: newPage });\r\n        this.loadLazyData();\r\n      } else if (this.currentPage !== 1 && newPage < 1) {\r\n        this.updatePaginationState({ currentPage: 1 });\r\n        this.loadLazyData();\r\n      }\r\n      return;\r\n    }\r\n\r\n    if (newPage > 0 && newPage <= totalPages) {\r\n      this.updatePaginationState({ currentPage: newPage });\r\n      this.updateFilteredData();\r\n    }\r\n\r\n    if (this.hasMoreItems) {\r\n      this.onPageChange.emit({ page: this.currentPage, pageSize: this.pageSize, searchText: this.filters.name });\r\n    }\r\n  }\r\n\r\n  loadLazyData() {\r\n    this.onPageChange.emit({\r\n      page: this.currentPage,\r\n      pageSize: this.pageSize,\r\n      searchText: this.filters.name,\r\n    });\r\n  }\r\n\r\n  public getPosName(posId: string): string {\r\n    return (\r\n      this.extraData?.find((pos) => pos.point_of_sale_id === posId)?.name || ''\r\n    );\r\n  }\r\n\r\n  public emitData(data: any) {\r\n    this.onNameClicked.emit(data);\r\n  }\r\n\r\n  toggleColumn(columnKey: string, event: Event): void {\r\n    const input = event.target as HTMLInputElement;\r\n    const checked = input.checked;\r\n\r\n    if (checked) {\r\n      if (!this.activeColumns.includes(columnKey)) {\r\n        this.activeColumns.push(columnKey);\r\n      }\r\n    } else {\r\n      this.activeColumns = this.activeColumns.filter((c) => c !== columnKey);\r\n      if (columnKey === 'created_at') {\r\n        delete this.filters['created_at_start'];\r\n        delete this.filters['created_at_end'];\r\n      } else if (this.filters[columnKey]) {\r\n        delete this.filters[columnKey];\r\n      }\r\n      const hasFilters = Object.values(this.filters).some(\r\n        (value) => value !== null && value !== undefined && value !== ''\r\n      );\r\n\r\n      if (!hasFilters) {\r\n        this.updateToFirstPage();\r\n        this.onFilterChange.emit(this.filters);\r\n      }\r\n    }\r\n  }\r\n\r\n  toggleCalendar() {\r\n    this.calendarOpen = !this.calendarOpen;\r\n  }\r\n\r\n  updateRange() {\r\n    if (this.filters.created_at_start && this.filters.created_at_end) {\r\n      if (this.filters.created_at_start > this.filters.created_at_end) {\r\n        const temp = this.filters.created_at_start;\r\n        this.filters.created_at_start = this.filters.created_at_end;\r\n        this.filters.created_at_end = temp;\r\n      }\r\n    }\r\n  }\r\n\r\n  public clearFilters(): void {\r\n    this.filters = {\r\n      state: '',\r\n      type: '',\r\n      created_at_start: '',\r\n      created_at_end: '',\r\n      name: '',\r\n      source: '',\r\n    };\r\n    this.pendingSearch = '';\r\n    this.updateToFirstPage();\r\n    this.updateFilteredData();\r\n    this.onFilterChange.emit(this.filters);\r\n  }\r\n}","<lib-kv-loading [message]=\"message\" [isLoading]=\"loading\" *ngIf=\"loading\"> </lib-kv-loading>\r\n<ng-container *ngIf=\"!loading\">\r\n  <div class=\"search-container\">\r\n    <div class=\"search-section\">\r\n\r\n      <div class=\"filters\">\r\n        <ng-container *ngFor=\"let col of columns\">\r\n          <div *ngIf=\"activeColumns.includes(col.key)\">\r\n            <ng-container *ngIf=\"col.key === 'created_at'\">\r\n                <div class=\"custom-dropdown\" [class.open]=\"calendarOpen\">\r\n                  <div class=\"selected\" (click)=\"calendarOpen = !calendarOpen; dropdownOpenState = false; dropdownOpenType = false; dropdownOpenSource = false\">\r\n                    <span *ngIf=\"filters.created_at_start && filters.created_at_end\">\r\n                      {{ filters.created_at_start | date:'dd/MM/yyyy' }} - {{ filters.created_at_end | date:'dd/MM/yyyy' }}\r\n                    </span>\r\n                    <span *ngIf=\"filters.created_at_start && !filters.created_at_end\">\r\n                      {{ filters.created_at_start | date:'dd/MM/yyyy' }}\r\n                    </span>\r\n                    <span *ngIf=\"!filters.created_at_start && filters.created_at_end\">\r\n                      {{ filters.created_at_end | date:'dd/MM/yyyy' }}\r\n                    </span>\r\n                    <span *ngIf=\"!filters.created_at_start && !filters.created_at_end\" class=\"placeholder\">\r\n                      Created at\r\n                    </span>\r\n                  </div>\r\n              \r\n                  <div class=\"calendar-popup\" *ngIf=\"calendarOpen\">\r\n                    <input type=\"date\" [(ngModel)]=\"filters.created_at_start\" (change)=\"updateRange()\" [max]=\"today\" />\r\n                    <input type=\"date\" [(ngModel)]=\"filters.created_at_end\" (change)=\"updateRange()\" [max]=\"today\" />\r\n                  </div>\r\n                </div>\r\n            </ng-container>\r\n\r\n            <ng-container *ngIf=\"col.key === 'expire_at'\">\r\n              <label>Fecha:</label>\r\n              <input type=\"date\" [(ngModel)]=\"filters.expire_at\" [max]=\"today\" />\r\n            </ng-container>\r\n            \r\n            <ng-container *ngIf=\"col.key === 'state'\">\r\n              <div class=\"custom-dropdown\" [class.open]=\"dropdownOpenState\">\r\n                <div class=\"selected\" (click)=\"dropdownOpenState = !dropdownOpenState; dropdownOpenType = false; dropdownOpenSource = false; calendarOpen = false\">\r\n                  <span *ngIf=\"filters.state\" class=\"state\" [ngClass]=\"filters.state\">\r\n                    {{ filters.state }}\r\n                  </span>\r\n                  <span *ngIf=\"!filters.state\" class=\"placeholder\">State</span>\r\n                </div>\r\n              \r\n                <ul class=\"options\" *ngIf=\"dropdownOpenState\">\r\n                  <li *ngFor=\"let opt of options\"\r\n                      (click)=\"filters.state = opt; dropdownOpenState = false\"\r\n                      class=\"state\"\r\n                      [ngClass]=\"opt\">\r\n                    {{ opt }}\r\n                  </li>\r\n                </ul>\r\n              </div>\r\n            </ng-container>\r\n\r\n            <ng-container *ngIf=\"col.key === 'source'\">\r\n                <div class=\"custom-dropdown\" [class.open]=\"dropdownOpenSource\">\r\n                  <div class=\"selected\" (click)=\"dropdownOpenSource = !dropdownOpenSource; dropdownOpenState = false; dropdownOpenType = false; calendarOpen = false\">\r\n                    <span *ngIf=\"filters.source\" class=\"source\" >\r\n                      {{ filters.source }}\r\n                    </span>\r\n                    <span *ngIf=\"!filters.source\" class=\"placeholder\">Imported from</span>\r\n                  </div>\r\n                \r\n                  <ul class=\"options\" *ngIf=\"dropdownOpenSource\">\r\n                    <li (click)=\"filters.source ='local'; dropdownOpenSource = false\"\r\n                        class=\"source\" [ngClass]=\"'local'\">local\r\n                    </li>\r\n                    <li (click)=\"filters.source = 'ecommerce'; dropdownOpenSource = false\"\r\n                        class=\"source\" [ngClass]=\"'ecommerce'\">ecommerce\r\n                    </li>\r\n                  </ul>\r\n                </div>\r\n            </ng-container>\r\n      \r\n            <ng-container *ngIf=\"col.key === 'type'\">\r\n              <div class=\"custom-dropdown\" [class.open]=\"dropdownOpenType\">\r\n                <div class=\"selected\" (click)=\"dropdownOpenType = !dropdownOpenType; dropdownOpenState = false; dropdownOpenSource = false; calendarOpen = false\">\r\n                  <span *ngIf=\"filters.type\" class=\"type\"  [ngClass]=\"filters.type.replace(' ', '-')\">\r\n                    {{ filters.type }}\r\n                  </span>\r\n                  <span *ngIf=\"!filters.type\" class=\"placeholder\">Offer type</span>\r\n                </div>\r\n              \r\n                <ul class=\"options\" *ngIf=\"dropdownOpenType\">\r\n                  <li (click)=\"filters.type ='Regular auction'; dropdownOpenType = false\"\r\n                      class=\"type\" [ngClass]=\"'Regular-auction'\">Regular auction\r\n                  </li>\r\n                  <li (click)=\"filters.type = 'Quick offer'; dropdownOpenType = false\"\r\n                      class=\"type\" [ngClass]=\"'Quick-offer'\">Quick offer \r\n                  </li>\r\n                </ul>\r\n              </div>\r\n            </ng-container>\r\n      \r\n          </div>\r\n        </ng-container>\r\n      </div>\r\n\r\n      <div class=\"filter-container\" *ngIf=\"letFilters\">\r\n\r\n        <div\r\n          class=\"filter-overlay\"\r\n          *ngIf=\"showFilterMenu\"\r\n          (click)=\"showFilterMenu = false\">\r\n        </div>\r\n\r\n        <button \r\n          (click)=\"showFilterMenu = !showFilterMenu; dropdownOpenState = false; dropdownOpenSource = false; calendarOpen = false; dropdownOpenType = false\" \r\n          class=\"filter-button\"\r\n          [class.active]=\"showFilterMenu\"\r\n        >\r\n          <span class=\"plus\">+</span>\r\n          <span class=\"material-symbols-outlined filter-icon\">\r\n            filter_alt\r\n          </span>\r\n        </button>\r\n\r\n        <div class=\"filter-menu\" *ngIf=\"showFilterMenu\">\r\n          <ng-container *ngFor=\"let col of columns\">\r\n            <ng-container *ngIf=\"col.key !== 'name' && col.key !== 'images' && col.key !== 'pos_id' && col.key !== 'point_of_sale_id' && col.key !== 'description' \">\r\n              <label class=\"custom-checkbox\">\r\n                <input\r\n                  type=\"checkbox\"\r\n                  [checked]=\"activeColumns.includes(col.key)\"\r\n                  (change)=\"toggleColumn(col.key, $event)\"\r\n                />\r\n                <span class=\"label-text\">{{ col.label }}</span>\r\n              </label>\r\n            </ng-container>\r\n          </ng-container>\r\n        </div>\r\n      </div>\r\n      \r\n      <input\r\n        type=\"text\"\r\n        class=\"input\"\r\n        placeholder=\"Buscar...\"\r\n        [(ngModel)]=\"pendingSearch\"\r\n        (keyup.enter)=\"onSearched()\"\r\n      />\r\n      <button class=\"button--create\" (click)=\"onSearched()\">Buscar</button>\r\n    </div>\r\n  </div>\r\n\r\n  <ng-container *ngIf=\"(!data || data.length === 0) && !loading\">\r\n    <lib-kv-resource-not-found class=\"resource-not-found\"\r\n      [messageTitle]=\"messageTitle\"\r\n      [messageDescription]=\"messageDescription\"></lib-kv-resource-not-found>\r\n  </ng-container>\r\n\r\n  <ng-container *ngIf=\"(data && data.length > 0) || loading\">\r\n    <table>\r\n      <thead>\r\n        <tr>\r\n          <th *ngFor=\"let column of columns\" [class.hidden-mobile]=\"hiddenColumnsOnMobile.includes(column.key)\">{{ column.label }}</th>\r\n        </tr>\r\n      </thead>\r\n      <tbody>\r\n        <tr *ngFor=\"let item of filteredData\">\r\n          <td *ngFor=\"let column of columns\" [class.hidden-mobile]=\"hiddenColumnsOnMobile.includes(column.key)\">\r\n            <div class=\"state\" [ngClass]=\"item[column.key]\">\r\n              <ng-container *ngIf=\"column.label === 'Services'\">\r\n                <div class=\"service-info\" (click)=\"emitData(item)\">\r\n                  <img [src]=\"item['url'] || 'https://i.imgur.com/InRaVrL.jpg'\" alt=\"Imagen\" class=\"service-image\" />\r\n                  <a class=\"a-link\">{{ item.name }}</a>\r\n                </div>\r\n                </ng-container>\r\n              <ng-container *ngIf=\"column.key === 'name' && column.label !== 'Services'\">\r\n                <a class=\"a-link\" (click)=\"emitData(item)\">{{\r\n                  item[column.key]\r\n                }}</a>\r\n              </ng-container>\r\n              <ng-container *ngIf=\"column.key === 'images'\">\r\n                <div class=\"image-container\">\r\n                  <div *ngFor=\"let image of item[column.key]?.slice(0, 3)\">\r\n                    <img [src]=\"image\" alt=\"Imagen\" />\r\n                  </div>\r\n                  <div *ngIf=\"item[column.key]?.length > 3\" class=\"extra-images\">\r\n                    +{{ item[column.key].length - 3 }}\r\n                  </div>\r\n                </div>\r\n              </ng-container>\r\n              <ng-container *ngIf=\"column.key === 'created_at'\">\r\n                {{ item[column.key] | date : \"dd/MM/yyyy\" }}\r\n              </ng-container>\r\n              <ng-container *ngIf=\"column.key === 'expire_at'\">\r\n                {{ item[column.key] | date : \"dd/MM/yyyy\" }}\r\n              </ng-container>\r\n              <ng-container *ngIf=\"column.key === 'actions'\">\r\n                <ng-container *ngTemplateOutlet=\"cellActionsTemplate; context: { $implicit: item }\"></ng-container>\r\n              </ng-container>\r\n              <ng-container\r\n                *ngIf=\"\r\n                  column.key !== 'expire_at' &&\r\n                  column.key !== 'created_at' &&\r\n                  column.key !== 'point_of_sale_id' &&\r\n                  column.key !== 'name' &&\r\n                  column.key !== 'pos_id' &&\r\n                  column.key !== 'images' &&\r\n                  column.key !== 'actions'\r\n                \"\r\n              >\r\n                {{ item[column.key] }}\r\n              </ng-container>\r\n              <ng-container\r\n                *ngIf=\"column.key === 'point_of_sale_id' || column.key === 'pos_id'\"\r\n              >\r\n                {{ getPosName(item[column.key]) }}\r\n              </ng-container>\r\n            </div>\r\n          </td>\r\n        </tr>\r\n      </tbody>\r\n    </table>\r\n\r\n    <ng-container *ngIf=\"showPaginator\">\r\n      <table class=\"table-pagination\">\r\n        <tbody>\r\n          <tr>\r\n            <div class=\"pagination\">\r\n              <div class=\"button-section\">\r\n                <button (click)=\"changePage(-1)\" [disabled]=\"currentPage === 1\">\r\n                  Previous\r\n                </button>\r\n                <button\r\n                  (click)=\"changePage(1)\"\r\n                  [disabled]=\"currentPage === totalPages() && !hasMoreItems\"\r\n                >\r\n                  Next\r\n                </button>\r\n              </div>\r\n              <div class=\"current-section\">\r\n                <span>Page {{ currentPage }} of {{ totalPages() }}</span>\r\n              </div>\r\n            </div>\r\n          </tr>\r\n        </tbody>\r\n      </table>\r\n    </ng-container>\r\n  </ng-container>\r\n</ng-container>","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output, OnInit, OnDestroy, ElementRef, ContentChildren, QueryList, AfterContentInit } from '@angular/core';\r\nimport { ActionType } from '../../enums/action-type.enum';\r\nimport { KvMainTableComponent } from '../kv-main-table/kv-main-table.component';\r\n\r\n@Component({\r\n  selector: 'lib-kv-popup',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './kv-popup.component.html',\r\n  styleUrl: './kv-popup.component.scss'\r\n})\r\nexport class KvPopupComponent implements OnInit, AfterContentInit, OnDestroy {\r\n\r\n  @Input() title: string = '';\r\n  @Input() description!: string;\r\n  @Input() isCustomTemplate!: boolean;\r\n  @Input() actionType!: ActionType;\r\n\r\n  @Input() showCloseButton: boolean = false;\r\n\r\n  @Input() totalItemsForPopup?: number;\r\n\r\n  @Output() onAccept: EventEmitter<void> = new EventEmitter<void>();\r\n  @Output() onClose: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n  public actionTypeEnum = ActionType;\r\n\r\n  public onAcceptSubmit(): void {\r\n    this.onAccept.emit();\r\n  }\r\n\r\n  public onCloseSubmit(): void {\r\n    this.onClose.emit();\r\n  }\r\n\r\n  constructor(private elementRef: ElementRef) {}\r\n\r\n  ngOnInit(): void {\r\n    try { document.body.classList.add('kv-popup-open'); } catch { /* ignore */ }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    try { document.body.classList.remove('kv-popup-open'); } catch { /* ignore */ }\r\n  }\r\n\r\n  public refreshPagination(totalItems: number): void {\r\n    this.totalItemsForPopup = totalItems;\r\n    try {\r\n      this.projectedTables?.forEach((tbl) => {\r\n        tbl.totalItems = totalItems;\r\n      });\r\n    } catch { /* ignore */ }\r\n  }\r\n\r\n  @ContentChildren(KvMainTableComponent, { descendants: true })\r\n  private projectedTables?: QueryList<KvMainTableComponent>;\r\n\r\n  ngAfterContentInit(): void {\r\n    try {\r\n      this.projectedTables?.forEach((tbl) => {\r\n        tbl.isolatePagination = true;\r\n        if (this.totalItemsForPopup !== undefined) {\r\n          tbl.totalItems = this.totalItemsForPopup;\r\n        }\r\n      });\r\n    } catch { /* ignore runtime errors */ }\r\n  }\r\n}\r\n","<div class=\"popup-backdrop\">\r\n    <div class=\"popup-container\">\r\n        <button class=\"close-button\" *ngIf=\"showCloseButton\" (click)=\"onCloseSubmit()\">\r\n            <i class=\"icon material-icons\">close</i>\r\n        </button>\r\n        <div class=\"content-container\">\r\n            <div  *ngIf=\"!isCustomTemplate\">\r\n                <ng-container *ngIf=\"actionType === actionTypeEnum.Warn\">\r\n                    <i class=\"icon material-icons\">error</i>\r\n                </ng-container>\r\n                <ng-container *ngIf=\"actionType === actionTypeEnum.Advertise\">\r\n                    <i class=\"icon material-icons\">warning</i>\r\n                </ng-container>\r\n            </div>\r\n            <div>\r\n                <div class=\"title\">{{ title }}</div>\r\n                <div *ngIf=\"description\">\r\n                    <p class=\"description\">{{ description }}</p>\r\n                </div>\r\n            </div>\r\n        </div>\r\n        <ng-container *ngIf=\"isCustomTemplate; else defaultContent\">\r\n            <ng-content></ng-content>\r\n        </ng-container>\r\n        <ng-template #defaultContent>\r\n            <ng-container *ngIf=\"actionType === actionTypeEnum.Info\">\r\n                <div class=\"button-container\">\r\n                    <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n                    <button class=\"button--primary\" (click)=\"onAcceptSubmit()\">Aceptar</button>\r\n                </div>\r\n            </ng-container>\r\n            <ng-container *ngIf=\"actionType === actionTypeEnum.Warn\">\r\n                <div class=\"button-container\">\r\n                    <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n                    <button class=\"button--warn\" (click)=\"onAcceptSubmit()\">Delete</button>\r\n                </div>\r\n            </ng-container>\r\n            <ng-container *ngIf=\"actionType === actionTypeEnum.Advertise\">\r\n                <div class=\"button-container\">\r\n                    <button class=\"button--cancel\" (click)=\"onCloseSubmit()\">Cancel</button>\r\n                    <button class=\"button--warn\" (click)=\"onAcceptSubmit()\">Continuar</button>\r\n                </div>\r\n            </ng-container>\r\n        </ng-template>\r\n    </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Output, Input } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n  selector: 'lib-kv-date-picker',\r\n  standalone: true,\r\n  imports: [FormsModule, CommonModule],\r\n  templateUrl: './date-picker.component.html',\r\n  styleUrl: './date-picker.component.scss'\r\n})\r\nexport class DatePickerComponent {\r\n  @Input() initialDate?: Date;\r\n  @Input() showDetails = false;\r\n  @Output() dateSelected = new EventEmitter<Date>();\r\n\r\n  selectedDate: Date = new Date();\r\n  minDate: string = '';\r\n\r\n  ngOnInit() {\r\n    this.minDate = this.formatDateForInput(new Date());\r\n\r\n    if (this.initialDate) {\r\n      this.selectedDate = this.initialDate >= new Date(this.minDate) ? this.initialDate : new Date();\r\n    }\r\n  }\r\n\r\n  formatDateForInput(date: Date): string {\r\n    const year = date.getFullYear();\r\n    const month = String(date.getMonth() + 1).padStart(2, '0');\r\n    const day = String(date.getDate()).padStart(2, '0');\r\n    return `${year}-${month}-${day}`;\r\n  }\r\n\r\n  onDateChange(event: Event) {\r\n    const input = event.target as HTMLInputElement;\r\n    const newDate = new Date(input.value + \"T00:00:00\");\r\n\r\n    if (newDate >= new Date(this.minDate)) {\r\n      this.selectedDate = newDate;\r\n      this.dateSelected.emit(this.selectedDate);\r\n    } else {\r\n      input.value = this.minDate;\r\n    }\r\n  }\r\n}\r\n","<div class=\"date-picker\">\r\n    <input \r\n        type=\"date\" \r\n        [value]=\"formatDateForInput(selectedDate)\" \r\n        [min]=\"minDate\" \r\n        (input)=\"onDateChange($event)\" \r\n        class=\"form-control\">\r\n        \r\n    <div *ngIf=\"showDetails\" class=\"date-details\">\r\n        <p>{{ selectedDate | date:'fullDate' }}</p>\r\n    </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, ContentChild, Input, TemplateRef } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-kv-step',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './kv-step.component.html',\r\n  styleUrl: './kv-step.component.scss'\r\n})\r\nexport class KvStepComponent {\r\n  @Input() title!: string;\r\n  @Input() description!: string;\r\n  @ContentChild(TemplateRef) content!: TemplateRef<any>;\r\n}\r\n","<p>kv-step works!</p>\r\n","import { CommonModule } from '@angular/common';\r\nimport { AfterContentInit, Component, ContentChildren, EventEmitter, Input, Output, QueryList, signal, TemplateRef } from '@angular/core';\r\nimport { KvStepComponent } from '../kv-step/kv-step.component';\r\n\r\n@Component({\r\n  selector: 'lib-kv-stepper',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './kv-stepper.component.html',\r\n  styleUrl: './kv-stepper.component.scss'\r\n})\r\n\r\nexport class KvStepperComponent implements AfterContentInit {\r\n  currentStep = signal(0);\r\n  \r\n  @ContentChildren(KvStepComponent) steps!: QueryList<KvStepComponent>;\r\n\r\n  @Input() public isSimpleStepper: boolean = false;\r\n  @Input() public isVertical: boolean = false;\r\n  @Input() public isAssociated: boolean = false;\r\n  @Output() submit = new EventEmitter<void>();\r\n  @Output() closeEvent = new EventEmitter<void>();\r\n  @Output() isLastStep = new EventEmitter<boolean>();\r\n\r\n  ngAfterContentInit() {\r\n    if (this.steps.length === 0) {\r\n      console.error('No se encontraron pasos en el stepper');\r\n    }\r\n  }\r\n\r\n  next() {\r\n    this.isLastStep.emit(true);\r\n    if (this.currentStep() < this.steps.length - 1) {\r\n      this.currentStep.update(val => val + 1);\r\n    }\r\n  }\r\n\r\n  previous() {\r\n    if (this.currentStep() > 0) {\r\n      this.currentStep.update(val => val - 1);\r\n      this.isLastStep.emit(true);\r\n    }\r\n  }\r\n\r\n  close() {\r\n    this.closeEvent.emit();\r\n  }\r\n}","<ng-container *ngIf=\"!isSimpleStepper\">\r\n    <div class=\"stepper-container\">\r\n        <div class=\"step-header\">\r\n            <div *ngFor=\"let step of steps; let i = index\" class=\"step-item\" [class.active]=\"currentStep() === i\"\r\n                [class.completed]=\"i < currentStep()\">\r\n                <div class=\"step-number\">{{ i + 1 }}</div>\r\n                <div class=\"step-title\">{{ step.title }}</div>\r\n            </div>\r\n        </div>\r\n\r\n        <div class=\"step-content\">\r\n            <ng-container *ngIf=\"steps.get(currentStep())?.content\">\r\n                <ng-container *ngTemplateOutlet=\"steps.get(currentStep())!.content\">\r\n                </ng-container>\r\n            </ng-container>\r\n        </div>\r\n\r\n        <div class=\"step-actions\">\r\n            <button class=\"button--cancel\" (click)=\"close()\">Cancel</button>\r\n            <button class=\"button--primary-min\" *ngIf=\"currentStep() > 0\" (click)=\"previous()\">Anterior</button>\r\n            <button class=\"button--primary-min\" *ngIf=\"currentStep() < steps.length - 1\" (click)=\"next()\"\r\n                [disabled]=\"!isAssociated\">Next</button>\r\n            <button class=\"button--primary-min\" *ngIf=\"currentStep() === steps.length - 1\"\r\n                (click)=\"submit.emit()\">Create</button>\r\n        </div>\r\n    </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isSimpleStepper && !isVertical\">\r\n    <div class=\"stepper-container-simple\">\r\n        <div class=\"step-header\">\r\n            <div *ngFor=\"let step of steps; let i = index\" class=\"step-item\" [class.active]=\"currentStep() === i\"\r\n                [class.completed]=\"i < currentStep()\">\r\n                <div class=\"step-number\">{{ i + 1 }}</div>\r\n                <div class=\"step-title\">{{ step.title }}</div>\r\n            </div>\r\n        </div>\r\n\r\n        <div class=\"step-content-simple\">\r\n            <ng-container *ngIf=\"steps.get(currentStep())?.content\">\r\n                <ng-container *ngTemplateOutlet=\"steps.get(currentStep())!.content\">\r\n                </ng-container>\r\n            </ng-container>\r\n        </div>\r\n    </div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"isSimpleStepper && isVertical\">\r\n    <div class=\"stepper-container-vertical\">\r\n        <div class=\"vertical-steps\">\r\n            <div *ngFor=\"let step of steps; let i = index\" class=\"vertical-step-item\">\r\n                <div class=\"step-indicator-container\">\r\n                    <div class=\"vertical-step-indicator\" [class.active]=\"currentStep() === i\"\r\n                        [class.completed]=\"i < currentStep()\">\r\n                        <div class=\"step-number\">{{ i + 1 }}</div>\r\n                    </div>\r\n                    <div class=\"vertical-line\" *ngIf=\"i !== steps.length - 1\"></div>\r\n                </div>\r\n                <div class=\"title-container\">\r\n                    <div class=\"step-title\">{{ step.title }}</div>\r\n                    <div class=\"step-description\">{{ step.description }}</div>\r\n                </div>\r\n                <div class=\"vertical-step-content\" [class.active]=\"currentStep() === i\" (click)=\"currentStep.set(i)\">\r\n                    <div class=\"step-content-vertical\" *ngIf=\"currentStep() === i\">\r\n                        <ng-container *ngTemplateOutlet=\"step.content\"></ng-container>\r\n                    </div>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</ng-container>","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-kv-accordion',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './kv-accordion.component.html',\r\n  styleUrl: './kv-accordion.component.scss'\r\n})\r\nexport class KvAccordionComponent {\r\n  @Input() isOpen = false;\r\n  @Input() title = '';\r\n  @Input() shouldShowImage = true;\r\n  @Input() imageUrl = 'https://i.imgur.com/InRaVrL.jpg';\r\n  @Output() opened = new EventEmitter<void>();\r\n\r\n  toggle() {\r\n    this.isOpen = !this.isOpen;\r\n    if(this.isOpen) {\r\n      this.opened.emit();\r\n    }\r\n  }\r\n}\r\n","<div class=\"accordion\">\r\n    <div class=\"accordion-header\" (click)=\"toggle()\">\r\n        <div class=\"accordion-title\">\r\n            <ng-container *ngIf=\"shouldShowImage\">\r\n                <img width=\"40px\" [src]=\"imageUrl\" alt=\"User Avatar\" class=\"avatar\">\r\n            </ng-container>\r\n            <span>{{ title }}</span>\r\n        </div>\r\n        <span class=\"material-icons accordion-icon\" [class.open]=\"isOpen\">\r\n            keyboard_arrow_down\r\n          </span>\r\n    </div>\r\n    <div class=\"accordion-content\" [class.open]=\"isOpen\">\r\n        <ng-content></ng-content>\r\n    </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-kv-alert',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './kv-alert.component.html',\r\n  styleUrl: './kv-alert.component.scss'\r\n})\r\nexport class KvAlertComponent implements OnInit{\r\n\r\n  @Input() message: string = '';\r\n  @Input() description: string = '';\r\n  @Input() type = 'warning';\r\n  @Input() timeoutDuration: number = 5000;\r\n  @Output() close = new EventEmitter<void>();\r\n\r\n  ngOnInit() {\r\n    if (this.timeoutDuration > 0) {\r\n      setTimeout(() => this.onClose(), this.timeoutDuration);\r\n    }\r\n  }\r\n\r\n  onClose() {\r\n    this.close.emit();\r\n  }\r\n\r\n}\r\n","<div class=\"alert-container\">\r\n    <div class=\"icon\" [ngClass]=\"type\">\r\n        <ng-container *ngIf=\"type === 'success'\">\r\n            <i class=\"icon material-icons\">check</i>\r\n        </ng-container>\r\n        <ng-container *ngIf=\"type !== 'success'\">\r\n            <i class=\"icon material-icons\">close</i>\r\n        </ng-container>\r\n    </div>\r\n    <div class=\"message\">\r\n        <strong>{{ message }}</strong>\r\n        <p>{{ description }}</p>\r\n    </div>\r\n    <button class=\"close-btn\" (click)=\"onClose()\">&#10006;</button>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'lib-kv-side-menu',\r\n  standalone: true,\r\n  imports: [CommonModule],\r\n  templateUrl: './kv-side-menu.component.html',\r\n  styleUrl: './kv-side-menu.component.scss'\r\n})\r\nexport class KvSideMenuComponent {\r\n  @Input() breadcrumb: string = '';\r\n  @Input() shouldShowEditButton: boolean = true;\r\n  @Input() shouldShowCloseButton: boolean = true;\r\n  @Output() onEdit: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n  @Output() onClose: EventEmitter<void> = new EventEmitter<void>();\r\n  @Output() onDelete: EventEmitter<void> = new EventEmitter<void>();\r\n  @Output() onSaveChanges: EventEmitter<void> = new EventEmitter<void>();\r\n\r\n  public isEditMode: boolean = false;\r\n\r\n  public handleEditButtonClicked(): void {\r\n    this.isEditMode = !this.isEditMode;\r\n    this.onEdit.emit(this.isEditMode);\r\n  }\r\n\r\n  public handleCloseButtonClicked(): void {\r\n    this.onClose.emit();\r\n  }\r\n\r\n  public handleDeleteButtonClicked(): void {\r\n    this.onDelete.emit();\r\n  }\r\n\r\n  public handleSaveChangesButtonClicked(): void {\r\n    this.onSaveChanges.emit();\r\n  }\r\n}\r\n","<div class=\"right-menu\">\r\n    <div class=\"header\">\r\n        <ng-container *ngIf=\"!isEditMode\">\r\n            <span>{{ breadcrumb }}</span>\r\n            <div>\r\n                <ng-container *ngIf=\"shouldShowEditButton\">\r\n                    <button class=\"delete-button section-button\" (click)=\"handleDeleteButtonClicked()\"><i\r\n                            class=\"icon material-icons\">delete</i></button>\r\n                </ng-container>\r\n\r\n                <ng-container *ngIf=\"shouldShowCloseButton\">\r\n                    <button class=\"edit-button section-button\" (click)=\"handleEditButtonClicked()\"><i\r\n                            class=\"icon material-icons\">edit</i></button>\r\n                </ng-container>\r\n\r\n                <button class=\"close-button section-button\" (click)=\"handleCloseButtonClicked()\"><i\r\n                        class=\"icon material-icons\">close</i></button>\r\n            </div>\r\n        </ng-container>\r\n        <ng-container *ngIf=\"isEditMode\">\r\n            <button class=\"edit-button section-button\" (click)=\"handleEditButtonClicked()\"><i\r\n                    class=\"icon material-icons\">arrow_back</i></button>\r\n            <div>\r\n                <button class=\"button--primary-min\" (click)=\"handleSaveChangesButtonClicked()\">Save changes</button>\r\n            </div>\r\n        </ng-container>\r\n\r\n    </div>\r\n    <div class=\"body\">\r\n        <ng-content></ng-content>\r\n    </div>\r\n</div>","import { Injectable } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormGroup, ValidatorFn, Validators } from '@angular/forms';\r\nimport { FormFieldConfig } from '../interfaces/form-field.config';\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class FormFactoryService {\r\n    constructor(private fb: FormBuilder) { }\r\n\r\n    createForm(config: FormFieldConfig[], customValidator?: ValidatorFn): FormGroup {\r\n        const formGroup = this.fb.group({}, { validators: customValidator });\r\n        config.forEach((field) => {\r\n            const control = this.fb.control(\r\n                field.defaultValue || '',\r\n                field.validators || []\r\n            );\r\n            formGroup.addControl(field.name, control);\r\n        });\r\n        return formGroup;\r\n    }\r\n\r\n    createFormArray(config: FormFieldConfig[], customValidator?: ValidatorFn): FormArray {\r\n        const formArray = this.fb.array([], { validators: customValidator });\r\n        config.forEach((field) => {\r\n            const control = this.fb.control(\r\n                field.defaultValue || '',\r\n                field.validators || []\r\n            );\r\n            formArray.push(control);\r\n        });\r\n        return formArray;\r\n    }\r\n\r\n    createFormArrayOfGroups(config: FormFieldConfig[], initialCount: number, customValidator?: ValidatorFn): FormArray {\r\n        const formArray = this.fb.array<FormGroup>([], { validators: customValidator });\r\n\r\n        for (let i = 0; i < initialCount; i++) {\r\n            const group = this.createForm(config);\r\n            formArray.push(group);\r\n        }\r\n\r\n        return formArray;\r\n    }\r\n\r\n    createLoginForm(): FormGroup {\r\n        return this.fb.group({\r\n            email: ['', [Validators.required, Validators.email]],\r\n            password: ['', [Validators.required, Validators.minLength(8)]],\r\n        });\r\n    }\r\n}","import {\r\n  Component,\r\n  EventEmitter,\r\n  Input,\r\n  Output,\r\n  SimpleChanges,\r\n  ViewChild,\r\n  AfterViewInit,\r\n  OnChanges,\r\n} from '@angular/core';\r\nimport { FormArray, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\r\nimport { KvPopupComponent } from '../kv-popup/kv-popup.component';\r\nimport { ActionType } from '../../enums/action-type.enum';\r\nimport { DatePickerComponent } from '../date-picker/date-picker.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormFieldConfig } from '../../interfaces/form-field.config';\r\nimport { FormFactoryService } from '../../factories/form-factory.service';\r\n\r\n\r\ninterface CreateWithMultipleItemsRequest {\r\n  currency: string;\r\n  offer_id: string;\r\n  item_id: string;\r\n  point_of_sale_id: string;\r\n  amount: number;\r\n  availability: number;\r\n  expire_at: string;\r\n  is_external: boolean;\r\n  allow_multiple_items: boolean;\r\n  base_price: number;\r\n}\r\n\r\n@Component({\r\n  selector: 'lib-kv-item-card',\r\n  standalone: true,\r\n  imports: [\r\n    CommonModule,\r\n    ReactiveFormsModule,\r\n    KvPopupComponent,\r\n    DatePickerComponent,\r\n\r\n  ],\r\n  templateUrl: './kv-item-card.component.html',\r\n  styleUrl: './kv-item-card.component.scss',\r\n})\r\nexport class KvItemCardComponent implements AfterViewInit, OnChanges {\r\n  @ViewChild('kvPopup') kvPopup?: KvPopupComponent;\r\n  @Input() shouldShowDatepicker: boolean = false;\r\n  @Input() offerId: string = \"\";\r\n  @Input() showCostPopup: boolean = false;\r\n  @Input() itemsSpecificationForm: FormArray<FormGroup> = new FormArray<FormGroup>([]);\r\n\r\n  @Output() onContinue = new EventEmitter<void>();\r\n  @Output() onCancel = new EventEmitter<void>();\r\n  @Output() onItemsProcessed = new EventEmitter<{\r\n    multipleItems: CreateWithMultipleItemsRequest[];\r\n    regularItems: any[];\r\n  }>();\r\n\r\n  public actionTypeEnum = ActionType;\r\n  public defaultDate = new Date();\r\n\r\n  pageSize: number = 2;\r\n  currentPage: number = 1;\r\n  Math = Math;\r\n  searchText: string = '';\r\n\r\n  constructor(\r\n    private readonly formFactory: FormFactoryService,\r\n  ) { }\r\n\r\n  ngAfterViewInit(): void {\r\n    if (this.kvPopup) {\r\n      setTimeout(() => this.kvPopup?.refreshPagination(this.itemsSpecificationForm.length), 0);\r\n    }\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    if (changes['showCostPopup'] && changes['showCostPopup'].currentValue === true) {\r\n      setTimeout(() => this.kvPopup?.refreshPagination(this.itemsSpecificationForm.length), 0);\r\n    }\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.itemsSpecificationForm = new FormArray<FormGroup>([]);\r\n\r\n  }\r\n\r\n  get filteredDataItems() {\r\n    return this.itemsSpecificationForm.controls\r\n      .filter((itemForm) =>\r\n        itemForm.get('name')?.value.toLowerCase().includes(this.searchText.toLowerCase())\r\n      )\r\n      .slice((this.currentPage - 1) * this.pageSize, this.currentPage * this.pageSize);\r\n  }\r\n\r\n  addItem(index: number, itemName?: string, itemIsExternal?: boolean, itemImage?: string, availability?: number, itemId?: string, posId?: string, itemBasePrice?: number): void {\r\n    const itemSpecFormConfig: FormFieldConfig[] = [\r\n      { name: 'amount', defaultValue: 0, validators: [Validators.required] },\r\n      { name: 'availability', defaultValue: 0, validators: [Validators.required] },\r\n      { name: 'currency', defaultValue: 'COP', validators: [Validators.required] },\r\n      { name: 'expire_at', defaultValue: this.defaultDate, validators: [Validators.required] },\r\n      { name: 'offer_id', defaultValue: '' },\r\n      { name: 'item_id', defaultValue: '', validators: [Validators.required] },\r\n      { name: 'name', defaultValue: '', validators: [] },\r\n      { name: 'is_external', defaultValue: false, validators: [] },\r\n      { name: 'point_of_sale_id', defaultValue: '', validators: [Validators.required] },\r\n      { name: 'image_url', defaultValue: '', validators: [] },\r\n      { name: 'allow_multiple_items', defaultValue: false, validators: [] },\r\n      { name: 'base_price', defaultValue: itemBasePrice, validators: [] },\r\n    ];\r\n\r\n    const newItem = this.formFactory.createForm(itemSpecFormConfig);\r\n    newItem.get('name')?.setValue(itemName);\r\n    newItem.get('is_external')?.setValue(itemIsExternal ?? false);\r\n    newItem.get('point_of_sale_id')?.setValue(posId);\r\n    newItem.get('image_url')?.setValue(itemImage || '');\r\n    newItem.get('availability')?.setValue(availability || null);\r\n    newItem.get('item_id')?.setValue(itemId);\r\n    availability ? newItem.get('availability')?.disable() : newItem.get('availability')?.enable();\r\n    this.itemsSpecificationForm.push(newItem);\r\n    setTimeout(() => this.kvPopup?.refreshPagination(this.itemsSpecificationForm.length), 0);\r\n  }\r\n\r\n  preventNegative(event: KeyboardEvent) {\r\n    const invalidKeys = ['-', 'e'];\r\n    const input = event.target as HTMLInputElement;\r\n\r\n    if (invalidKeys.includes(event.key) ||\r\n      (event.key === '0' && input.value.length === 0)) {\r\n      event.preventDefault();\r\n    }\r\n  }\r\n\r\n  onInput(event: Event, itemForm: FormGroup) {\r\n    const input = event.target as HTMLInputElement;\r\n    const number = input.value.replace(/\\D/g, '');\r\n    const formatted = this.formatNumber(number);\r\n    itemForm.get('amount')?.setValue(formatted, { emitEvent: false });\r\n  }\r\n\r\n  protected onCancelAction() {\r\n    this.onCancel.emit();\r\n  }\r\n\r\n  formatNumber(value: string): string {\r\n    if (!value) return '';\r\n    return value.replace(/\\B(?=(\\d{3})+(?!\\d))/g, '.');\r\n  }\r\n\r\n  public allTimesHasCost(): boolean {\r\n    return this.itemsSpecificationForm.invalid;\r\n  }\r\n\r\n  public getTotalExternalBasePrice(): number {\r\n    let total = 0;\r\n\r\n    this.itemsSpecificationForm.controls.forEach(itemForm => {\r\n      const isExternal = itemForm.get('is_external')?.value;\r\n\r\n      if (isExternal) {\r\n        const basePrice = itemForm.get('base_price')?.value;\r\n        const availability = itemForm.get('availability')?.value;\r\n\r\n        if (basePrice && availability) {\r\n          total += Number(basePrice) * Number(availability);\r\n        }\r\n      }\r\n    });\r\n\r\n    return total;\r\n  }\r\n\r\n  public showExternalBasePriceWarning(): boolean {\r\n    const totalExternal = this.getTotalExternalBasePrice();\r\n\r\n    const hasExternalProducts = this.itemsSpecificationForm.controls.some(\r\n      itemForm => itemForm.get('is_external')?.value === true\r\n    );\r\n\r\n    return hasExternalProducts && totalExternal > 0 && totalExternal < 12900;\r\n  }\r\n\r\n  public canSubmit(): boolean {\r\n    if (this.itemsSpecificationForm.invalid) {\r\n      return false;\r\n    }\r\n\r\n    return !this.showExternalBasePriceWarning();\r\n  }\r\n\r\n  totalPages(): number {\r\n    return Math.ceil(\r\n      this.itemsSpecificationForm.controls.filter((itemForm) =>\r\n        itemForm.get('name')?.value.toLowerCase()\r\n      ).length / this.pageSize\r\n    );\r\n  }\r\n\r\n  changePage(direction: number) {\r\n    const newPage = this.currentPage + direction;\r\n    if (newPage > 0 && newPage <= this.totalPages()) {\r\n      this.currentPage = newPage;\r\n    }\r\n  }\r\n\r\n  hasItemsAssociated(): boolean {\r\n    return this.itemsSpecificationForm.length > 0;\r\n  }\r\n\r\n  public onSubmit(): void {\r\n    if (this.canSubmit()) {\r\n      this.onContinue.emit();\r\n    }\r\n  }\r\n\r\n  processItemSpecifications(): void {\r\n    this.itemsSpecificationForm.controls.forEach(itemForm => {\r\n      itemForm.get('offer_id')?.setValue(this.offerId);\r\n    });\r\n    if (this.itemsSpecificationForm.valid) {\r\n      this.showCostPopup = false;\r\n      this.itemsSpecificationForm.controls.forEach(control => {\r\n        let itemAmount = control.get('amount')?.value;\r\n        if (typeof itemAmount === 'string') {\r\n          itemAmount = itemAmount.replace(/\\./g, '');\r\n        }\r\n        control.get('amount')?.setValue(Number(itemAmount))\r\n      })\r\n    }\r\n\r\n    const multipleItemsSpecs: CreateWithMultipleItemsRequest[] = [];\r\n    const regularItemsSpecs: any[] = [];\r\n\r\n    this.itemsSpecificationForm.controls.forEach(control => {\r\n      const allowMultiple = control.get('allow_multiple_items')?.value;\r\n      control.get('availability')?.enable();\r\n      const itemSpec = control.value;\r\n\r\n      if (allowMultiple) {\r\n        const multipleItemSpec: CreateWithMultipleItemsRequest = {\r\n          currency: itemSpec.currency,\r\n          offer_id: itemSpec.offer_id,\r\n          item_id: itemSpec.item_id,\r\n          point_of_sale_id: itemSpec.point_of_sale_id,\r\n          amount: itemSpec.amount,\r\n          availability: itemSpec.availability,\r\n          expire_at: itemSpec.expire_at,\r\n          is_external: itemSpec.is_external,\r\n          allow_multiple_items: true,\r\n          base_price: itemSpec.base_price\r\n        };\r\n        multipleItemsSpecs.push(multipleItemSpec);\r\n      } else {\r\n        regularItemsSpecs.push(itemSpec);\r\n      }\r\n    });\r\n\r\n    this.onItemsProcessed.emit({\r\n      multipleItems: multipleItemsSpecs,\r\n      regularItems: regularItemsSpecs,\r\n    });\r\n\r\n  }\r\n\r\n  protected onDatePicked(date: any, itemForm: FormGroup) {\r\n    itemForm.get('expire_at')?.setValue(date);\r\n  }\r\n\r\n  public removeItem(itemId: string): void {\r\n    const index = this.itemsSpecificationForm.controls.findIndex(control =>\r\n      control.get('item_id')?.value === itemId\r\n    );\r\n\r\n    if (index !== -1) {\r\n      this.itemsSpecificationForm.removeAt(index);\r\n      setTimeout(() => this.kvPopup?.refreshPagination(this.itemsSpecificationForm.length), 0);\r\n    }\r\n  }\r\n}","<lib-kv-popup #kvPopup *ngIf=\"showCostPopup\" [title]=\"'Set pricing and availability for your items'\" [description]=\"'Configure the cost, availability, and expiration details for each selected item in your offer.'\" [isCustomTemplate]=\"true\" [actionType]=\"actionTypeEnum.Info\"\r\n    (onAccept)=\"showCostPopup = false\" (onClose)=\"showCostPopup = false\">\r\n\r\n\r\n    <div class=\"base-price-warning\" *ngIf=\"showExternalBasePriceWarning()\">\r\n        <span class=\"material-icons\">warning</span>\r\n        <span>El total de los productos externos (Precio externo × disponibilidad) debe ser al menos $12.900. Total actual: ${{ getTotalExternalBasePrice().toLocaleString('es-CO') }}</span>\r\n    </div>\r\n\r\n    <div class=\"items-container\">\r\n        <ng-container *ngFor=\"let itemForm of filteredDataItems; let i = index\">\r\n            <div class=\"item-card\">\r\n                <div class=\"item-header\">\r\n                    <div class=\"item-info\">\r\n                        <img *ngIf=\"itemForm.get('image_url')?.value\" \r\n                                [src]=\"itemForm.get('image_url')?.value\" \r\n                                [alt]=\"itemForm.get('name')?.value\"\r\n                                class=\"item-image\">\r\n                        <div class=\"item-details\">\r\n                            <h4 class=\"item-name\">{{ itemForm.get('name')?.value }}</h4>\r\n                            <span class=\"item-type\" *ngIf=\"itemForm.get('is_external')?.value\">External Item</span>\r\n                        </div>\r\n                    </div>\r\n                </div>\r\n                \r\n                <form [formGroup]=\"itemForm\" class=\"item-form\">\r\n                    <div class=\"form-section\">\r\n                        <h5 class=\"section-title\">Pricing & Availability</h5>\r\n                        \r\n                        <div class=\"input-grid\">\r\n                            <div class=\"input-group\">\r\n                                <label for=\"amount-{{i}}\">Cost *</label>\r\n                                <div class=\"cost-input-container\">\r\n                                    <input id=\"amount-{{i}}\" \r\n                                            formControlName=\"amount\" \r\n                                            type=\"text\" \r\n                                            placeholder=\"Enter cost\"\r\n                                            (input)=\"onInput($event, itemForm)\" />\r\n                                    <select class=\"currency-select\" formControlName=\"currency\">\r\n                                        <option value=\"COP\">COP</option>\r\n                                    </select>\r\n                                </div>\r\n                                <div class=\"error-message\" *ngIf=\"itemForm.get('amount')?.invalid && itemForm.get('amount')?.touched\">\r\n                                    Cost is required\r\n                                </div>\r\n                            </div>\r\n                            \r\n                            <div class=\"input-group\">\r\n                                <label for=\"availability-{{i}}\">Availability *</label>\r\n                                <input id=\"availability-{{i}}\" \r\n                                        formControlName=\"availability\" \r\n                                        type=\"number\" \r\n                                        min=\"1\" \r\n                                        placeholder=\"Available quantity\"\r\n                                        (keydown)=\"preventNegative($event)\" />\r\n                                <div class=\"error-message\" *ngIf=\"itemForm.get('availability')?.invalid && itemForm.get('availability')?.touched\">\r\n                                    Availability is required\r\n                                </div>\r\n                            </div>\r\n                        </div>\r\n                    </div>\r\n\r\n                    <div class=\"form-section\">\r\n                        <h5 class=\"section-title\">Multiple Items Settings</h5>\r\n                        \r\n                        <div class=\"toggle-container\">\r\n                            <label class=\"toggle-label\">\r\n                                <input type=\"checkbox\" \r\n                                        formControlName=\"allow_multiple_items\"\r\n                                        class=\"toggle-input\">\r\n                                <span class=\"toggle-slider\"></span>\r\n                                <span class=\"toggle-text\">Allow multiple items per user</span>\r\n                            </label>\r\n                            <p class=\"toggle-description\">When enabled, users can bid on multiple quantities of this item</p>\r\n                        </div>\r\n                    </div>\r\n                    \r\n                    <div class=\"form-section\" *ngIf=\"shouldShowDatepicker\">\r\n                        <h5 class=\"section-title\">Expiration</h5>\r\n                        <div class=\"input-group\">\r\n                            <label for=\"expireAt-{{i}}\">Expires on</label>\r\n                            <lib-kv-date-picker [initialDate]=\"defaultDate\" \r\n                                                [showDetails]=\"true\"\r\n                                                (dateSelected)=\"onDatePicked($event, itemForm)\">\r\n                            </lib-kv-date-picker>\r\n                        </div>\r\n                    </div>\r\n                </form>\r\n            </div>\r\n        </ng-container>\r\n    </div>\r\n\r\n    <div class=\"pagination-container\" *ngIf=\"totalPages() > 1\">\r\n        <div class=\"pagination-info\">\r\n            <span>Showing {{ (currentPage - 1) * pageSize + 1 }} - {{ Math.min(currentPage * pageSize, itemsSpecificationForm.length) }} of {{ itemsSpecificationForm.length }} items</span>\r\n        </div>\r\n        <div class=\"pagination-controls\">\r\n            <button class=\"pagination-btn\" \r\n                    (click)=\"changePage(-1)\" \r\n                    [disabled]=\"currentPage === 1\"\r\n                    [class.disabled]=\"currentPage === 1\">\r\n                ← Previous\r\n            </button>\r\n            <span class=\"page-indicator\">{{ currentPage }} / {{ totalPages() }}</span>\r\n            <button class=\"pagination-btn\" \r\n                    (click)=\"changePage(1)\" \r\n                    [disabled]=\"currentPage === totalPages()\"\r\n                    [class.disabled]=\"currentPage === totalPages()\">\r\n                Next →\r\n            </button>\r\n        </div>\r\n    </div>\r\n\r\n    <div class=\"popup-footer\">\r\n        <div class=\"footer-info\">\r\n            <span class=\"items-count\">{{ itemsSpecificationForm.length }} item(s) configured</span>\r\n        </div>\r\n        <div class=\"footer-actions\">\r\n            <button type=\"button\" class=\"button--cancel\" (click)=\"onCancelAction()\">Cancel</button>\r\n            <button type=\"submit\" class=\"button--primary-min\"\r\n                    [disabled]=\"!canSubmit()\"\r\n                    (click)=\"onSubmit()\">\r\n                Continue\r\n            </button>\r\n        </div>\r\n    </div>\r\n</lib-kv-popup>","import { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class NavigationService {\r\n    constructor(private router: Router) { }\r\n\r\n    navigateToLogin(): Promise<boolean> {\r\n        return this.router.navigate(['/login']);\r\n    }\r\n\r\n    navigateToOffers(): Promise<boolean> {\r\n        return this.router.navigate(['/dashboard/offers']);\r\n    }\r\n\r\n    navigateToOffersDetails(id: string): Promise<boolean> {\r\n        return this.router.navigate(['/dashboard/offers-details'], {\r\n            queryParams: { offerId: id }\r\n        });\r\n    }\r\n\r\n    navigateToResetPassword(): Promise<boolean> {\r\n        return this.router.navigate(['/login/reset-password']);\r\n    }\r\n\r\n    navigateToPointOfSaleDetails(id: string): Promise<boolean> {\r\n        return this.router.navigate(['/dashboard/point-of-sale-details'], {\r\n            queryParams: { pointOfSaleId: id }\r\n        });\r\n    }\r\n\r\n    navigateToPointOfSale(): Promise<boolean> {\r\n        return this.router.navigate(['/dashboard/point-of-sale']);\r\n    }\r\n\r\n    navigateToItems(): Promise<boolean> {\r\n        return this.router.navigate(['/dashboard/items']);\r\n    }\r\n\r\n    navigateToItemsDetails(id: string, posId: string): Promise<boolean> {\r\n        return this.router.navigate(['/dashboard/items-details'], {\r\n            queryParams: { itemId: id, pointOfSaleId: posId}\r\n        });\r\n    }\r\n\r\n    navigateToRules(): Promise<boolean> {\r\n        return this.router.navigate(['/dashboard/rules']);\r\n    }\r\n\r\n    navigateToRulesManager(offerId?: string, offerName?:string): Promise<boolean> {\r\n        const queryParams: any = {};\r\n        if (offerId) {\r\n            queryParams.offerId = offerId;\r\n        }\r\n        if (offerName) {\r\n            queryParams.offerName = offerName;\r\n        }\r\n        return this.router.navigate( ['/dashboard/rules-manager'],\r\n        { queryParams }\r\n      );\r\n    }\r\n\r\n    navigateToOfferFlow(): Promise<boolean> {\r\n        return this.router.navigate(['/dashboard/offer-flow']);\r\n    }\r\n\r\n    navigateToPayment(price: number): Promise<boolean> {\r\n        return this.router.navigate(['/auctions/payment']);\r\n    }\r\n\r\n    navigateToBillingRecords(): Promise<boolean> {\r\n        return this.router.navigate(['/dashboard/billing-record']);\r\n    }\r\n\r\n    navigateToIntegrations(): Promise<boolean> {\r\n        return this.router.navigate(['/dashboard/integrations']);\r\n    }\r\n\r\n    navigateToOrders(): Promise<boolean> {\r\n        return this.router.navigate(['/dashboard/orders']);\r\n    }\r\n\r\n    navigateToCustomers(): Promise<boolean> {\r\n        return this.router.navigate(['/dashboard/customers']);\r\n    }\r\n\r\n    navigateToOrderStatus(orderId: string): Promise<boolean> {\r\n        return this.router.navigate(['/auctions/order-status'], {\r\n            queryParams: { id: orderId}\r\n        });\r\n    }\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ActionType } from '../enums/action-type.enum';\r\n\r\ninterface PopupState {\r\n    show: boolean;\r\n    title: string;\r\n    actionType?: ActionType;\r\n    description: string;\r\n}\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class NotificationService {\r\n    private popupState = new BehaviorSubject<PopupState>({\r\n        show: false,\r\n        title: '',\r\n        description: '',\r\n        actionType: ActionType.Info\r\n    });\r\n\r\n    popupState$ = this.popupState.asObservable();\r\n\r\n    showNotification(title: string, description: string, actionType?: ActionType): void {\r\n        this.popupState.next({\r\n            show: true,\r\n            title,\r\n            description,\r\n            actionType: actionType || ActionType.Info\r\n        });\r\n    }\r\n\r\n    hideNotification(): void {\r\n        this.popupState.next({\r\n            show: false,\r\n            title: '',\r\n            description: '',\r\n            actionType: ActionType.Info\r\n        });\r\n    }\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, ReplaySubject, map } from 'rxjs';\r\n\r\ninterface SessionData {\r\n    pointsOfSale?: any[];\r\n}\r\n\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\n\r\nexport class SessionService {\r\n    private sessionSubject = new ReplaySubject<SessionData | null>(1);\r\n\r\n    constructor() {\r\n        this.sessionSubject.next(null);\r\n    }\r\n\r\n    setSessionData(data: SessionData): void {\r\n        this.sessionSubject.next(data);\r\n    }\r\n\r\n    getCurrentSessionData(): SessionData | null {\r\n        let value: SessionData | null = null;\r\n        this.sessionSubject.subscribe(v => value = v).unsubscribe();\r\n        return value;\r\n    }\r\n}","import { InjectionToken } from '@angular/core';\r\n\r\nexport const API_KEY = new InjectionToken<string>('API_KEY');","import { inject, Injectable } from '@angular/core';\r\nimport {\r\n  HttpRequest,\r\n  HttpHandler,\r\n  HttpEvent,\r\n  HttpInterceptor,\r\n  HttpErrorResponse\r\n} from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { CookieService } from \"ngx-cookie-service\";\r\nimport { API_KEY } from '../injection-tokens/auth-config';\r\nimport { NavigationService } from './navigation.service';\r\n\r\n@Injectable()\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n  intercept(\r\n    request: HttpRequest<unknown>,\r\n    next: HttpHandler\r\n  ): Observable<HttpEvent<unknown>> {\r\n    const cookieService = inject(CookieService);\r\n    const apiKey = inject(API_KEY);\r\n    const navigatorService = inject(NavigationService);\r\n\r\n    const token = cookieService.get('jwt');\r\n\r\n    const modifiedReq = request.clone({\r\n      headers: request.headers\r\n        .set('Access_token', token)\r\n        .set('Api_Key', apiKey)\r\n    });\r\n\r\n    return next.handle(modifiedReq).pipe(\r\n      catchError((error: HttpErrorResponse) => {\r\n        if (error.status === 401) {\r\n          cookieService.delete('jwt');\r\n          cookieService.delete('jwt', '/');\r\n        }\r\n        return throwError(() => error);\r\n      })\r\n    );\r\n  }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { CookieService } from \"ngx-cookie-service\";\r\nimport { BehaviorSubject, firstValueFrom } from \"rxjs\";\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nexport interface Session {\r\n  access_token: string;\r\n  refresh_token: string;\r\n  expires_in?: number;\r\n  user?: any;\r\n}\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n\r\n  private sessionSubject = new BehaviorSubject<Session | null>(null);\r\n  protected refreshTimeout: any;\r\n  private apiUrl = 'http://localhost:9090/v1';\r\n  private apiKey = '';\r\n\r\n  constructor(\r\n    private readonly cookieService: CookieService,\r\n    private readonly http: HttpClient\r\n  ) {\r\n    this.getSession().catch(() => null);\r\n  }\r\n\r\n  private getHeaders(): HttpHeaders {\r\n    return new HttpHeaders({\r\n      'Content-Type': 'application/json',\r\n      'Api_Key': this.apiKey\r\n    });\r\n  }\r\n\r\n  public configureApi(apiUrl: string, apiKey?: string): void {\r\n    if (apiUrl) this.apiUrl = apiUrl;\r\n    if (apiKey) this.apiKey = apiKey;\r\n  }\r\n\r\n  public getCurrentSession(): Session | null {\r\n    return this.sessionSubject.getValue();\r\n  }\r\n\r\n  public signIn(email: string, password: string): Promise<any> {\r\n    return firstValueFrom(\r\n      this.http.post(`${this.apiUrl}/supabase-auth`, { email, password }, { headers: this.getHeaders() })\r\n    ).then((response: any) => {\r\n      if (response) {\r\n        this.sessionSubject.next(response);\r\n        localStorage.setItem('refresh_token', response.refresh_token || '');\r\n        try { this.cookieService.set('apiUrl', this.apiUrl); } catch {}\r\n        if (this.isValidLoginResponse(response)) {\r\n          this.handleSuccessfulRefresh(response);\r\n          this.startRefreshTimer(response);\r\n        }\r\n      }\r\n      return response;\r\n    });\r\n  }\r\n\r\n  public signOut(): Promise<any> {\r\n    return firstValueFrom(\r\n      this.http.post(`${this.apiUrl}/supabase-signout`, {}, { headers: this.getHeaders() })\r\n    ).then((response: any) => {\r\n      this.sessionSubject.next(null);\r\n      this.cookieService.deleteAll();\r\n      localStorage.removeItem('refresh_token');\r\n      return response;\r\n    }).catch(error => {\r\n      console.error('Error signing out:', error);\r\n      this.sessionSubject.next(null);\r\n      this.cookieService.deleteAll();\r\n      localStorage.removeItem('refresh_token');\r\n      throw error;\r\n    });\r\n  }\r\n\r\n  public sendResetPasswordEmail(email: string): Promise<any> {\r\n    return firstValueFrom(\r\n      this.http.post(`${this.apiUrl}/supabase-reset-password`, { email }, { headers: this.getHeaders() })\r\n    );\r\n  }\r\n\r\n  public setNewPassword(newPassword: string): Promise<any> {\r\n    const accessToken = this.cookieService.get('access_token');\r\n    const headers = this.getHeaders().set('Authorization', `Bearer ${accessToken}`);\r\n\r\n    return firstValueFrom(\r\n      this.http.post(`${this.apiUrl}/supabase-set-password`, { password: newPassword }, { headers })\r\n    );\r\n  }\r\n\r\n  public getSession(): Promise<any> {\r\n    const refreshToken = localStorage.getItem('refresh_token');\r\n    if (!refreshToken) {\r\n      return Promise.resolve({ data: { session: null } });\r\n    }\r\n    \r\n    const apiUrlFromCookie = this.cookieService.get('apiUrl') || this.apiUrl;\r\n    return firstValueFrom(\r\n      this.http.post(`${apiUrlFromCookie}/supabase-session`, { refresh_token: refreshToken }, { headers: this.getHeaders() })\r\n    ).then((response: any) => {\r\n      if (response?.data?.session) {\r\n        this.sessionSubject.next(response.data.session);\r\n        if (this.isValidLoginResponse(response.data)) {\r\n          this.handleSuccessfulRefresh(response.data);\r\n          this.startRefreshTimer(response.data.session);\r\n        }\r\n      }\r\n      return response;\r\n    });\r\n  }\r\n\r\n  public refreshSession(): Promise<any> {\r\n    const refreshToken = localStorage.getItem('refresh_token');\r\n    if (!refreshToken) {\r\n      return Promise.resolve({ data: { session: null } });\r\n    }\r\n    \r\n    return firstValueFrom(\r\n      this.http.post(`${this.apiUrl}/supabase-refresh`, { refresh_token: refreshToken }, { headers: this.getHeaders() })\r\n    ).then((response: any) => {\r\n      if (response?.data) {\r\n        this.sessionSubject.next(response.data);\r\n        localStorage.setItem('refresh_token', response.data.refresh_token || '');\r\n        if (this.isValidLoginResponse(response.data)) {\r\n          this.handleSuccessfulRefresh(response.data);\r\n          this.startRefreshTimer(response.data);\r\n        }\r\n      }\r\n      return response;\r\n    });\r\n  }\r\n\r\n  public startRefreshTimer(session: Session) {\r\n    const expiresIn = session.expires_in || 3200;\r\n    this.refreshTimeout = setTimeout(() => {\r\n      this.refreshSession().catch(console.error);\r\n    }, (expiresIn - 60) * 1000);\r\n  }\r\n\r\n  public getSessionObservable() {\r\n    return this.sessionSubject.asObservable();\r\n  }\r\n\r\n  private isValidLoginResponse(data: any): boolean {\r\n    return !!(\r\n      data?.access_token &&\r\n      data?.user?.app_metadata?.role\r\n    );\r\n  }\r\n\r\n  private handleSuccessfulRefresh(data: any): void {\r\n    const token = data!.access_token;\r\n    this.cookieService.delete('jwt');\r\n    this.cookieService.set('jwt', token);\r\n  }\r\n}\r\n","export class AuthHelper {\r\n\r\n    public static getUserId(): string | null {\r\n        return localStorage.getItem(\"userId\") || null;\r\n    }\r\n\r\n    public static getUserRole(): string | null {\r\n        return localStorage.getItem(\"userRole\") || null;\r\n    }\r\n}","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\r\n\r\nexport const passwordMatchValidator: ValidatorFn = (control: AbstractControl): ValidationErrors | null => {\r\n    const password = control.get('password');\r\n    const confirmPassword = control.get('confirmPassword');\r\n\r\n    if (!password || !confirmPassword) {\r\n        return null;\r\n    }\r\n\r\n    if (password.pristine || confirmPassword.pristine) {\r\n        return null;\r\n    }\r\n\r\n    return password.value === confirmPassword.value ? null : { passwordMismatch: true };\r\n};","/*\r\n * Public API Surface of kivio\r\n */\r\n\r\n//Components\r\nexport * from './lib/components/kv-popup/kv-popup.component';\r\nexport * from './lib/components/date-picker/date-picker.component';\r\nexport * from './lib/components/kv-resource-not-found/kv-resource-not-found.component'\r\nexport * from './lib/components/kv-stepper/kv-stepper.component';\r\nexport * from './lib/components/kv-step/kv-step.component';\r\nexport * from './lib/components/kv-accordion/kv-accordion.component';\r\nexport * from './lib/components/kv-alert/kv-alert.component';\r\nexport * from './lib/components/kv-side-menu/kv-side-menu.component'\r\nexport * from './lib/components/kv-main-table/kv-main-table.component'\r\nexport * from './lib/components/kv-loading/kv-loading.component';\r\nexport * from './lib/components/kv-item-card/kv-item-card.component';\r\n\r\n//Services\r\nexport * from './lib/factories/form-factory.service';\r\nexport * from './lib/services/navigation.service';\r\nexport * from './lib/services/notification.service';\r\nexport * from './lib/services/session.service';\r\nexport * from './lib/services/auth-interceptor.service';\r\nexport * from './lib/services/auth.service';\r\nexport * from './lib/services/pagination.service';\r\n\r\n//Configs\r\nexport * from './lib/interfaces/form-field.config';\r\n\r\n//Helpers\r\nexport * from './lib/helpers/auth.helper'\r\n\r\n//Validators\r\nexport * from './lib/validators/password-missmatch.validator'\r\n\r\n//Enums\r\nexport * from './lib/enums/action-type.enum'\r\n\r\n// Injection Tokens\r\nexport * from './lib/injection-tokens/auth-config';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PaginationService","i1","i1.FormFactoryService"],"mappings":"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"}