{"version":3,"file":"stock.mjs","sources":["../../../projects/stock/src/lib/rxjs-utils.ts","../../../projects/stock/src/lib/pagination.helper.ts","../../../projects/stock/src/lib/stock.service.ts","../../../projects/stock/src/lib/stock.component.ts","../../../projects/stock/src/lib/stock.module.ts","../../../projects/stock/src/lib/stock.model.ts","../../../projects/stock/src/lib/stockEvent.model.ts","../../../projects/stock/src/public-api.ts","../../../projects/stock/src/stock.ts"],"sourcesContent":["import { mergeMap } from 'rxjs/operators';\nimport { Observable, timer, throwError } from 'rxjs';\n\nexport const genericRetryStrategy = (\n  {\n    maxRetryAttempts = 3,\n    scalingDuration = 600,\n    excludedStatusCodes = []\n  }: {\n    maxRetryAttempts?: number;\n    scalingDuration?: number;\n    excludedStatusCodes?: number[];\n  } = {}\n) => (attempts: Observable<any>) => {\n  return attempts.pipe(\n    mergeMap((error, i) => {\n      const retryAttempt = i + 1;\n      // if maximum number of retries have been met\n      // or response is a status code we don't wish to retry, throw error\n      if (retryAttempt > maxRetryAttempts || excludedStatusCodes.find(e => e === error.status)) {\n        return throwError(error);\n      }\n      console.log(`Attempt ${retryAttempt}: retrying in ${retryAttempt * scalingDuration}ms`);\n      // retry after 1s, 2s, etc...\n      return timer(retryAttempt * scalingDuration);\n    })\n  );\n};","import { Injectable } from \"@angular/core\";\n\nexport abstract class PaginationHelper {\n  public static paginationParam(\n    sort: string,\n    paginationItem: any,\n    apiURL: string,\n    limit: number\n  ): string {\n    if (sort) {\n      if (paginationItem) {\n        apiURL += `&sort=${sort}`;\n      } else {\n        apiURL += `?sort=${sort}`;\n      }\n    }\n    if (limit) {\n      if (paginationItem || sort) {\n        apiURL += `&limit=${limit}`;\n      } else {\n        apiURL += `?limit=${limit}`;\n      }\n    }\n    return apiURL;\n  }\n}\n\nexport interface KeyItem {\n  lastId: string;\n  lastTs: string;\n  lastSk: string;\n  lastTypeName: string;\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient } from \"@angular/common/http\";\nimport { Subject, Observable, Subscriber } from \"rxjs\";\nimport { StockModel } from \"./stock.model\";\nimport { CategoryStockModel } from \"./categoryStock.model\";\nimport { retryWhen, catchError } from \"rxjs/operators\";\nimport { genericRetryStrategy } from \"./rxjs-utils\";\nimport { KeyItem, PaginationHelper } from \"./pagination.helper\";\nimport { HttpErrorResponse } from \"@angular/common/http\";\nimport { throwError } from \"rxjs/internal/observable/throwError\";\n\n@Injectable({\n  providedIn: \"root\",\n})\nexport class StockService {\n  apiUrl = \"\";\n  storeId = \"\";\n\n  lastEvaluatedKeyMap: Map<string, KeyItem> = new Map();\n  lastRequestName: string = \"\";\n\n  httpOptions = {};\n\n  private stockArraySubject = new Subject<Array<StockModel>>();\n  stockArray$ = this.stockArraySubject.asObservable();\n  stockModelArray: Array<StockModel> = [];\n  stockModelMap: Map<string, StockModel> = new Map();\n\n  private categoryStockModelArraySubject = new Subject<\n    Array<CategoryStockModel>\n  >();\n  categoryStockModelArray$ = this.categoryStockModelArraySubject.asObservable();\n  categoryStockModelArray: Array<CategoryStockModel> = [];\n  categoryStockModelMap: Map<string, CategoryStockModel> = new Map();\n\n  private categorySelectedSubject = new Subject<CategoryStockModel>();\n  categorySelected$ = this.categorySelectedSubject.asObservable();\n  categorySelected: CategoryStockModel = null;\n\n  constructor(private http: HttpClient) {}\n\n  init(url: string, storeId: string, key: string): any {\n    this.apiUrl = url;\n    this.storeId = storeId;\n    this.httpOptions = {\n      headers: new HttpHeaders({\n        \"Content-Type\": \"application/json\",\n        \"x-api-key\": key,\n      }),\n    };\n    this.lastEvaluatedKeyMap.clear();\n    this.lastRequestName = \"\";\n    this.stockModelArray = [];\n    this.categoryStockModelArray = [];\n    this.stockModelMap.clear();\n    this.categoryStockModelMap.clear();\n    this.categorySelected = null;\n  }\n\n  /**\n   * Check if last request had more Item in backend\n   * @returns true if more items are in backend, otherwise false.\n   */\n  public hasMoreItemLastRequest(): boolean {\n    if (this.lastRequestName !== null && this.lastRequestName !== undefined) {\n      if (this.lastEvaluatedKeyMap.get(this.lastRequestName) !== undefined) {\n        return true;\n      }\n    }\n    return false;\n  }\n\n  /**\n   * Will check the pagination and if it need to reset pagination and cache\n   * @param requestName\n   * @param loadNext\n   * @param observer\n   * @returns\n   */\n  private preparePagination(\n    requestName: string,\n    loadNext: boolean,\n    observer: Subscriber<any>\n  ): any {\n    // pagination\n    let latsKeyItem: KeyItem = this.lastEvaluatedKeyMap.get(requestName);\n\n    // if no lastKeyItem finded, that is the first request\n    if (latsKeyItem === undefined || latsKeyItem === null) {\n      this.stockModelArray = [];\n      this.stockModelMap.clear();\n    }\n    // it wasn't the last request - we reset\n    if (this.lastRequestName !== requestName) {\n      this.lastEvaluatedKeyMap.delete(requestName);\n      this.stockModelArray = [];\n      this.stockModelMap.clear();\n      latsKeyItem = null;\n    }\n    // we want next page but there are no more items to request\n    else if (\n      loadNext === true &&\n      (latsKeyItem === null || latsKeyItem === undefined)\n    ) {\n      console.log(\"all data loaded, no need to request again!\");\n      return observer.complete();\n    }\n\n    this.lastRequestName = requestName;\n\n    return latsKeyItem;\n  }\n\n  /**\n   * Set the selected category in cache. This is the user selection or default selection.\n   * Emit event on categoryStockModel$ Subject<CategoryStockModel>\n   * @param category\n   */\n  public setSelectedCategory(category: CategoryStockModel): void {\n    this.categorySelected = category;\n    this.categorySelectedSubject.next(this.categorySelected);\n  }\n\n  /**\n   * Get stocks for the current storeId\n   * Stocks will be put in Subject stockArraySubject (for event emit) and in stockModelMap\n   * @param emit default is true, will emit event on the stockModelArray$ Subject<Array<StockModel>>\n   * @param categoryId optional filter on categoryId\n   * @param sortDirectionAsc true if sort need to be Ascending, defualt is true, else false for descending sort\n   * @param itemsByPage max number of items per page, default is 20\n   * @param loadNext load next, default is false\n   * @returns Observable of StockModel[] or error\n   */\n  public loadStocks(\n    emit?: boolean,\n    categoryId?: string,\n    sortDirectionAsc?: boolean,\n    itemsByPage?: number,\n    loadNext?: boolean\n  ): Observable<any> {\n    return new Observable((observer) => {\n      let latsKeyItem = this.preparePagination(\n        \"getStocksByStoreId:categoryId=\" + categoryId,\n        loadNext,\n        observer\n      );\n      this.getStocksByStoreId(\n        categoryId,\n        sortDirectionAsc === false ? \"desc\" : \"asc\",\n        itemsByPage && itemsByPage > 0 ? itemsByPage : 20,\n        loadNext === true ? latsKeyItem : undefined\n      ).subscribe({\n        next: (data) => {\n          this.stockModelArray = (data as any).stocks;\n          this.stockModelMap.clear();\n\n          if (\n            this.stockModelArray !== null &&\n            this.stockModelArray !== undefined\n          ) {\n            this.stockModelArray.forEach((element) => {\n              this.stockModelMap.set(element.id, element);\n            });\n          }\n\n          let result = (data as any).stocks;\n\n          if (latsKeyItem && loadNext === true) {\n            // in case of pagination, we merge the previous data with the new data\n            this.stockModelArray = [...this.stockModelArray, ...result];\n          } else {\n            this.stockModelArray = result;\n          }\n\n          if (\n            this.stockModelArray !== null &&\n            this.stockModelArray !== undefined\n          ) {\n            this.stockModelArray.forEach((element) => {\n              this.stockModelMap.set(element.id, element);\n            });\n          }\n\n          let lastEvaluatedKey = (data as any).lastEvaluatedKey;\n\n          if (result && lastEvaluatedKey !== \"\") {\n            this.lastEvaluatedKeyMap.set(\n              \"getStocksByStoreId:categoryId=\" + categoryId,\n              lastEvaluatedKey\n            );\n          } else {\n            this.lastEvaluatedKeyMap.delete(\n              \"getStocksByStoreId:categoryId=\" + categoryId\n            );\n          }\n          if (emit === undefined || emit === null || emit === true) {\n            this.stockArraySubject.next(this.stockModelArray);\n          }\n          observer.next(this.stockModelArray);\n        },\n        error: (error) => {\n          this.stockModelArray = [];\n          this.stockModelMap.clear();\n          observer.error(error);\n        },\n        complete: () => {\n          observer.complete();\n        },\n      });\n    });\n  }\n\n  /**\n   * Get categories of stock for the current storeId\n   * Categories of stocks will be put in Subject stockArraySubject (for event emit) and in stockModelMap\n   * @param emit default is true, will emit event on the stockModelArray$ Subject<Array<StockModel>>\n   * @param sortDirectionAsc true if sort need to be Ascending, defualt is true, else false for descending sort\n   * @param itemsByPage max number of items per page, default is 20\n   * @param loadNext load next, default is false\n   * @returns Observable of StockModel[] or error\n   */\n  public loadCategoriesStock(\n    emit?: boolean,\n    sortDirectionAsc?: boolean,\n    itemsByPage?: number,\n    loadNext?: boolean\n  ): Observable<any> {\n    return new Observable((observer) => {\n      let latsKeyItem = this.preparePagination(\n        \"getCategoriesStockByStoreId\",\n        loadNext,\n        observer\n      );\n      this.getCategoriesStockByStoreId(\n        sortDirectionAsc === false ? \"desc\" : \"asc\",\n        itemsByPage && itemsByPage > 0 ? itemsByPage : 20,\n        loadNext === true ? latsKeyItem : undefined\n      ).subscribe({\n        next: (data) => {\n          this.categoryStockModelArray = (data as any).stockCategories;\n          this.categoryStockModelMap.clear();\n\n          if (\n            this.categoryStockModelArray !== null &&\n            this.categoryStockModelArray !== undefined\n          ) {\n            this.categoryStockModelArray.forEach((element) => {\n              this.categoryStockModelMap.set(element.id, element);\n            });\n          }\n\n          let result = (data as any).stockCategories;\n\n          if (latsKeyItem && loadNext === true) {\n            // in case of pagination, we merge the previous data with the new data\n            this.categoryStockModelArray = [\n              ...this.categoryStockModelArray,\n              ...result,\n            ];\n          } else {\n            this.categoryStockModelArray = result;\n          }\n\n          if (\n            this.categoryStockModelArray !== null &&\n            this.categoryStockModelArray !== undefined\n          ) {\n            this.categoryStockModelArray.forEach((element) => {\n              this.categoryStockModelMap.set(element.id, element);\n            });\n          }\n\n          let lastEvaluatedKey = (data as any).lastEvaluatedKey;\n\n          if (result && lastEvaluatedKey !== \"\") {\n            this.lastEvaluatedKeyMap.set(\n              \"getCategoriesStockByStoreId\",\n              lastEvaluatedKey\n            );\n          } else {\n            this.lastEvaluatedKeyMap.delete(\"getCategoriesStockByStoreId\");\n          }\n          if (emit === undefined || emit === null || emit === true) {\n            this.categoryStockModelArraySubject.next(\n              this.categoryStockModelArray\n            );\n          }\n          observer.next(this.categoryStockModelArray);\n        },\n        error: (error) => {\n          this.categoryStockModelArray = [];\n          this.categoryStockModelMap.clear();\n          observer.error(error);\n        },\n        complete: () => {\n          observer.complete();\n        },\n      });\n    });\n  }\n\n  /**\n   * Get stocks by store id\n   * @param categoryId\n   * @param sort\n   * @param limit\n   * @param paginationItem\n   * @returns\n   */\n  private getStocksByStoreId(\n    categoryId?: string,\n    sort?: string,\n    limit?: number,\n    paginationItem?: KeyItem\n  ): Observable<any> {\n    let apiURL = `${this.apiUrl}/stock/by-store/${this.storeId}`;\n    if (paginationItem) {\n      if (paginationItem.lastId && paginationItem.lastSk) {\n        apiURL += `?lastId=${paginationItem.lastId}&lastSk=${paginationItem.lastSk}`;\n      } else {\n        throw new Error(\"Invalid paginationItem\");\n      }\n    }\n    // add the sort & limit to URL\n    apiURL = PaginationHelper.paginationParam(\n      sort,\n      paginationItem,\n      apiURL,\n      limit\n    );\n\n    if (categoryId) {\n      if (paginationItem || sort || limit) {\n        apiURL += `&categoryId=${categoryId}`;\n      } else {\n        apiURL += `?categoryId=${categoryId}`;\n      }\n    }\n\n    return this.http.get(apiURL, this.httpOptions).pipe(\n      retryWhen(\n        genericRetryStrategy({\n          maxRetryAttempts: 3,\n          scalingDuration: 600,\n          excludedStatusCodes: [400, 401, 403, 404],\n        })\n      ),\n      catchError(this.handleError)\n    );\n  }\n\n  /**\n   * Load stock for the given id\n   * @param stockId stock id\n   * @returns Observable< StockModel | error>\n   */\n  public loadStockById(id: string): Observable<any> {\n    return new Observable((observer) => {\n      this.getStockById(id).subscribe({\n        next: (data) => {\n          let r: StockModel = data as any;\n          observer.next(r);\n        },\n        error: (error) => {\n          observer.error(error);\n        },\n        complete: () => {\n          observer.complete();\n        },\n      });\n    });\n  }\n\n  /**\n   * Will create the given stock\n   * @param item StockModel\n   * @returns\n   */\n  public createStock(stock: StockModel): Observable<any> {\n    return new Observable((observer) => {\n      this.createStockModel(stock).subscribe({\n        next: (data) => {\n          observer.next();\n        },\n        error: (error) => {\n          observer.error(error);\n        },\n        complete: () => {\n          observer.complete();\n        },\n      });\n    });\n  }\n\n  /**\n   * Will update the given stock\n   * @param item StockModel\n   * @returns\n   */\n  public updateStock(stock: StockModel): Observable<any> {\n    return new Observable((observer) => {\n      this.updateStockModel(stock).subscribe({\n        next: (data) => {\n          observer.next();\n        },\n        error: (error) => {\n          observer.error(error);\n        },\n        complete: () => {\n          observer.complete();\n        },\n      });\n    });\n  }\n\n  /**\n   * delete stock for the given id\n   * @param id id\n   * @return\n   */\n  public deleteStock(id: string): Observable<any> {\n    return new Observable((observer) => {\n      this.deleteStockById(id).subscribe({\n        error: (error) => {\n          observer.error(error);\n        },\n        complete: () => {\n          observer.complete();\n        },\n      });\n    });\n  }\n\n  /**\n   * Get Categories of stock by store id\n   * @param sort\n   * @param limit\n   * @param paginationItem\n   * @returns\n   */\n  private getCategoriesStockByStoreId(\n    sort?: string,\n    limit?: number,\n    paginationItem?: KeyItem\n  ): Observable<any> {\n    let apiURL = `${this.apiUrl}/stockcategory/by-store/${this.storeId}`;\n    if (paginationItem) {\n      if (paginationItem.lastId && paginationItem.lastSk) {\n        apiURL += `?lastId=${paginationItem.lastId}&lastSk=${paginationItem.lastSk}`;\n      } else {\n        throw new Error(\"Invalid paginationItem\");\n      }\n    }\n    // add the sort & limit to URL\n    apiURL = PaginationHelper.paginationParam(\n      sort,\n      paginationItem,\n      apiURL,\n      limit\n    );\n\n    return this.http.get(apiURL, this.httpOptions).pipe(\n      retryWhen(\n        genericRetryStrategy({\n          maxRetryAttempts: 3,\n          scalingDuration: 600,\n          excludedStatusCodes: [400, 401, 403, 404],\n        })\n      ),\n      catchError(this.handleError)\n    );\n  }\n\n  /**\n   * Load category stock for the given id\n   * @param id category stock id\n   * @returns Observable< StockModel | error>\n   */\n  public loadCategoryStockById(id: string): Observable<any> {\n    return new Observable((observer) => {\n      this.getCategoryStockById(id).subscribe({\n        next: (data) => {\n          let r: StockModel = data as any;\n          observer.next(r);\n        },\n        error: (error) => {\n          observer.error(error);\n        },\n        complete: () => {\n          observer.complete();\n        },\n      });\n    });\n  }\n\n  /**\n   * Will update the given Category stock\n   * @param item CategoryStockModel\n   * @returns\n   */\n  public updateCategoryStock(item: CategoryStockModel): Observable<any> {\n    return new Observable((observer) => {\n      this.updateCategoryStockModel(item).subscribe({\n        next: (data) => {\n          observer.next();\n        },\n        error: (error) => {\n          observer.error(error);\n        },\n        complete: () => {\n          observer.complete();\n        },\n      });\n    });\n  }\n\n  /**\n   * Will create the given Category stock\n   * @param item CategoryStockModel\n   * @returns\n   */\n  public createCategoryStock(item: CategoryStockModel): Observable<any> {\n    return new Observable((observer) => {\n      this.createCategoryStockModel(item).subscribe({\n        next: (data) => {\n          observer.next();\n        },\n        error: (error) => {\n          observer.error(error);\n        },\n        complete: () => {\n          observer.complete();\n        },\n      });\n    });\n  }\n\n  /**\n   * delete Category stock for the given id\n   * @param id id\n   * @return\n   */\n  public deleteCategoryStock(id: string): Observable<any> {\n    return new Observable((observer) => {\n      this.deleteCategoryStockById(id).subscribe({\n        error: (error) => {\n          observer.error(error);\n        },\n        complete: () => {\n          observer.complete();\n        },\n      });\n    });\n  }\n\n  /**\n   *\n   * @param id\n   * @returns\n   */\n  private getStockById(id: string): Observable<any> {\n    const apiURL = `${this.apiUrl}/stock/by-store/${this.storeId}/${id}`;\n    return this.http.get(apiURL, this.httpOptions).pipe(\n      retryWhen(\n        genericRetryStrategy({\n          maxRetryAttempts: 3,\n          scalingDuration: 600,\n          excludedStatusCodes: [400, 401, 403, 404],\n        })\n      ),\n      catchError(this.handleError)\n    );\n  }\n\n  private updateStockModel(body: StockModel): Observable<any> {\n    const apiURL = `${this.apiUrl}/stock/by-store/${this.storeId}/${body.id}`;\n    return this.http.put(apiURL, body, this.httpOptions).pipe(\n      retryWhen(\n        genericRetryStrategy({\n          maxRetryAttempts: 3,\n          scalingDuration: 600,\n          excludedStatusCodes: [400, 401, 403, 404],\n        })\n      ),\n      catchError(this.handleError)\n    );\n  }\n\n  private createStockModel(body: StockModel): Observable<any> {\n    const apiURL = `${this.apiUrl}/stock/by-store/${this.storeId}`;\n    return this.http.post(apiURL, JSON.stringify(body), this.httpOptions).pipe(\n      retryWhen(\n        genericRetryStrategy({\n          maxRetryAttempts: 3,\n          scalingDuration: 600,\n          excludedStatusCodes: [400, 401, 403, 404],\n        })\n      ),\n      catchError(this.handleError)\n    );\n  }\n\n  private deleteStockById(id: string): Observable<any> {\n    const apiURL = `${this.apiUrl}/stock/by-store/${this.storeId}/${id}`;\n\n    return this.http.delete(apiURL, this.httpOptions).pipe(\n      retryWhen(\n        genericRetryStrategy({\n          maxRetryAttempts: 3,\n          scalingDuration: 600,\n          excludedStatusCodes: [400, 401, 403, 404, 424],\n        })\n      ),\n      catchError(this.handleError)\n    );\n  }\n\n  /**\n   *\n   * @param id\n   * @returns\n   */\n  private getCategoryStockById(id: string): Observable<any> {\n    const apiURL = `${this.apiUrl}/stockcategory/by-store/${this.storeId}/${id}`;\n    return this.http.get(apiURL, this.httpOptions).pipe(\n      retryWhen(\n        genericRetryStrategy({\n          maxRetryAttempts: 3,\n          scalingDuration: 600,\n          excludedStatusCodes: [400, 401, 403, 404],\n        })\n      ),\n      catchError(this.handleError)\n    );\n  }\n\n  private updateCategoryStockModel(body: CategoryStockModel): Observable<any> {\n    const apiURL = `${this.apiUrl}/stockcategory/by-store/${this.storeId}/${body.id}`;\n    return this.http.put(apiURL, body, this.httpOptions).pipe(\n      retryWhen(\n        genericRetryStrategy({\n          maxRetryAttempts: 3,\n          scalingDuration: 600,\n          excludedStatusCodes: [400, 401, 403, 404],\n        })\n      ),\n      catchError(this.handleError)\n    );\n  }\n\n  private createCategoryStockModel(body: CategoryStockModel): Observable<any> {\n    const apiURL = `${this.apiUrl}/stockcategory/by-store/${this.storeId}`;\n    return this.http.post(apiURL, JSON.stringify(body), this.httpOptions).pipe(\n      retryWhen(\n        genericRetryStrategy({\n          maxRetryAttempts: 3,\n          scalingDuration: 600,\n          excludedStatusCodes: [400, 401, 403, 404],\n        })\n      ),\n      catchError(this.handleError)\n    );\n  }\n\n  private deleteCategoryStockById(id: string): Observable<any> {\n    const apiURL = `${this.apiUrl}/stockcategory/by-store/${this.storeId}/${id}`;\n\n    return this.http.delete(apiURL, this.httpOptions).pipe(\n      retryWhen(\n        genericRetryStrategy({\n          maxRetryAttempts: 3,\n          scalingDuration: 600,\n          excludedStatusCodes: [400, 401, 403, 404, 424],\n        })\n      ),\n      catchError(this.handleError)\n    );\n  }\n\n  private handleError(error: HttpErrorResponse) {\n    if (error.status === 0) {\n      // A client-side or network error occurred. Handle it accordingly.\n      console.error(\"An error occurred:\", error.error);\n    } else {\n      // The backend returned an unsuccessful response code.\n      // The response body may contain clues as to what went wrong.\n    }\n    // Return an observable with a user-facing error message.\n    return throwError(() => error);\n  }\n\n  /** Log a AuthorizationService message with the MessageService */\n  private log(message: string): void {\n    console.log(`AuthorizationService: ${message}`);\n  }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n  selector: 'lib-stock',\n  template: `\n    <p>\n      stock works!\n    </p>\n  `,\n  styles: [\n  ]\n})\nexport class StockComponent implements OnInit {\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","import { NgModule } from '@angular/core';\nimport { StockComponent } from './stock.component';\n\n\n\n@NgModule({\n  declarations: [StockComponent],\n  imports: [\n  ],\n  exports: [StockComponent]\n})\nexport class StockModule { }\n","export interface StockModel {\n  id: string;\n  typeName: string;\n  storeId: string;\n  name: string;\n  description: string;\n  parentId: string;\n  taxId: string;\n  uom: UnitOfMesureEnum;\n  ts: string;\n  updateTs: string;\n  variants: VariantModel[];\n}\n\nexport interface VariantModel {\n  ref: string;\n  types: VariantTypeValue[];\n  name: string;\n  description: string;\n  qty: number;\n  price: number;\n  gs1: string;\n  cover: string;\n  characteristics: VariantCharacteristicModel;\n  location: string;\n}\n\nexport interface VariantCharacteristicModel {\n  weigh: number;\n  length: number;\n  width: number;\n  height: number;\n}\n\nexport interface VariantTypeValue {\n  id: string;\n  value: string;\n}\n\nexport enum UnitOfMesureEnum {\n  kg = \"kg\",\n  g = \"g\",\n  l = \"l\",\n  ml = \"ml\",\n  cm = \"cm\",\n  m = \"m\",\n  unit = \"unit\",\n}\n","import { UnitOfMesureEnum } from \"./stock.model\";\n\nexport interface StockEventModel {\n  id: string;\n  typeName: string;\n  storeId: string;\n  comment: string;\n  parentId: string;\n  qty: number;\n  uom: UnitOfMesureEnum;\n  ts: string;\n  source: string;\n  from: string;\n  type: StockEventTypeEnum;\n  status: string;\n}\n\nexport enum StockEventTypeEnum {\n  in = \"in\",\n  out = \"out\",\n}\n","/*\n * Public API Surface of stock\n */\n\nexport * from \"./lib/stock.service\";\nexport * from \"./lib/stock.component\";\nexport * from \"./lib/stock.module\";\nexport * from \"./lib/stock.model\";\nexport * from \"./lib/categoryStock.model\";\nexport * from \"./lib/stockEvent.model\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["throwError"],"mappings":"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"}