{"version":3,"file":"ngx-search-bar-fz.mjs","sources":["../../../projects/ngx-search-bar/src/lib/utils/DATA_FOR_SEARCH_BAR.ts","../../../projects/ngx-search-bar/src/lib/ngx-search-bar.service.ts","../../../projects/ngx-search-bar/src/lib/utils/empty.ts","../../../projects/ngx-search-bar/src/lib/components/ngx-search-bar-form-filter/ngx-search-bar-form-filter.component.ts","../../../projects/ngx-search-bar/src/lib/components/ngx-search-bar-form-filter/ngx-search-bar-form-filter.component.html","../../../projects/ngx-search-bar/src/lib/components/ngx-search-bar-paginator/ngx-search-bar-paginator.component.ts","../../../projects/ngx-search-bar/src/lib/components/ngx-search-bar-paginator/ngx-search-bar-paginator.component.html","../../../projects/ngx-search-bar/src/lib/components/ngx-search-bar/ngx-search-bar.component.ts","../../../projects/ngx-search-bar/src/lib/components/ngx-search-bar/ngx-search-bar.component.html","../../../projects/ngx-search-bar/src/lib/ngx-search-bar.module.ts","../../../projects/ngx-search-bar/src/public-api.ts","../../../projects/ngx-search-bar/src/ngx-search-bar-fz.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\"\r\n\r\nexport interface NgxSearchBarProvider {\r\n  BASE_URL: string\r\n  OPTIONS?: {\r\n    classContainerFilter?: string,\r\n    fnScrollTop?: () => void,\r\n    stickyTop?: string,\r\n  }\r\n  OPTIONS_PAGINATE?: {\r\n    fnGetLength?: ((arg: any) => number) | string,\r\n  },\r\n  OPTIONS_FILTERS?: {\r\n    textButtons: {\r\n      apply: string,\r\n      cancel: string,\r\n    }\r\n  }\r\n}\r\n\r\nexport const defaultConfigNgxSearchBar: NgxSearchBarProvider = {\r\n  BASE_URL: \"https://jsonplaceholder.typicode.com/\",\r\n  OPTIONS: {\r\n    // customBtnApplyFilter: { text: \"Aplicar Filtros\", class: \"\" },\r\n    classContainerFilter: \"main-style\",\r\n  },\r\n  OPTIONS_FILTERS: {\r\n    textButtons: {\r\n      apply: \"Aplicar\",\r\n      cancel: \"Cancelar\",\r\n    }\r\n  }\r\n}\r\n\r\nexport const NGX_SEARCH_BAR_DATA = new InjectionToken<NgxSearchBarProvider>(\r\n  \"Token de datos para la barra de búsqueda\",\r\n  {\r\n    providedIn: \"root\",\r\n    factory: () => defaultConfigNgxSearchBar,\r\n  }\r\n)\r\n\r\n\r\n","import { Location } from \"@angular/common\"\r\nimport { HttpClient } from \"@angular/common/http\"\r\nimport { Inject, Injectable } from \"@angular/core\"\r\n// import type { Observable } from \"rxjs\"\r\nimport { NGX_SEARCH_BAR_DATA, NgxSearchBarProvider } from \"./utils/DATA_FOR_SEARCH_BAR\"\r\nimport { NgxSearchBarComponent } from \"../public-api\"\r\nimport { Observable } from \"rxjs\"\r\nimport { INsbParams } from \"./interfaces/ngx-search-bar.types\"\r\n\r\n@Injectable({\r\n  providedIn: \"root\",\r\n})\r\nexport class NgxSearchBarService {\r\n  constructor(\r\n    private http: HttpClient,\r\n    private location: Location,\r\n    @Inject(NGX_SEARCH_BAR_DATA) private data: NgxSearchBarProvider\r\n  ) {\r\n    // this.getQueryParams()\r\n  }\r\n  searchBars = new Map<Symbol, {component: NgxSearchBarComponent, params: INsbParams}>()\r\n\r\n  nameQueryParams: string = \"params-ngx-search-bar\"\r\n  public queryParams: INsbParams = { search: null, paginate: undefined, form: undefined }\r\n\r\n  search(path: string, params: any, baseUrl: string | null): Observable<any> {\r\n    if (!baseUrl) {\r\n      baseUrl = this.data.BASE_URL\r\n    }\r\n    return this.http.get<any>(`${baseUrl}/${path}`, { params })\r\n  }\r\n\r\n  changeQueryParams(symbol:Symbol): void {\r\n    let searchParams = new URLSearchParams();\r\n    const p = this.searchBars.get(symbol)!;\r\n    searchParams.set(this.nameQueryParams, JSON.stringify(p.params) || \"\")\r\n    const params = searchParams.toString();\r\n    this.location.replaceState(this.location.path().split(\"?\")[0], params);\r\n  }\r\n\r\n  getQueryParams() {\r\n    let paramsBar = this.queryParams;\r\n    try {\r\n      const queryParams = window.location.href.split(\"?\")\r\n      if (queryParams.length === 1) return \r\n      const params = Object?.fromEntries(new URLSearchParams(queryParams[1]) as any)\r\n      if (!params || !params.hasOwnProperty(this.nameQueryParams)) {\r\n        paramsBar =  { search: null }\r\n        return \r\n      }\r\n      const p = JSON.parse(params[this.nameQueryParams]) as INsbParams\r\n      if (typeof p?.search === \"string\") {\r\n        paramsBar[\"search\"] = p.search\r\n      }\r\n      if (p?.paginate) {\r\n        paramsBar[\"paginate\"] = {\r\n          page: p?.paginate?.page || 1,\r\n          pageSize: p?.paginate?.pageSize || 10,\r\n        }\r\n      }\r\n\r\n      if (p?.form) {\r\n        paramsBar[\"form\"] = p?.form\r\n      }\r\n      return\r\n    } catch (e) {\r\n      paramsBar = { search: null }\r\n    }\r\n    return\r\n  }\r\n\r\n  setParamsPaginate(symbol: Symbol, paginate: { page: { value: number; field: string }; pageSize: { value: number; field: string } }) {\r\n    const paramsBar = this.searchBars.get(symbol)!.params;\r\n    paramsBar[\"paginate\"] = paginate;\r\n  }\r\n\r\n  setParamsForm(symbol: Symbol, form: { [key: string]: any } | null) {\r\n    const paramsBar = this.searchBars.get(symbol)!.params;\r\n    paramsBar[\"form\"] = form || undefined\r\n  }\r\n\r\n  setParamsSearch(symbol: Symbol, search: string) {\r\n    const paramsBar = this.searchBars.get(symbol)!.params;\r\n    paramsBar[\"search\"] = search\r\n  }\r\n\r\n  addBarSearch(symbol: Symbol, bar: NgxSearchBarComponent) {\r\n    this.searchBars.set(symbol, {component: bar, params: {search: null}})\r\n  }\r\n\r\n  getBarSearch(symbol: Symbol) {\r\n    return this.searchBars.get(symbol);\r\n  }\r\n\r\n  removeBarSearch(symbol: Symbol) {\r\n    this.searchBars.delete(symbol)\r\n  }\r\n\r\n  searchApply(symbol: Symbol) {\r\n    const bar = this.searchBars.get(symbol)\r\n    if (bar) {\r\n      bar.component.search()\r\n    }\r\n  }\r\n}\r\n","export function empty(m: unknown) {\r\n    const isEmpty = Boolean(!m) || m == ''\r\n    if (isEmpty) return isEmpty\r\n    if (typeof m === 'object' && Object.keys(m!).length === 0) {\r\n        return true\r\n    }\r\n    return false\r\n}\r\n","// import { NgxSearchBarFilterValue } from './../../interfaces/structures';\r\nimport { Component, ElementRef, Inject, Input, ViewChild } from \"@angular/core\"\r\nimport { FormGroup } from \"@angular/forms\"\r\nimport { empty } from \"../../utils/empty\"\r\nimport { NGX_SEARCH_BAR_DATA, NgxSearchBarProvider } from \"../../utils/DATA_FOR_SEARCH_BAR\"\r\nimport { animate, style, transition, trigger } from \"@angular/animations\"\r\nimport { NgxSearchBarService } from \"../../ngx-search-bar.service\"\r\n\r\n@Component({\r\n  // eslint-disable-next-line @angular-eslint/component-selector\r\n  selector: \"ngx-search-bar-form-filter\",\r\n  templateUrl: \"./ngx-search-bar-form-filter.component.html\",\r\n  styleUrls: [\"./ngx-search-bar-form-filter.component.scss\"],\r\n  animations: [\r\n    trigger(\"openOrCloseFilter\", [\r\n      transition(\":enter\", [\r\n        style({ transform: \"translateY(-50px)\", opacity: 0 }),\r\n        animate(\"300ms\", style({ transform: \"translateY(0)\", opacity: 1 })),\r\n      ]),\r\n      transition(\":leave\", [\r\n        animate(\"300ms\", style({ transform: \"translateY(-50px)\", opacity: 0, background: \"inherit\" })),\r\n      ]),\r\n    ]),\r\n  ],\r\n})\r\nexport class NgxSearchBarFormFilterComponent {\r\n  @ViewChild(\"dropDownFilter\", { static: false }) dropDownFilterElement!: ElementRef\r\n  @Input() filters!: FormGroup;\r\n  @Input() textBtnApply!: string;\r\n  @Input() textBtnClose!: string;\r\n  @Input() withParamsClean: boolean = false;\r\n  @Input() classPanel!: string;\r\n  private filtersSend: { [key: string]: any } | null = null;\r\n  classPosition: string = \"\";\r\n  isOpenFilter = false;\r\n  numberFilter = 0;\r\n\r\n  private id!: Symbol\r\n\r\n  constructor(\r\n    private service: NgxSearchBarService,\r\n    @Inject(NGX_SEARCH_BAR_DATA) public dataInject: NgxSearchBarProvider\r\n  ) {\r\n    if (!this.textBtnApply) {\r\n      this.textBtnApply = this.dataInject?.OPTIONS_FILTERS?.textButtons?.apply || \"Apply Filters\";\r\n    }\r\n    if (!this.textBtnClose) {\r\n      this.textBtnClose = this.dataInject?.OPTIONS_FILTERS?.textButtons?.cancel || \"Close Filters\";\r\n    }\r\n  }\r\n\r\n  setId(id: Symbol) {\r\n    this.id = id\r\n  }\r\n\r\n  applyFilters() {\r\n    this.filtersSend = this.filterVerified()\r\n    this.isOpenFilter = false\r\n    this.search()\r\n  }\r\n\r\n  search() {\r\n    this.service.setParamsForm(this.id, this.filtersSend)\r\n    this.service.searchApply(this.id)\r\n  }\r\n\r\n  getFilter(): { [key: string]: any } | null {\r\n    return this.filtersSend\r\n  }\r\n\r\n  removeQueryParam(key: string) {\r\n    this.filters.get(key)?.setValue(null)\r\n    this.search()\r\n  }\r\n\r\n  calculePosition() {\r\n    const containerFilter = (this.dropDownFilterElement as ElementRef).nativeElement as HTMLElement\r\n    const btn = document.querySelector(\".nsb-content-input-search\") as HTMLElement\r\n    const dropdownRect = btn.getBoundingClientRect()\r\n    const spaceAbove = dropdownRect.top\r\n    const spaceBelow = window.innerHeight - dropdownRect.bottom\r\n\r\n    const height = btn?.[\"offsetHeight\"] || 44\r\n    console.log({ spaceAbove, spaceBelow })\r\n    if (spaceBelow > spaceAbove) {\r\n      containerFilter.style.top = `${height}px`\r\n      containerFilter.style.bottom = \"auto\"\r\n      containerFilter.style.maxHeight = `${spaceBelow}px`\r\n    } else {\r\n      containerFilter.style.top = \"auto\"\r\n      containerFilter.style.bottom = `${height}px`\r\n      containerFilter.style.maxHeight = `${spaceAbove}px`\r\n    }\r\n  }\r\n\r\n  filterVerified(): { [key: string]: any } | null {\r\n    const filters = this.filters.value\r\n    const filtersOverride: { [key: string]: any } = {}\r\n    this.numberFilter = 0\r\n    for (const key in filters) {\r\n      if (!empty(filters[key])) {\r\n        this.numberFilter++\r\n        filtersOverride[key] = filters[key]\r\n      }\r\n    }\r\n  \r\n    this.filtersSend = this.withParamsClean ? filtersOverride: this.filters.value\r\n    return this.filtersSend\r\n  }\r\n\r\n  loadFilters() {\r\n    const form = this.service.queryParams.form\r\n    if (!form) {\r\n      this.numberFilter = 0\r\n      return\r\n    }\r\n    Object.keys(form).forEach((key) => {\r\n      if (!empty(form[key])) {\r\n        this.numberFilter++;\r\n      }\r\n    })\r\n    this.filters.patchValue(form);\r\n    this.service.setParamsForm(this.id, this.filterVerified())\r\n\r\n  }\r\n\r\n  getFormFilters(): FormGroup {\r\n    return this.filters\r\n  }\r\n\r\n  openFilter() {\r\n    this.isOpenFilter = !this.isOpenFilter\r\n    if (this.isOpenFilter) {\r\n      this.calculePosition()\r\n    }\r\n  }\r\n}\r\n","<button (click)=\"openFilter()\" class=\"nsb-btn-filter\">\r\n  <svg\r\n    stroke=\"currentColor\"\r\n    fill=\"currentColor\"\r\n    stroke-width=\"0\"\r\n    viewBox=\"0 0 24 24\"\r\n    height=\"1.3em\"\r\n    width=\"1.3em\"\r\n    xmlns=\"http://www.w3.org/2000/svg\">\r\n    <path\r\n      d=\"M21 3H5a1 1 0 0 0-1 1v2.59c0 .523.213 1.037.583 1.407L10 13.414V21a1.001 1.001 0 0 0 1.447.895l4-2c.339-.17.553-.516.553-.895v-5.586l5.417-5.417c.37-.37.583-.884.583-1.407V4a1 1 0 0 0-1-1zm-6.707 9.293A.996.996 0 0 0 14 13v5.382l-2 1V13a.996.996 0 0 0-.293-.707L6 6.59V5h14.001l.002 1.583-5.71 5.71z\"></path>\r\n  </svg>\r\n  <span class=\"ngx-sbf-count\" *ngIf=\"numberFilter\">{{ numberFilter }}</span>\r\n</button>\r\n<div\r\n  #dropDownFilter\r\n  [class]=\"dataInject.OPTIONS?.classContainerFilter\"\r\n  class=\"nsb-section-filter {{classPosition}}\"\r\n  >\r\n  <div @openOrCloseFilter *ngIf=\"isOpenFilter\" class=\"nsb-filter-container\">\r\n    <div>\r\n      <ng-content></ng-content>\r\n    </div>\r\n    <div class=\"nsb-line\"></div>\r\n    <div class=\"nsb-action-filter\">\r\n      <button (click)=\"applyFilters()\" class=\"nsb-action-filter\">\r\n        {{textBtnApply}}\r\n        <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"green\" width=\"24px\" height=\"24px\">\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\" />\r\n          <path d=\"M9 16.17L5.83 13L4.4 14.41L9 19L21 7L19.59 5.59L9 16.17z\" />\r\n        </svg>\r\n      </button>\r\n      <button (click)=\"isOpenFilter = false\" class=\"nsb-action-close\">\r\n       {{textBtnClose}}\r\n        <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"red\" width=\"24px\" height=\"24px\">\r\n          <path d=\"M0 0h24v24H0z\" fill=\"none\" />\r\n          <path\r\n            d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z\" />\r\n        </svg>\r\n      </button>\r\n    </div>\r\n  </div>\r\n</div>\r\n","import { Component, Inject, Input, OnInit } from \"@angular/core\"\r\n// import { NgxSearchBarComponent } from \"../ngx-search-bar/ngx-search-bar.component\"\r\nimport { NGX_SEARCH_BAR_DATA, NgxSearchBarProvider } from \"../../utils/DATA_FOR_SEARCH_BAR\";\r\nimport { NgxSearchBarService } from \"../../ngx-search-bar.service\";\r\n\r\n@Component({\r\n  selector: \"ngx-search-bar-paginator\",\r\n  templateUrl: \"./ngx-search-bar-paginator.component.html\",\r\n  styleUrls: [\"./ngx-search-bar-paginator.component.scss\"],\r\n})\r\nexport class NgxSearchBarPaginatorComponent implements OnInit {\r\n  @Input() pageAttr = \"page\";\r\n  @Input() pageSizeAttr = \"pageSize\";\r\n  @Input() lengthAttr = \"length\";\r\n  @Input() pageSizeOptions = [10, 15, 25, 50];\r\n  @Input() page = 0;\r\n  @Input() pageSize = 50;\r\n  @Input() length = 0;\r\n  @Input() backZIndex = '1000';\r\n  @Input() align: 'start' | 'center' | 'end' = 'end';\r\n  @Input() getLength: ((arg:any) => number) | string = \"\";\r\n\r\n  private id!: Symbol;\r\n  arrows: {\r\n    next: boolean\r\n    previous: boolean\r\n    start: boolean\r\n    end: boolean\r\n  } = {\r\n    next: false,\r\n    previous: false,\r\n    start: false,\r\n    end: false,\r\n  }\r\n\r\n  offset = {\r\n    start: 0,\r\n    end: 0,\r\n  }\r\n\r\n  constructor(@Inject(NGX_SEARCH_BAR_DATA) private dataProvider: NgxSearchBarProvider, private service: NgxSearchBarService) {\r\n    if (!this.getLength && this.dataProvider.OPTIONS_PAGINATE?.fnGetLength) {\r\n      this.getLength = this.dataProvider.OPTIONS_PAGINATE?.fnGetLength;\r\n    }\r\n  }\r\n\r\n  ngOnInit() {\r\n\r\n  }\r\n\r\n  setId(id: Symbol) {\r\n    this.id = id\r\n  }\r\n\r\n  getPaginator() {\r\n    return {\r\n      page: {value: this.page + 1, field: this.pageAttr},\r\n      pageSize: {value:this.pageSize, field: this.pageSizeAttr},\r\n    }\r\n  }\r\n\r\n  setLength(res: any) {\r\n    if (typeof this.getLength === \"function\") {\r\n      this.length = this.getLength(res)\r\n    } else {\r\n      this.length = res[this.getLength]\r\n    }\r\n    this.arrows = {\r\n      next: !this.isLastPage(),\r\n      previous: !this.isFirstPage(),\r\n      start: !this.isFirstPage(),\r\n      end: !this.isLastPage(),\r\n    }\r\n\r\n    const aux = this.page * this.pageSize\r\n    const end = aux + this.pageSize\r\n    this.offset = {\r\n      start: this.length < 1 ? 0 : aux + 1,\r\n      end: end > this.length ? this.length : end,\r\n    }\r\n  }\r\n\r\n  goStart() {\r\n    if (this.isFirstPage()) {\r\n      return\r\n    }\r\n    this.page = 0\r\n    this.search()\r\n  }\r\n\r\n  search() {\r\n    this.service.setParamsPaginate(this.id, this.getPaginator())\r\n    this.service.searchApply(this.id);\r\n  }\r\n\r\n  goPrevious() {\r\n    if (this.isFirstPage()) {\r\n      return\r\n    }\r\n    this.page--\r\n    this.search()\r\n  }\r\n\r\n  goNext() {\r\n    if (this.isLastPage()) {\r\n      return\r\n    }\r\n    this.page++\r\n    this.search()\r\n  }\r\n\r\n  goEnd() {\r\n    if (this.isLastPage()) {\r\n      return\r\n    }\r\n    this.page = Math.ceil(this.length / this.pageSize) - 1\r\n    this.search()\r\n  }\r\n\r\n  isFirstPage() {\r\n    return this.page < 1\r\n  }\r\n\r\n  isLastPage() {\r\n    return this.page * this.pageSize + this.pageSize >= this.length\r\n  }\r\n\r\n  changePageSize(size: number) {\r\n    this.pageSize = size;\r\n    this.isOpenOption = false;\r\n    this.search()\r\n  }\r\n\r\n  isOpenOption = false;\r\n  toggleSelect(a?: boolean) {\r\n    if (a != undefined) {\r\n      this.isOpenOption = a\r\n    }\r\n    this.isOpenOption = !this.isOpenOption\r\n  }\r\n\r\n  loadPaginator() {\r\n    if (this.service.queryParams?.paginate) {\r\n      this.page = (this.service.queryParams?.paginate?.page.value || 1) - 1\r\n      this.pageSize = this.service.queryParams.paginate?.pageSize.value || 10\r\n    }\r\n    this.service.setParamsPaginate(this.id, this.getPaginator())\r\n  }\r\n}\r\n","<div style=\"display: flex;\" [style.justifyContent]=\"align\">\r\n  <div (click)=\"isOpenOption = false\" class=\"backpanel\" *ngIf=\"isOpenOption\" [style.zIndex]=\"backZIndex\"></div>\r\n  <div class=\"nsb-paginator\" style=\"font-size: .8rem;\">\r\n     <div class=\"nsb-paginator-container\">\r\n      <span>Item por pagina</span>\r\n      <div class=\"nsb-paginator-size\">\r\n         <div (click)=\"toggleSelect()\" class=\"nsb-paginator-size-label\">{{pageSize}} <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 -960 960 960\" width=\"24\"><path d=\"M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z\"/></svg></div>\r\n         <div [style.zIndex]=\"backZIndex\" [ngClass]=\"{'show': isOpenOption}\" class=\"nsb-paginator-size-options\">\r\n          <div (click)=\"changePageSize(option)\" *ngFor=\"let option of pageSizeOptions\">\r\n            {{option}}\r\n          </div>\r\n         </div>\r\n      </div>\r\n      <div>\r\n        {{offset.start}} - {{offset.end}} de {{length}}\r\n      </div>\r\n      <div class=\"nsb-paginator-arrow\">\r\n        <button (click)=\"goStart()\" [disabled]=\"!arrows.start\">\r\n          <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 -960 960 960\" width=\"24\"><path d=\"M240-240v-480h80v480h-80Zm440 0L440-480l240-240 56 56-184 184 184 184-56 56Z\"/></svg>\r\n        </button>\r\n        <button (click)=\"goPrevious()\" [disabled]=\"!arrows.previous\">\r\n          <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 -960 960 960\" width=\"24\"><path d=\"M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z\"/></svg>\r\n        </button>\r\n        <button (click)=\"goNext()\" [disabled]=\"!arrows.next\">\r\n          <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 -960 960 960\" width=\"24\"><path d=\"M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z\"/></svg>\r\n        </button>\r\n        <button (click)=\"goEnd()\" [disabled]=\"!arrows.end\">\r\n          <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24\" viewBox=\"0 -960 960 960\" width=\"24\"><path d=\"m280-240-56-56 184-184-184-184 56-56 240 240-240 240Zm360 0v-480h80v480h-80Z\"/></svg>\r\n        </button>\r\n      </div>\r\n     </div>\r\n  </div>\r\n</div>\r\n","import {\r\n  AfterContentInit,\r\n  Component,\r\n  ContentChild,\r\n  EventEmitter,\r\n  Inject,\r\n  Input,\r\n  OnDestroy,\r\n  OnInit,\r\n  Output,\r\n} from \"@angular/core\"\r\nimport { catchError, debounceTime, of, skip, Subject, switchMap, takeUntil } from \"rxjs\"\r\nimport { NgxSearchBarService } from \"../../ngx-search-bar.service\"\r\n// import { empty } from \"../../utils/empty\"\r\nimport { NgxSearchBarFormFilterComponent } from \"../ngx-search-bar-form-filter/ngx-search-bar-form-filter.component\"\r\nimport { NgxSearchBarPaginatorComponent } from \"../ngx-search-bar-paginator/ngx-search-bar-paginator.component\"\r\nimport { NGX_SEARCH_BAR_DATA, NgxSearchBarProvider } from \"../../utils/DATA_FOR_SEARCH_BAR\"\r\nimport { INsbParams } from \"../../interfaces/ngx-search-bar.types\"\r\n\r\n@Component({\r\n  // eslint-disable-next-line @angular-eslint/component-selector\r\n  selector: \"ngx-search-bar\",\r\n  templateUrl: \"./ngx-search-bar.component.html\",\r\n  styleUrls: [\"./ngx-search-bar.component.scss\"],\r\n})\r\nexport class NgxSearchBarComponent implements OnInit, AfterContentInit, OnDestroy {\r\n  \r\n\r\n  @ContentChild(NgxSearchBarFormFilterComponent) ngxFormFilter!: NgxSearchBarFormFilterComponent\r\n  @ContentChild(NgxSearchBarPaginatorComponent) ngxPaginator!: NgxSearchBarPaginatorComponent\r\n\r\n  @Input() baseUrl: string | null = null \r\n  @Input() placeholder: string = \"Search here\"\r\n  @Input() title: string | null = null\r\n  @Input() path: string = \"posts\"\r\n  @Input() isChangeUrl: boolean = false\r\n  @Input() autoInit: boolean = true\r\n  @Input() nameInputSearch: string = \"search\"\r\n  @Input() isBarExpand: boolean = false\r\n  @Input() size: number = 1\r\n  @Input() maxWidth: string = \"100%\";\r\n  @Input() isSticky: boolean  = true;\r\n  @Input() stickyTop: string  = \"0px\";\r\n  @Input() fnScrollTop: (() => void)| null = null;\r\n  @Input() notScroll: boolean = false;\r\n\r\n  @Output() data = new EventEmitter<any>()\r\n  @Output() loading = new EventEmitter<boolean>()\r\n\r\n  isLoading: boolean = false\r\n  destroy$: Subject<boolean> = new Subject<boolean>()\r\n  searchText: string = \"\"\r\n  subject: Subject<{ [key: string]: any }> = new Subject()\r\n\r\n  private id = Symbol();\r\n\r\n  constructor(\r\n    private service: NgxSearchBarService,\r\n    @Inject(NGX_SEARCH_BAR_DATA) private dataProvider: NgxSearchBarProvider\r\n  ) {\r\n    this.service.getQueryParams()\r\n    if (!this.fnScrollTop) {\r\n      this.fnScrollTop = this.dataProvider?.OPTIONS?.fnScrollTop || null\r\n    }\r\n\r\n    if (this.stickyTop === \"0px\" && this.dataProvider?.OPTIONS?.stickyTop) {\r\n      this.stickyTop = this.dataProvider?.OPTIONS?.stickyTop\r\n    }\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.service.addBarSearch(this.id, this)\r\n    this.subscribeForSearch();\r\n  }\r\n\r\n  ngAfterContentInit(): void {\r\n    if (this.ngxFormFilter) {\r\n      this.ngxFormFilter.setId(this.id);\r\n      this.isChangeUrl && this.ngxFormFilter.loadFilters();\r\n    }\r\n\r\n    if (this.ngxPaginator) {\r\n      this.ngxPaginator.setId(this.id);\r\n      this.isChangeUrl && this.ngxPaginator.loadPaginator();\r\n    }\r\n    if (this.isChangeUrl) {\r\n      this.searchText = this.service.queryParams.search || \"\"\r\n    }\r\n    this.autoInit ? this.search() : this.getParamsSend()\r\n  }\r\n\r\n  ngOnDestroy() {\r\n    this.service.removeBarSearch(this.id);\r\n    this.destroy$.next(true);\r\n    this.destroy$.unsubscribe()\r\n  }\r\n\r\n  scrollTop() {\r\n    try {\r\n      if (this.fnScrollTop && !this.notScroll) {\r\n        this.fnScrollTop()\r\n      }\r\n    } catch (error) {}\r\n  }\r\n\r\n  subscribeForSearch(): void {\r\n    this.subject\r\n      .pipe(\r\n        debounceTime(300),\r\n        takeUntil(this.destroy$),\r\n        switchMap((value) => this.searchObservable(value))\r\n      )\r\n      .subscribe({\r\n        next: (res) => {\r\n    \r\n          this.isLoading = false;\r\n          this.loading.emit(this.isLoading);\r\n          if (this.ngxPaginator) {\r\n            this.ngxPaginator.setLength(res);\r\n          }\r\n          if (this.isChangeUrl) {\r\n            this.service.setParamsSearch(this.id, this.searchText);\r\n            this.service.changeQueryParams(this.id);\r\n          }\r\n          this.data.emit(res);\r\n        },\r\n        error: () => {\r\n          this.isLoading = false;\r\n          this.loading.emit(this.isLoading);\r\n        },\r\n      })\r\n  }\r\n\r\n  searchObservable(params: { [key: string]: number } = {}) {\r\n    this.isLoading = true\r\n    this.scrollTop();\r\n    this.loading.emit(this.isLoading)\r\n    const p = this.getParamsSend(params)\r\n    return this.service.search(this.path, p, this.baseUrl).pipe(\r\n      catchError(() => {\r\n        this.isLoading = false\r\n        this.loading.emit(this.isLoading)\r\n        return of(null) as any\r\n      } )\r\n    )\r\n  }\r\n\r\n  search(params: { [key: string]: number } = {}) {\r\n    this.subject.next(params)\r\n  }\r\n\r\n  getParamsSend(params: { [key: string]: any } = {}): { [key: string]: any } {\r\n    const p: any = this.service.getBarSearch(this.id)?.params as any || {};\r\n    const paginate: { [key: string]: number } = {};\r\n    if (p?.paginate) {\r\n      paginate[p.paginate.page.field] = p.paginate.page.value;\r\n      paginate[p.paginate.pageSize.field] = p.paginate.pageSize.value;\r\n    }\r\n    return {\r\n      [this.nameInputSearch]: this.searchText,\r\n      ...(p?.form || {}),\r\n      ...(paginate),\r\n      ...params,\r\n    }\r\n  }\r\n}\r\n","<div>\r\n  <div [ngClass]=\"{'nsb-sticky': isSticky}\" [style.top]=\"stickyTop\" class=\"nsb\">\r\n    <div class=\"nsb-bar\">\r\n      <div class=\"nsb-bar-container\">\r\n        <h1 *ngIf=\"title\" class=\"nsb-title\">{{ title }}</h1>\r\n        <div [style.max-width]=\"maxWidth\" [ngStyle]=\"{'flex-grow': size}\" [ngClass]=\"{ 'nsb-full-width': isBarExpand }\" class=\"nsb-content-input-search\">\r\n          <button class=\"nsb-btn-search\" (click)=\"search()\">\r\n            <svg\r\n              stroke=\"currentColor\"\r\n              fill=\"currentColor\"\r\n              stroke-width=\"0\"\r\n              viewBox=\"0 0 16 16\"\r\n              height=\"10px\"\r\n              width=\"10px\"\r\n              xmlns=\"http://www.w3.org/2000/svg\">\r\n              <path\r\n                fill-rule=\"evenodd\"\r\n                d=\"M15.7 13.3l-3.81-3.83A5.93 5.93 0 0 0 13 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 0 0 0-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z\"></path>\r\n            </svg>\r\n          </button>\r\n          <input\r\n            [(ngModel)]=\"searchText\"\r\n            (keyup)=\"search()\"\r\n            [placeholder]=\"placeholder\"\r\n            autofocus\r\n            class=\"nsb-input-search\"\r\n            type=\"text\" />\r\n            <div class=\"nsb-line\"></div>\r\n          <ng-container *ngIf=\"isLoading\">\r\n            <div class=\"nsb-spinner\"></div>\r\n          </ng-container>\r\n          <ng-content select=\"ngx-search-bar-form-filter\"></ng-content>\r\n        </div>\r\n        <div class=\"nsb-bar-buttons\">\r\n          <ng-content select=\"[buttons]\"></ng-content>\r\n        </div>\r\n      </div>\r\n    </div>\r\n  </div>\r\n  \r\n  <div style=\"overflow: auto;\">\r\n    <ng-content></ng-content>\r\n  </div>\r\n  <ng-content select=\"ngx-search-bar-paginator\"></ng-content>\r\n</div>\r\n\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { NgxSearchBarComponent } from './components/ngx-search-bar/ngx-search-bar.component';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatPaginatorModule} from '@angular/material/paginator';\r\nimport { NgxSearchBarFormFilterComponent } from './components/ngx-search-bar-form-filter/ngx-search-bar-form-filter.component';\r\nimport { NgxSearchBarPaginatorComponent } from './components/ngx-search-bar-paginator/ngx-search-bar-paginator.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    NgxSearchBarComponent,\r\n    NgxSearchBarFormFilterComponent,\r\n    NgxSearchBarPaginatorComponent,\r\n  ],\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    HttpClientModule,\r\n    MatIconModule,\r\n    MatButtonModule,\r\n    MatChipsModule,\r\n    MatMenuModule,\r\n    MatBadgeModule,\r\n    MatProgressSpinnerModule,\r\n    MatPaginatorModule,\r\n  ],\r\n  exports: [\r\n    NgxSearchBarComponent,\r\n    NgxSearchBarFormFilterComponent,\r\n    NgxSearchBarPaginatorComponent,\r\n  ],\r\n  providers: [\r\n  ]\r\n})\r\nexport class NgxSearchBarModule { }\r\n","/*\r\n * Public API Surface of ngx-search-bar\r\n */\r\n\r\nexport * from './lib/ngx-search-bar.service';\r\nexport * from './lib/components/ngx-search-bar/ngx-search-bar.component';\r\nexport * from './lib/components/ngx-search-bar-form-filter/ngx-search-bar-form-filter.component';\r\nexport * from './lib/components/ngx-search-bar-paginator/ngx-search-bar-paginator.component';\r\nexport * from './lib/ngx-search-bar.module';\r\nexport * from './lib/utils/DATA_FOR_SEARCH_BAR';\r\n// export * from './lib/interfaces/structures';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NgxSearchBarService"],"mappings":"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"}