{"version":3,"file":"smartstock-core.mjs","sources":["../../../projects/libs/src/components/verify-email-dialog.component.ts","../../../projects/libs/src/services/user.service.ts","../../../projects/libs/src/services/log.service.ts","../../../projects/libs/src/services/navigation.service.ts","../../../projects/libs/src/services/rbac.service.ts","../../../projects/libs/src/components/drawer-sub-menu.component.ts","../../../projects/libs/src/components/rbac.component.ts","../../../projects/libs/src/components/drawer.component.ts","../../../projects/libs/src/states/device.state.ts","../../../projects/libs/src/components/search-input.component.ts","../../../projects/libs/src/components/toolbar.component.ts","../../../projects/libs/src/components/no-stock-dialog.component.ts","../../../projects/libs/src/pipes/shops.pipe.ts","../../../projects/libs/src/components/on-fetch.component.ts","../../../projects/libs/src/components/data-not-ready.component.ts","../../../projects/libs/src/components/upload-files.component.ts","../../../projects/libs/src/components/dash-card.component.ts","../../../projects/libs/src/components/upload-file-progress.component.ts","../../../projects/libs/src/components/delete-dialog.component.ts","../../../projects/libs/src/states/cart-drawer-state.ts","../../../projects/libs/src/components/sidenav-layout.component.ts","../../../projects/libs/src/utils/bfast.util.ts","../../../projects/libs/src/services/media.service.ts","../../../projects/libs/src/services/message.service.ts","../../../projects/libs/src/states/files.state.ts","../../../projects/libs/src/components/image-preview.component.ts","../../../projects/libs/src/components/video-preview.component.ts","../../../projects/libs/src/components/audio-preview.component.ts","../../../projects/libs/src/components/audio-preview.html","../../../projects/libs/src/components/other-file-preview.component.ts","../../../projects/libs/src/components/file-browser-sheet.html","../../../projects/libs/src/components/file-browser-sheet.component.ts","../../../projects/libs/src/components/menu-sheet.component.ts","../../../projects/libs/src/components/bottom-nav.component.ts","../../../projects/libs/src/components/rbac-guard.component.ts","../../../projects/libs/src/pipes/fedha.pipe.ts","../../../projects/libs/src/components/payment-dialog.component.ts","../../../projects/libs/src/components/choose-printer.ts","../../../projects/libs/src/lib.module.ts","../../../projects/libs/src/services/printer.service.ts","../../../projects/libs/src/services/files.service.ts","../../../projects/libs/src/services/ipfs.service.ts","../../../projects/libs/src/services/syncs.service.ts","../../../projects/libs/src/services/smartstock-http-adapter.ts","../../../projects/libs/src/guards/active-shop.guard.ts","../../../projects/libs/src/guards/authentication.guard.ts","../../../projects/libs/src/guards/admin.guard.ts","../../../projects/libs/src/guards/manager.guard.ts","../../../projects/libs/src/guards/payment.guard.ts","../../../projects/libs/src/utils/date.util.ts","../../../projects/libs/src/utils/eventsNames.util.ts","../../../projects/libs/src/utils/security.util.ts","../../../projects/libs/src/public-api.ts","../../../projects/libs/src/smartstock-core.ts"],"sourcesContent":["import {Component} from '@angular/core';\nimport {MatDialogRef} from '@angular/material/dialog';\n\n@Component({\n  template: `\n    <div>\n      <div mat-dialog-title>Account Verification</div>\n      <div mat-dialog-content>\n        <p>\n          Your email is not verified we send a link to the email\n          <br>\n          you use when open account for you to verify your account\n        </p>\n      </div>\n      <div mat-dialog-actions>\n        <button (click)=\"dialogRef.close()\" mat-button color=\"primary\">Close</button>\n      </div>\n    </div>\n  `,\n})\nexport class VerifyEMailDialogComponent {\n  constructor(public readonly dialogRef: MatDialogRef<VerifyEMailDialogComponent>) {\n  }\n}\n","import {Injectable} from '@angular/core';\nimport {MatDialog} from '@angular/material/dialog';\nimport {ShopModel} from '../models/shop.model';\nimport {LibUserModel} from '../models/lib-user.model';\nimport {VerifyEMailDialogComponent} from '../components/verify-email-dialog.component';\nimport {ShopSettingsModel} from '../models/shop-settings.model';\nimport {auth, cache, functions} from 'bfast';\n\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class UserService {\n\n  constructor(private readonly dialog: MatDialog) {\n  }\n\n  async currentUser(): Promise<any> {\n    const user = await auth().currentUser();\n    if (user && user.role !== 'admin') {\n      return user;\n    }\n    if (user && user.verified === true) {\n      return user;\n    }\n    return await auth().setCurrentUser(undefined);\n  }\n\n  async isPersonalAccount(): Promise<boolean> {\n    const user = await this.currentUser();\n    return user && user.role === 'online';\n  }\n\n  async deleteUser(user: any): Promise<any> {\n    return functions().request('/functions/users/' + user.id).delete();\n  }\n\n  async removeActiveShop(): Promise<any> {\n    const smartStockCache = cache({database: 'smartstock', collection: 'config'});\n    return smartStockCache.remove('activeShop');\n  }\n\n  async login(user: { username: string, password: string }): Promise<LibUserModel> {\n    const authUser: any = await functions().request('/users/login').post({\n      username: user.username,\n      password: user.password\n    });\n    await this.removeActiveShop();\n    if (authUser && authUser.role !== 'admin') {\n      await this.updateCurrentUser(authUser);\n      return authUser;\n    }\n    if (authUser && authUser.verified === true) {\n      await this.updateCurrentUser(authUser);\n      return authUser;\n    }\n    await functions().request('/functions/users/reVerifyAccount/' + user.username).post();\n    this.dialog.open(VerifyEMailDialogComponent, {\n      closeOnNavigation: true,\n      disableClose: true\n    });\n    throw {code: 403, err: 'account not verified'};\n  }\n\n  async removeActiveUser(): Promise<any> {\n    return auth().setCurrentUser(undefined);\n  }\n\n  async logout(_): Promise<void> {\n    await auth().logOut();\n    await this.removeActiveUser();\n    await this.removeActiveShop();\n    return;\n  }\n\n  async register(user: LibUserModel): Promise<LibUserModel> {\n    if (user && user.role !== 'online') {\n      user.settings = {\n        printerFooter: 'Thank you',\n        printerHeader: '',\n        saleWithoutPrinter: true,\n        allowRetail: true,\n        allowWholesale: true,\n        currency: ''\n      };\n      user.ecommerce = {};\n      user.shops = [];\n    }\n    await this.removeActiveShop();\n    return functions().request('/functions/users/create').post(user);\n  }\n\n  resetPassword(username: string): Promise<any> {\n    return functions().request('/functions/users/resetPassword/' + encodeURIComponent(username)).get();\n  }\n\n  async refreshToken(): Promise<any> {\n    try {\n      return auth().currentUser();\n    } catch (e) {\n      return auth().setCurrentUser(undefined);\n    }\n  }\n\n  async addUser(user: LibUserModel): Promise<LibUserModel> {\n    const shops = user.shops ? user.shops : [];\n    if (shops.length === 0) {\n      throw {message: 'user must have at least 1 shop'};\n    }\n    user.applicationId = shops[0].applicationId;\n    user.projectId = shops[0].projectId;\n    user.businessName = shops[0].businessName;\n    user.settings = shops[0].settings;\n    user.ecommerce = shops[0].ecommerce;\n    shops.splice(0, 1);\n    user.shops = shops;\n    return functions().request('/functions/users/seller').post(user);\n  }\n\n  async getShops(user: LibUserModel): Promise<ShopModel[]> {\n    const shops = [];\n    user.shops.forEach(element => {\n      shops.push(element);\n    });\n    shops.push({\n      businessName: user.businessName,\n      projectId: user.projectId,\n      applicationId: user.applicationId,\n      projectUrlId: user.projectUrlId,\n      settings: user.settings ? user.settings : {},\n      ecommerce: user.ecommerce ? user.ecommerce : {},\n      street: user.street,\n      country: user.country,\n      region: user.region\n    });\n    return shops;\n  }\n\n  async updateShops(shops: ShopModel[], user: LibUserModel): Promise<boolean> {\n    const topLevelShop = shops.filter(x => x.projectId === user.projectId);\n    const otherShops = shops.filter(x => x.projectId !== user.projectId);\n    if (topLevelShop && Array.isArray(topLevelShop) && topLevelShop[0]) {\n      user.businessName = topLevelShop[0].businessName;\n      user.projectId = topLevelShop[0].projectId;\n      user.applicationId = topLevelShop[0].applicationId;\n      user.settings = topLevelShop[0].settings;\n      user.ecommerce = topLevelShop[0].ecommerce;\n      user.street = topLevelShop[0].street;\n      user.country = topLevelShop[0].country;\n      user.region = topLevelShop[0].region;\n    }\n    user.shops = otherShops as any;\n    await this.updateCurrentUser(user);\n    return true;\n  }\n\n  async getCurrentShop(): Promise<ShopModel> {\n    const smartStockCache = cache({database: 'smartstock', collection: 'config'});\n    const activeShop = await smartStockCache.get<ShopModel>('activeShop');\n    if (activeShop && activeShop.projectId && activeShop.applicationId) {\n      return activeShop;\n    } else {\n      throw {message: 'No Active Shop'};\n    }\n  }\n\n  async saveCurrentShop(shop: ShopModel): Promise<ShopModel> {\n    const smartStockCache = cache({database: 'smartstock', collection: 'config'});\n    return smartStockCache.set('activeShop', shop);\n  }\n\n  updatePassword(user: LibUserModel, password: string): Promise<any> {\n    return functions().request('/functions/users/password/' + user.id).put({\n      password\n    });\n  }\n\n  updateUser(user: LibUserModel, data: { [p: string]: any }): Promise<LibUserModel> {\n    return functions().request('/functions/users/' + user.id).put(data);\n  }\n\n  async updateCurrentUser(user: LibUserModel): Promise<LibUserModel> {\n    return auth().setCurrentUser(user);\n  }\n\n  changePasswordFromOld(data: { lastPassword: string; password: string; user: LibUserModel }): Promise<any> {\n    return functions().request('/functions/users/password/change/' + data.user.id).put({\n      lastPassword: data.lastPassword,\n      username: data.user.username,\n      password: data.password\n    });\n  }\n\n  async getSettings(): Promise<ShopSettingsModel> {\n    const activeShop = await this.getCurrentShop();\n    if (!activeShop || !activeShop.settings) {\n      return {\n        currency: 'Tsh',\n        module: {},\n        printerUrl: 'https://localhost:8080',\n        printerFooter: 'Thank you',\n        printerHeader: '',\n        saleWithoutPrinter: true,\n        allowRetail: true,\n        allowWholesale: true\n      };\n    }\n    return activeShop.settings;\n  }\n}\n","import { Injectable } from \"@angular/core\";\n\n@Injectable({\n  providedIn: \"root\"\n})\nexport class LogService {\n  i(message: any, tag?: string, debug = false): void {\n    if (debug) {\n      console.log(tag, message);\n    }\n  }\n\n  e(message: any, tag?: string, debug = false): void {\n    if (debug) {\n      console.error(tag, message);\n    }\n  }\n\n  w(message: any, tag?: string, debug = false): void {\n    if (debug) {\n      console.warn(tag, message);\n    }\n  }\n}\n","import {Injectable} from '@angular/core';\nimport {MenuModel} from '../models/menu.model';\n\n@Injectable({\n  providedIn: 'root'\n})\n\nexport class NavigationService {\n  public versionName = '';\n  public browser = true;\n  public selectedModuleName = '';\n  private pmenu: MenuModel[] = [];\n\n  addMenu(menu: MenuModel): void {\n    if (this.pmenu && Array.isArray(this.pmenu) && this.pmenu.length > 0) {\n      const index = this.pmenu.findIndex(value => value.name === menu.name);\n      if (index && index >= 0) {\n        this.pmenu[index] = menu;\n      } else {\n        this.pmenu.push(menu);\n      }\n    } else {\n      this.pmenu = [];\n      this.pmenu.push(menu);\n    }\n  }\n\n  removeMenu(name: string): boolean {\n    if (this.pmenu && Array.isArray(this.pmenu)) {\n      this.pmenu = this.pmenu.filter(x => x.name.trim() !== name.trim());\n      return true;\n    } else {\n      return false;\n    }\n  }\n\n  getMenu(): Array<MenuModel> {\n    return this.pmenu && Array.isArray(this.pmenu) ? this.pmenu : [];\n  }\n}\n","import {Injectable} from '@angular/core';\nimport {UserService} from './user.service';\nimport {LibUserModel} from '../models/lib-user.model';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class RbacService {\n  constructor(private readonly userService: UserService) {\n  }\n\n  async hasAccess(groups: string[] = [], pagePath: string): Promise<boolean> {\n    const user: LibUserModel = await this.userService.currentUser();\n    let groupAccess: boolean;\n    let pathAccess: boolean;\n    if (groups && groups.length === 1 && groups[0] === '*') {\n      groupAccess = true;\n    } else {\n      const result = groups.filter(x => x.toLowerCase().trim() === user?.role?.toLowerCase()?.trim());\n      groupAccess = (result && Array.isArray(result) && result.length === 1);\n    }\n    if (pagePath && pagePath.trim() !== '' && user && user.acl && Array.isArray(user.acl)) {\n      const result = user.acl.filter(x => x.toString().toLowerCase().trim().startsWith(pagePath.toLowerCase().trim()));\n      pathAccess = (result && Array.isArray(result) && result.length >= 1);\n    } else {\n      pathAccess = false;\n    }\n    return groupAccess || pathAccess;\n  }\n}\n","import {Component, Input, OnInit} from '@angular/core';\nimport {RbacService} from '../services/rbac.service';\nimport {SubMenuModel} from '../models/menu.model';\nimport {Router} from '@angular/router';\n\n@Component({\n  selector: 'app-drawer-sub-menu',\n  template: `\n    <mat-list-item (click)=\"goTo(page)\" style=\"padding-left: 20px; height: 35px\" *ngIf=\"hasAccess\">\n      <mat-icon matListIcon style=\"display: flex; justify-content: center; align-items: center\">\n        <div style=\"width: 8px; height: 3px; border-radius: 5px;background: black\"></div>\n      </mat-icon>\n      <p matLine>{{page.name}}</p>\n    </mat-list-item>\n  `\n})\n\nexport class DrawerSubMenuComponent implements OnInit {\n  @Input() page: SubMenuModel;\n  hasAccess = false;\n\n  constructor(private readonly rbacService: RbacService,\n              private readonly router: Router) {\n  }\n\n  ngOnInit(): void {\n    this.rbacService.hasAccess(this.page.roles, this.page.link).then(value => {\n      this.hasAccess = value;\n    }).catch(_ => {\n    });\n  }\n\n  goTo(page: SubMenuModel): void {\n    if (page.click) {\n      page.click();\n    } else {\n      this.router.navigateByUrl(page.link).catch(console.log);\n    }\n  }\n}\n","import {AfterViewInit, Component, ContentChild, Input, OnDestroy, OnInit, TemplateRef} from '@angular/core';\nimport {RbacService} from '../services/rbac.service';\n\n@Component({\n  selector: 'app-libs-rbac',\n  template: `\n    <div *ngIf=\"hasAccess\">\n      <ng-template [ngTemplateOutlet]=\"component\" #ref></ng-template>\n    </div>\n  `\n})\nexport class RbacComponent implements OnInit, OnDestroy, AfterViewInit {\n  hasAccess = false;\n  @Input() groups: string[] = [];\n  @Input() pagePath: string;\n  @ContentChild(TemplateRef) component: TemplateRef<any>;\n\n  constructor(public readonly rbacService: RbacService) {\n  }\n\n  async ngOnInit(): Promise<void> {\n    this.rbacService.hasAccess(this.groups, this.pagePath).then(value => {\n      this.hasAccess = value;\n    }).catch(console.log);\n  }\n\n  async ngAfterViewInit(): Promise<void> {\n  }\n\n  async ngOnDestroy(): Promise<void> {\n  }\n\n}\n","import {Component, Input, OnInit} from '@angular/core';\nimport {Observable, of} from 'rxjs';\nimport {UserService} from '../services/user.service';\nimport {LogService} from '../services/log.service';\nimport {ShopModel} from '../models/shop.model';\nimport {NavigationService} from '../services/navigation.service';\n\n@Component({\n  selector: 'app-drawer',\n  template: `\n    <div class=\"my-side-nav\">\n      <div>\n        <div\n          style=\"padding-bottom: 8px; display: flex; flex-direction: column; justify-content: center;align-items: center\">\n          <div style=\"padding: 16px; justify-content: center; align-items: center\">\n            <mat-icon *ngIf=\"!shop?.ecommerce?.logo\" class=\"logo\" color=\"primary\">store</mat-icon>\n            <img *ngIf=\"shop?.ecommerce?.logo\" alt=\"logo\" class=\"logo\" src=\"{{shop?.ecommerce?.logo}}\">\n          </div>\n          <span style=\"max-width: 150px; overflow: hidden; text-overflow: ellipsis;\"\n                *ngIf=\"shop\">{{shop.businessName}}</span>\n          <span style=\"width: 4px; height: 4px\"></span>\n          <button style=\"width: 80%\"\n                  color=\"primary\"\n                  class=\"btn-block\"\n                  routerLink=\"/account/shop\" mat-button>\n            Change Shop\n          </button>\n        </div>\n\n        <div class=\"d-flex justify-content-center align-items-center\">\n          <mat-divider></mat-divider>\n        </div>\n\n        <mat-nav-list>\n          <app-libs-rbac *ngFor=\"let modules of navigationService.getMenu()\"\n                         [groups]=\"modules.roles\" [pagePath]=\"modules.link\">\n            <ng-template>\n              <mat-list-item style=\"height: 38px\"\n                             (click)=\"shouldExpand(this.modules.name.toLowerCase().trim())\"\n                             [ngStyle]=\"this.navigationService.selectedModuleName.toLowerCase().trim() === modules.name.toLowerCase().trim()?selectedMenu:{}\"\n                             routerLink=\"{{modules.link}}\">\n                <mat-icon matListIcon matPrefix>{{modules.icon}}</mat-icon>\n                <span matLine style=\"margin-left: 8px\">{{modules.name}}</span>\n              </mat-list-item>\n              <div\n                *ngIf=\"modules.pages && modules.pages.length>0 && navigationService.selectedModuleName.toLowerCase().trim() === this.modules.name.toLowerCase().trim()\">\n                <app-drawer-sub-menu *ngFor=\"let page of modules.pages\" [page]=\"page\"></app-drawer-sub-menu>\n              </div>\n              <mat-divider></mat-divider>\n            </ng-template>\n          </app-libs-rbac>\n        </mat-nav-list>\n\n      </div>\n      <span style=\"flex-grow: 1\"></span>\n      <div style=\"display: flex; justify-content: center; align-items: center\">\n        <span>Version: {{versionNumber | async}}</span>\n      </div>\n    </div>\n  `,\n  styleUrls: ['../styles/admin-drawer.style.scss', '../styles/menu-sheet.component.scss']\n})\nexport class DrawerComponent implements OnInit {\n\n  constructor(private readonly userService: UserService,\n              private readonly logger: LogService,\n              public readonly navigationService: NavigationService) {\n  }\n\n  shop: ShopModel;\n  currentUser: any;\n  @Input() versionNumber: Observable<string> = of();\n  selectedMenu = {\n    background: '#1b5e20',\n    borderTopRightRadius: '50px',\n    borderBottomRightRadius: '50px',\n    color: 'white'\n  };\n\n  ngOnInit(): void {\n    this.versionNumber = of(this.navigationService.versionName);\n    this.userService.getCurrentShop().then(shop => {\n      this.shop = shop;\n    }).catch(reason => {\n      this.logger.i(reason);\n      this.shop = undefined;\n    });\n    this.userService.currentUser().then(user => {\n      this.currentUser = user;\n    });\n  }\n\n  shouldExpand(menuName: string): void {\n    this.navigationService.selectedModuleName = menuName.toLowerCase().trim();\n  }\n}\n","import {Injectable} from '@angular/core';\nimport {BreakpointObserver} from '@angular/cdk/layout';\nimport {BehaviorSubject} from 'rxjs';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class DeviceState {\n\n  isSmallScreen: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n  enoughWidth: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n  constructor(private readonly breakPoint: BreakpointObserver) {\n    this.breakPoint.observe('(max-width: 599px)').subscribe(value => {\n      if (value) {\n        this.isSmallScreen.next(value.matches);\n      } else {\n        this.isSmallScreen.next(false);\n      }\n    });\n    this.breakPoint.observe('(min-width: 1000px)').subscribe(value => {\n      if (value) {\n        this.enoughWidth.next(value.matches);\n      } else {\n        this.enoughWidth.next(false);\n      }\n    });\n  }\n\n}\n","import {Component, Input, OnInit} from '@angular/core';\nimport {UntypedFormControl} from '@angular/forms';\n\n@Component({\n  selector: 'app-search-input',\n  template: `\n    <div style=\"width: 100%\">\n      <input [formControl]=\"searchInputControl\"\n             *ngIf=\"showSearch\"\n             class=\"toolbar-input\" type=\"text\" placeholder=\"{{searchPlaceholder}}\">\n      <mat-progress-spinner style=\"display: inline-block; margin-left: -30px\"\n                            mode=\"indeterminate\" diameter=\"25\"\n                            color=\"primary\"\n                            *ngIf=\"showSearch && searchProgressFlag\"\n                            matSuffix>\n      </mat-progress-spinner>\n    </div>\n  `,\n  styleUrls: ['../styles/search-input.style.scss']\n})\nexport class SearchInputComponent implements OnInit {\n  @Input() searchInputControl: UntypedFormControl;\n  @Input() showSearch = false;\n  @Input() searchProgressFlag = false;\n  @Input() searchPlaceholder = 'Enter something...';\n\n  constructor() { }\n\n  ngOnInit(): void {\n  }\n\n}\n","import {Component, EventEmitter, Input, OnDestroy, OnInit, Output, TemplateRef} from '@angular/core';\nimport {MatSidenav} from '@angular/material/sidenav';\nimport {Router} from '@angular/router';\nimport {UntypedFormControl} from '@angular/forms';\nimport {debounceTime, distinctUntilChanged, takeUntil} from 'rxjs/operators';\nimport {UserService} from '../services/user.service';\nimport {LibUserModel} from '../models/lib-user.model';\nimport {Subject} from 'rxjs';\nimport {DeviceState} from '../states/device.state';\n\n@Component({\n  selector: 'app-toolbar',\n  template: `\n    <mat-toolbar\n      [ngStyle]=\"(deviceState.isSmallScreen | async)===true?{}:{position: 'sticky', top: 0, 'z-index': 3000000000}\"\n      color=\"{{(deviceState.isSmallScreen | async)===true?'':color?color:'primary'}}\"\n      [ngClass]=\"(deviceState.isSmallScreen | async)===true?'mat-elevation-z0':'mat-elevation-z2'\">\n      <mat-toolbar-row [class]=\"(deviceState.isSmallScreen | async)===true?'toolbar-position-mobile nav-mobile':''\">\n        <button routerLink=\"{{backLink}}\" *ngIf=\"hasBackRoute && backLink && (deviceState.isSmallScreen | async)===true\"\n                mat-icon-button>\n          <mat-icon>chevron_left</mat-icon>\n        </button>\n        <button mat-icon-button *ngIf=\"sidenav && getShoModule()\" (click)=\"sidenav.toggle()\">\n          <mat-icon>menu</mat-icon>\n        </button>\n        <span class=\"text-truncate\">{{heading}}</span>\n        <span *ngIf=\"(deviceState.isSmallScreen | async)===true\" style=\"flex: 1 1 auto\"></span>\n        <span *ngIf=\" (deviceState.isSmallScreen | async)===false && showSearch\" style=\"width: 16px\"></span>\n        <span *ngIf=\"(deviceState.isSmallScreen | async)===false && !showSearch\" style=\"flex: 1 1 auto\"></span>\n        <app-search-input [searchProgressFlag]=\"searchProgressFlag\"\n                          *ngIf=\"(deviceState.isSmallScreen | async)===false && showSearch\" style=\"flex: 1 1 auto\"\n                          [showSearch]=\"showSearch\"\n                          [searchInputControl]=\"searchInputControl\"\n                          [searchPlaceholder]=\"searchPlaceholder\">\n        </app-search-input>\n        <span *ngIf=\"(deviceState.isSmallScreen | async)===false && showSearch\" style=\"width: 16px\"></span>\n        <button *ngIf=\"cartDrawer\" mat-icon-button (click)=\"cartDrawer.toggle()\">\n          <mat-icon>{{cartIcon}}</mat-icon>\n        </button>\n        <ng-container *ngTemplateOutlet=\"visibleMenu\"></ng-container>\n        <button mat-icon-button [matMenuTriggerFor]=\"menu\">\n          <mat-icon>more_vert</mat-icon>\n        </button>\n        <mat-menu #menu>\n          <ng-container *ngTemplateOutlet=\"hiddenMenu\"></ng-container>\n          <button mat-menu-item (click)=\"logout()\">\n            <mat-icon>exit_to_app</mat-icon>\n            Logout\n          </button>\n          <button mat-menu-item routerLink=\"/account/profile\">\n            <mat-icon>person</mat-icon>\n            <span *ngIf=\"currentUser\">{{\"  \" + currentUser.firstname}}</span>\n          </button>\n        </mat-menu>\n      </mat-toolbar-row>\n    </mat-toolbar>\n    <mat-toolbar-row *ngIf=\"(deviceState.isSmallScreen | async)===true && showSearch\">\n      <app-search-input [searchProgressFlag]=\"searchProgressFlag\"\n                        style=\"flex: 1 1 auto\"\n                        [showSearch]=\"showSearch\"\n                        [searchInputControl]=\"searchInputControl\"\n                        [searchPlaceholder]=\"searchPlaceholder\">\n      </app-search-input>\n    </mat-toolbar-row>\n  `,\n  styleUrls: ['../styles/toolbar.style.scss']\n})\nexport class ToolbarComponent implements OnInit, OnDestroy {\n  @Input() visibleMenu: TemplateRef<any>;\n  @Input() hiddenMenu: TemplateRef<any>;\n  @Input() color = 'primary';\n  @Input() heading: string;\n  @Input() showProgress = false;\n  @Input() sidenav: MatSidenav;\n  @Input() hasBackRoute = false;\n  @Input() backLink: string;\n  @Input() cartDrawer: MatSidenav;\n  @Input() showSearch = false;\n  @Output() searchCallback = new EventEmitter<string>();\n  @Input() searchInputControl = new UntypedFormControl('');\n  @Input() searchPlaceholder: string | 'Type to search';\n  @Input() cartIcon = 'shopping_cart';\n  @Input() cartBadge = 0;\n  currentUser: LibUserModel;\n  @Input() searchProgressFlag = false;\n  destroy = new Subject();\n  @Input() showModuleMenu;\n\n  constructor(private readonly router: Router,\n              public readonly deviceState: DeviceState,\n              private readonly userService: UserService) {\n  }\n\n  ngOnInit(): void {\n    this.deviceState.isSmallScreen.pipe(takeUntil(this.destroy)).subscribe(value => {\n      // if (typeof this.showModuleMenu !== 'boolean') {\n      //   this.showModuleMenu = !value;\n      // }\n      if (this.sidenav && value === true) {\n        this.sidenav.close().catch(console.log);\n      }\n    });\n    this.userService.currentUser().then(user => {\n      this.currentUser = user;\n    });\n    this.searchInputControl.valueChanges.pipe(\n      debounceTime(500),\n      distinctUntilChanged()\n    ).subscribe(_ => {\n      this.searchCallback.emit(this.searchInputControl.value);\n    });\n  }\n\n  ngOnDestroy(): void {\n    this.destroy.next(true);\n  }\n\n  logout(): void {\n    this.userService.logout(null).finally(() => {\n      location.replace('/');\n    }).catch(console.log);\n  }\n\n  getShoModule(): boolean {\n    return !(this.hasBackRoute === true && this.backLink && this.deviceState.isSmallScreen.value === true);\n  }\n}\n","import {Component, Inject, OnInit} from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\n@Component({\n  selector: 'app-no-stock-dialog',\n  template: `\n    <div>\n      <h5>Hello!</h5>\n      <mat-card-subtitle mat-dialog-content>\n        StockModel is not available yet, add product or refresh your stock\n      </mat-card-subtitle>\n      <div mat-dialog-actions>\n        <button (click)=\"dialogRef.close()\" routerLink=\"/stock\" mat-flat-button color=\"primary\">Go To StockModel</button>\n        <button (click)=\"dialogRef.close()\" mat-flat-button color=\"warn\">Close</button>\n      </div>\n    </div>\n  `,\n})\nexport class NoStockDialogComponent implements OnInit {\n\n  constructor(public dialogRef: MatDialogRef<NoStockDialogComponent>,\n              @Inject(MAT_DIALOG_DATA) public data: any) {\n  }\n\n  ngOnInit() {\n  }\n\n}\n","import {Pipe, PipeTransform} from '@angular/core';\nimport {UserService} from '../services/user.service';\nimport {ShopModel} from '../models/shop.model';\n\n@Pipe({\n  name: 'shopsPipe'\n})\nexport class ShopsPipe implements PipeTransform {\n\n  constructor(private readonly userApi: UserService) {\n  }\n\n  async transform(shops: ShopModel[], ...args: unknown[]): Promise<string[]> {\n    try {\n      const shop = await this.userApi.getCurrentShop();\n      shops.push(shop);\n      return shops.map(value => value.businessName);\n    } catch (e) {\n      return [];\n    }\n  }\n\n}\n","import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';\n\n@Component({\n  selector: 'app-on-fetch',\n  template: `\n    <div *ngIf=\"!isLoading\" class=\"no-data-wrapper\">\n      <img src=\"/src/assets/img/empty.svg\" width=\"200px\" alt=\"\">\n      <h4>No Data</h4>\n      <button (click)=\"callBack()\" matTooltip=\"Click to refresh\" mat-raised-button mat-icon-button>\n        <mat-icon color=\"accent\">\n          refresh\n        </mat-icon>\n      </button>\n    </div>\n\n    <div *ngIf=\"isLoading\" class=\"no-data-wrapper\">\n      <img src=\"/src/assets/img/data.svg\" width=\"200px\" alt=\"\">\n      <h4>Fetching data...</h4>\n      <mat-progress-spinner color=\"accent\" mode=\"indeterminate\" [diameter]=\"30\"></mat-progress-spinner>\n    </div>\n  `,\n  styleUrls: ['../styles/on-fetch.style.scss']\n})\nexport class OnFetchComponent implements OnInit {\n\n  @Output() refreshCallback = new EventEmitter();\n  @Input() isLoading: boolean;\n\n  constructor() {\n  }\n\n  ngOnInit() {\n  }\n\n  callBack() {\n    this.refreshCallback.emit();\n  }\n\n}\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n  selector: 'app-data-not-ready',\n  template: `\n    <div *ngIf=\"!isLoading\" style=\"margin-top: 10px; margin-bottom: 10px\"\n         class=\"d-flex flex-column justify-content-center align-items-center\">\n      <img alt=\"no data\"\n           src=\"data:image/svg+xml;base64,PHN2ZyBpZD0iYjIxNjEzYzktMmJmMC00ZDM3LWJlZjAtM2IxOTNkMzRmYzVkIiBkYXRhLW5hbWU9IkxheWVyIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjY0Ny42MzYyNiIgaGVpZ2h0PSI2MzIuMTczODMiIHZpZXdCb3g9IjAgMCA2NDcuNjM2MjYgNjMyLjE3MzgzIj48cGF0aCBkPSJNNjg3LjMyNzksMjc2LjA4NjkxSDUxMi44MTgxM2ExNS4wMTgyOCwxNS4wMTgyOCwwLDAsMC0xNSwxNXYzODcuODVsLTIsLjYxMDA1LTQyLjgxMDA2LDEzLjExYTguMDA2NzYsOC4wMDY3NiwwLDAsMS05Ljk4OTc0LTUuMzFMMzE1LjY3OCwyNzEuMzk2OTFhOC4wMDMxMyw4LjAwMzEzLDAsMCwxLDUuMzEwMDYtOS45OWw2NS45NzAyMi0yMC4yLDE5MS4yNS01OC41NCw2NS45Njk3Mi0yMC4yYTcuOTg5MjcsNy45ODkyNywwLDAsMSw5Ljk5MDI0LDUuM2wzMi41NDk4LDEwNi4zMloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yNzYuMTgxODcgLTEzMy45MTMwOSkiIGZpbGw9IiNmMmYyZjIiLz48cGF0aCBkPSJNNzI1LjQwOCwyNzQuMDg2OTFsLTM5LjIzLTEyOC4xNGExNi45OTM2OCwxNi45OTM2OCwwLDAsMC0yMS4yMy0xMS4yOGwtOTIuNzUsMjguMzlMMzgwLjk1ODI3LDIyMS42MDY5M2wtOTIuNzUsMjguNGExNy4wMTUyLDE3LjAxNTIsMCwwLDAtMTEuMjgwMjgsMjEuMjNsMTM0LjA4MDA4LDQzNy45M2ExNy4wMjY2MSwxNy4wMjY2MSwwLDAsMCwxNi4yNjAyNiwxMi4wMywxNi43ODkyNiwxNi43ODkyNiwwLDAsMCw0Ljk2OTcyLS43NWw2My41ODAwOC0xOS40NiwyLS42MnYtMi4wOWwtMiwuNjEtNjQuMTY5OTIsMTkuNjVhMTUuMDE0ODksMTUuMDE0ODksMCwwLDEtMTguNzMtOS45NWwtMTM0LjA2OTgzLTQzNy45NGExNC45NzkzNSwxNC45NzkzNSwwLDAsMSw5Ljk0OTcxLTE4LjczbDkyLjc1LTI4LjQsMTkxLjI0MDI0LTU4LjU0LDkyLjc1LTI4LjRhMTUuMTU1NTEsMTUuMTU1NTEsMCwwLDEsNC40MDk2Ni0uNjYsMTUuMDE0NjEsMTUuMDE0NjEsMCwwLDEsMTQuMzIwMzIsMTAuNjFsMzkuMDQ5OCwxMjcuNTYuNjIwMTIsMmgyLjA4MDA4WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI3Ni4xODE4NyAtMTMzLjkxMzA5KSIgZmlsbD0iIzNmM2Q1NiIvPjxwYXRoIGQ9Ik0zOTguODYyNzksMjYxLjczMzg5YTkuMDE1Nyw5LjAxNTcsMCwwLDEtOC42MTEzMy02LjM2NjdsLTEyLjg4MDM3LTQyLjA3MTc4YTguOTk4ODQsOC45OTg4NCwwLDAsMSw1Ljk3MTItMTEuMjQwMjNsMTc1LjkzOS01My44NjM3N2E5LjAwODY3LDkuMDA4NjcsMCwwLDEsMTEuMjQwNzIsNS45NzA3bDEyLjg4MDM3LDQyLjA3MjI3YTkuMDEwMjksOS4wMTAyOSwwLDAsMS01Ljk3MDcsMTEuMjQwNzJMNDAxLjQ5MjE5LDI2MS4zMzg4N0E4Ljk3Niw4Ljk3NiwwLDAsMSwzOTguODYyNzksMjYxLjczMzg5WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI3Ni4xODE4NyAtMTMzLjkxMzA5KSIgZmlsbD0iIzBmYmYwMCIvPjxjaXJjbGUgY3g9IjE5MC4xNTM1MSIgY3k9IjI0Ljk1NDY1IiByPSIyMCIgZmlsbD0iIzBmYmYwMCIvPjxjaXJjbGUgY3g9IjE5MC4xNTM1MSIgY3k9IjI0Ljk1NDY1IiByPSIxMi42NjQ2MiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik04NzguODE4MzYsNzE2LjA4NjkxaC0zMzhhOC41MDk4MSw4LjUwOTgxLDAsMCwxLTguNS04LjV2LTQwNWE4LjUwOTUxLDguNTA5NTEsMCwwLDEsOC41LTguNWgzMzhhOC41MDk4Miw4LjUwOTgyLDAsMCwxLDguNSw4LjV2NDA1QTguNTEwMTMsOC41MTAxMywwLDAsMSw4NzguODE4MzYsNzE2LjA4NjkxWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI3Ni4xODE4NyAtMTMzLjkxMzA5KSIgZmlsbD0iI2U2ZTZlNiIvPjxwYXRoIGQ9Ik03MjMuMzE4MTMsMjc0LjA4NjkxaC0yMTAuNWExNy4wMjQxMSwxNy4wMjQxMSwwLDAsMC0xNywxN3Y0MDcuOGwyLS42MXYtNDA3LjE5YTE1LjAxODI4LDE1LjAxODI4LDAsMCwxLDE1LTE1SDcyMy45MzgyNVptMTgzLjUsMGgtMzk0YTE3LjAyNDExLDE3LjAyNDExLDAsMCwwLTE3LDE3djQ1OGExNy4wMjQxLDE3LjAyNDEsMCwwLDAsMTcsMTdoMzk0YTE3LjAyNDEsMTcuMDI0MSwwLDAsMCwxNy0xN3YtNDU4QTE3LjAyNDExLDE3LjAyNDExLDAsMCwwLDkwNi44MTgxMywyNzQuMDg2OTFabTE1LDQ3NWExNS4wMTgyOCwxNS4wMTgyOCwwLDAsMS0xNSwxNWgtMzk0YTE1LjAxODI4LDE1LjAxODI4LDAsMCwxLTE1LTE1di00NThhMTUuMDE4MjgsMTUuMDE4MjgsMCwwLDEsMTUtMTVoMzk0YTE1LjAxODI4LDE1LjAxODI4LDAsMCwxLDE1LDE1WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTI3Ni4xODE4NyAtMTMzLjkxMzA5KSIgZmlsbD0iIzNmM2Q1NiIvPjxwYXRoIGQ9Ik04MDEuODE4MzYsMzE4LjA4NjkxaC0xODRhOS4wMTAxNSw5LjAxMDE1LDAsMCwxLTktOXYtNDRhOS4wMTAxNiw5LjAxMDE2LDAsMCwxLDktOWgxODRhOS4wMTAxNiw5LjAxMDE2LDAsMCwxLDksOXY0NEE5LjAxMDE1LDkuMDEwMTUsMCwwLDEsODAxLjgxODM2LDMxOC4wODY5MVoiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yNzYuMTgxODcgLTEzMy45MTMwOSkiIGZpbGw9IiMwZmJmMDAiLz48Y2lyY2xlIGN4PSI0MzMuNjM2MjYiIGN5PSIxMDUuMTczODMiIHI9IjIwIiBmaWxsPSIjMGZiZjAwIi8+PGNpcmNsZSBjeD0iNDMzLjYzNjI2IiBjeT0iMTA1LjE3MzgzIiByPSIxMi4xODE4NyIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==\"\n           width=\"{{width}}\" height=\"{{height}}\"/>\n      <span>Data is not ready yet</span>\n    </div>\n    <div *ngIf=\"isLoading\"\n         style=\"width: 100%; height: 100%; display: flex; justify-content: center; align-items: center\">\n      <mat-progress-spinner mode=\"indeterminate\" [diameter]=\"30\"></mat-progress-spinner>\n    </div>\n  `,\n})\nexport class DataNotReadyComponent implements OnInit {\n  @Input() width = 200;\n  @Input() height = 200;\n  @Input() isLoading = false;\n\n  constructor() {\n  }\n\n  ngOnInit(): void {\n  }\n\n}\n","import {Component, Input, OnInit} from '@angular/core';\nimport {UntypedFormControl, Validators} from '@angular/forms';\n\n@Component({\n  selector: 'app-upload-files',\n  template: `\n    <div style=\"display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; padding: 8px\">\n      <div *ngFor=\"let file of files; let i =index\"\n           style=\"display: flex; flex-direction: row; flex-wrap: nowrap; align-items: center\">\n        <mat-card style=\"height: 50px; margin: 5px; display: flex; flex-direction: row; align-items: center\">\n          <span style=\"max-width: 200px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis\">\n            {{file.name}}\n          </span>\n          <span style=\"width: 10px\"></span>\n          <button mat-icon-button style=\"display: inline-block\" (click)=\"removeFile($event, i)\">\n            <mat-icon color=\"warn\">delete</mat-icon>\n          </button>\n        </mat-card>\n      </div>\n      <mat-card (click)=\"uploadFile.click()\" matRipple\n                style=\"width: 120px; height: 50px; margin: 5px; align-items: center; display: flex; flex-direction: row\">\n        <mat-icon>attachment</mat-icon>\n        <span>Select File</span>\n      </mat-card>\n    </div>\n\n    <input style=\"display: none\" #uploadFile [multiple]=\"false\" type=\"file\" (change)=\"uploadFiles($event,uploadFile)\">\n  `,\n})\nexport class UploadFilesComponent implements OnInit {\n  @Input() files: { name: string, type: string, url: File, size: string }[] = [];\n  @Input() multiple = true;\n  @Input() uploadFileFormControl: UntypedFormControl = new UntypedFormControl([], [Validators.nullValidator, Validators.required]);\n\n  constructor() {\n  }\n\n  ngOnInit(): void {\n  }\n\n  removeFile($event: MouseEvent, i: number): void {\n    $event.preventDefault();\n    this.files.splice(i, 1);\n  }\n\n  async uploadFiles($event: Event, uploadFile: HTMLInputElement): Promise<void> {\n    // @ts-ignore\n    const files: FileList = $event.target.files;\n    if (files.item(0)) {\n      const file: File = files.item(0);\n      if (this.files.length === 0) {\n        this.files.push({\n          name: file.name,\n          type: file.type,\n          size: (file.size / (1024 * 1024)).toFixed(0),\n          url: file,\n        });\n      } else if (this.multiple === true) {\n        this.files = this.files.filter(value => file.name !== value.name);\n        this.files.push({\n          name: file.name,\n          type: file.type,\n          size: (file.size / (1024 * 1024)).toFixed(0),\n          url: file\n        });\n      } else {\n        this.files.splice(0);\n        this.files.push({\n          name: file.name,\n          type: file.type,\n          size: (file.size / (1024 * 1024)).toFixed(0),\n          url: file,\n        });\n      }\n      this.uploadFileFormControl.setValue(this.files);\n      uploadFile.value = '';\n    }\n  }\n\n  // private async readFileContent(file: File): Promise<string> {\n  //   return new Promise((resolve, reject) => {\n  //     const fileReader = new FileReader();\n  //     fileReader.onload = ev => {\n  //       resolve(ev.target.result.toString());\n  //     };\n  //     fileReader.onerror = _ => {\n  //       reject('Fails to read file');\n  //     };\n  //     fileReader.readAsDataURL(file);\n  //   });\n  // }\n\n}\n","import {Component, Input, OnInit, TemplateRef} from '@angular/core';\nimport {Router} from '@angular/router';\n\n@Component({\n  selector: 'app-dash-card',\n  template: `\n    <mat-card class=\"d-flex flex-column\" [ngStyle]=\"{height:height+'px'}\">\n      <mat-card-header style=\"margin: 0\">\n        <span>{{title}}</span>\n        <span style=\"margin-left: 8px\"></span>\n        <mat-icon matTooltip=\"{{description}}\">info_outline</mat-icon>\n      </mat-card-header>\n      <mat-card-content class=\"flex-grow-1\">\n        <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n      </mat-card-content>\n      <hr *ngIf=\"reportLink\" style=\"width: 100%; margin: 0; padding: 0\">\n      <mat-card-actions *ngIf=\"reportLink\" class=\"d-flex flex-row\">\n        <span style=\"flex: 1 1 auto\"></span>\n        <button (click)=\"goTo()\"color=\"primary\" mat-button>\n          EXPLORE REPORT\n          <mat-icon matSuffix>arrow_forward</mat-icon>\n        </button>\n      </mat-card-actions>\n    </mat-card>\n  `,\n})\nexport class DashCardComponent implements OnInit {\n  @Input() title = '';\n  @Input() height = 300;\n  @Input() description = '';\n  @Input() reportLink: string;\n  @Input() content: TemplateRef<any>;\n\n  constructor(private readonly router: Router) {\n  }\n\n  ngOnInit(): void {\n  }\n\n  goTo() {\n    if (this.reportLink) {\n      this.router.navigateByUrl(this.reportLink).catch(console.log);\n    }\n  }\n}\n","import {Component, Input, OnInit} from '@angular/core';\n\n@Component({\n  selector: 'app-upload-file-progress',\n  template: `\n    <div *ngIf=\"onUploadFlag\">\n      <mat-progress-bar [bufferValue]=\"100\" mode=\"determinate\" [value]=\"uploadPercentage\"></mat-progress-bar>\n      <span>{{name}} {{uploadPercentage}}%</span>\n    </div>\n  `,\n})\nexport class UploadFileProgressComponent implements OnInit {\n  @Input() name = '';\n  @Input() onUploadFlag = false;\n  @Input() uploadPercentage = 0;\n\n  constructor() {\n  }\n\n  ngOnInit(): void {\n  }\n}\n","import {StockModel} from '../models/stock.model';\nimport {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';\nimport {Component, Inject} from '@angular/core';\n\n@Component({\n  selector: 'app-lisb-dialog-delete',\n  template: `\n    <div class=\"container\">\n      <div class=\"row\">\n        <div class=\"col-12\">\n          <mat-panel-title class=\"text-center\">\n            Your about to delete :  <b>{{' '+ data.product}}</b>\n          </mat-panel-title>\n        </div>\n      </div>\n      <div class=\"d-flex justify-content-center\">\n        <div class=\"align-self-center\" style=\"margin: 8px\">\n          <button color=\"primary\"  mat-button (click)=\"delete(data)\">Delete</button>\n        </div>\n        <div class=\"alert-secondary\" style=\"margin: 8px\">\n          <button color=\"primary\" mat-button (click)=\"cancel()\">Cancel</button>\n        </div>\n      </div>\n    </div>\n  `\n})\nexport class DialogDeleteComponent {\n  constructor(\n    public dialogRef: MatDialogRef<DialogDeleteComponent>,\n    @Inject(MAT_DIALOG_DATA) public data: StockModel) {\n  }\n\n  delete(stock: StockModel): any {\n    this.dialogRef.close(stock);\n  }\n\n  cancel(): any {\n    this.dialogRef.close('no');\n  }\n}\n","import {Injectable} from '@angular/core';\nimport {BehaviorSubject} from 'rxjs';\nimport {MatSidenav} from '@angular/material/sidenav';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class CartDrawerState{\n  readonly drawer = new BehaviorSubject<MatSidenav>(null);\n}\n","import {\n  AfterViewInit,\n  Component,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n  TemplateRef,\n  ViewChild\n} from '@angular/core';\nimport {Observable, Subject} from 'rxjs';\nimport {MatSidenav} from '@angular/material/sidenav';\nimport {UntypedFormControl} from '@angular/forms';\nimport {DeviceState} from '../states/device.state';\nimport {takeUntil} from 'rxjs/operators';\nimport {CartDrawerState} from '../states/cart-drawer-state';\nimport {MenuModel} from '../models/menu.model';\n\n@Component({\n  selector: 'app-layout-sidenav',\n  template: `\n    <mat-sidenav-container>\n      <mat-sidenav #sidenav [mode]=\"leftDrawerMode\" [opened]=\"leftDrawerOpened\" position=\"start\">\n        <ng-container *ngTemplateOutlet=\"leftDrawer\"></ng-container>\n      </mat-sidenav>\n      <mat-sidenav #cartDrawer [mode]=\"rightDrawerMode\" [opened]=\"rightDrawerOpened\" position=\"end\">\n        <ng-container *ngTemplateOutlet=\"rightDrawer\"></ng-container>\n      </mat-sidenav>\n      <mat-sidenav-content class=\"sidenav-container\">\n        <app-toolbar [sidenav]=\"leftDrawer?sidenav:undefined\"\n                     [showProgress]=\"showProgress\"\n                     [hasBackRoute]=\"hasBackRoute\"\n                     [backLink]=\"backLink\"\n                     [cartDrawer]=\"rightDrawer?cartDrawer:undefined\"\n                     [showSearch]=\"showSearch\"\n                     [color]=\"color\"\n                     [showModuleMenu]=\"showModuleMenu\"\n                     (searchCallback)=\"searchCallback.emit($event)\"\n                     [searchInputControl]=\"searchInputControl\"\n                     [searchPlaceholder]=\"searchPlaceholder\"\n                     [searchProgressFlag]=\"searchProgressFlag\"\n                     [visibleMenu]=\"visibleMenu\"\n                     [hiddenMenu]=\"hiddenMenu\"\n                     [cartIcon]=\"cartIcon\"\n                     [cartBadge]=\"cartBadge\"\n                     [heading]=\"heading\">\n        </app-toolbar>\n        <div class=\"sidenav-body\">\n          <ng-container *ngTemplateOutlet=\"body\"></ng-container>\n        </div>\n<!--        <app-bottom-nav [first4]=\"first4\" *ngIf=\"isSmallScreen && showBottomBar\"></app-bottom-nav>-->\n      </mat-sidenav-content>\n    </mat-sidenav-container>\n  `,\n  styleUrls: ['../styles/index.style.scss']\n})\nexport class SidenavLayoutComponent implements OnInit, OnDestroy, AfterViewInit {\n  @Input() first4: MenuModel[];\n  @Input() showModuleMenu;\n  @Input() showBottomBar = true;\n  @Input() visibleMenu: TemplateRef<any>;\n  @Input() hiddenMenu: TemplateRef<any>;\n  @Input() body: TemplateRef<any>;\n  @Input() version: Observable<string>;\n  @Input() isMobile = false;\n  @Input() heading: string;\n  @Input() showProgress = false;\n  @Input() sidenav: MatSidenav;\n  @Input() hasBackRoute = false;\n  @Input() backLink: string;\n  @Input() rightDrawer: TemplateRef<any>;\n  @Input() showSearch = false;\n  @Output() searchCallback = new EventEmitter<string>();\n  @Input() searchInputControl = new UntypedFormControl('');\n  @Input() searchPlaceholder: string | 'Type to search';\n  @Input() searchProgressFlag = false;\n  @Input() leftDrawer: TemplateRef<any>;\n  @Input() leftDrawerMode: 'over' | 'side' | 'push' = 'over';\n  @Input() rightDrawerMode: 'over' | 'side' | 'push' = 'side';\n  @Input() leftDrawerOpened = false;\n  @Input() rightDrawerOpened = false;\n  @Input() color = 'primary';\n  @ViewChild('cartDrawer') cartDrawer: MatSidenav;\n  @Input() cartIcon = 'shopping_cart';\n  @Input() cartBadge = 0;\n  destroy = new Subject();\n  isSmallScreen = false;\n\n  constructor(private readonly deviceState: DeviceState,\n              private readonly cartDrawerState: CartDrawerState) {\n  }\n\n  ngOnDestroy(): void {\n    this.destroy.next('done');\n    this.cartDrawerState.drawer.next(null);\n  }\n\n  ngOnInit(): void {\n    this.deviceState.isSmallScreen\n      .pipe(takeUntil(this.destroy))\n      .subscribe(value => {\n        this.isSmallScreen = value;\n      });\n  }\n\n  ngAfterViewInit(): void {\n    this.cartDrawerState.drawer.next(this.cartDrawer);\n  }\n}\n","export function getDaasAddress(shop: any, baseUrl = 'https://smartstock-faas.bfast.fahamutech.com'): string {\n  return `${baseUrl}/shop/${shop.projectId}/${shop.applicationId}`;\n}\n\nexport function getFaasAddress(shop: any, baseUrl = 'https://smartstock-faas.bfast.fahamutech.com'): string {\n  return baseUrl;\n}\n","import { Injectable } from \"@angular/core\";\nimport { FileModel } from \"../models/file.model\";\nimport { UserService } from \"./user.service\";\nimport { database, storage } from \"bfast\";\nimport { getDaasAddress } from \"../utils/bfast.util\";\n\n@Injectable({\n  providedIn: \"root\"\n})\nexport class MediaService {\n  constructor(private readonly userService: UserService) {}\n\n  private static getFileCategory(type1: string): string {\n    try {\n      if (!type1) {\n        return \"unknown\";\n      }\n      const fileTypes = type1.split(\"/\");\n      const type = fileTypes[0];\n      if (type === \"image\") {\n        return type;\n      }\n      return \"other\";\n    } catch (e) {\n      return \"other\";\n    }\n  }\n\n  async fetchFiles(query: string): Promise<FileModel[]> {\n    const shop = await this.userService.getCurrentShop();\n    const files: any[] = await database(shop.projectId)\n      .table(\"_Storage\")\n      .query()\n      .orderBy(\"updatedAt\", \"desc\")\n      .searchByRegex(\"name\", query)\n      .skip(0)\n      .size(50)\n      .find();\n    return files\n      .map((x) => {\n        try {\n          const suffixs = x && x.name ? x.name.split(\"-\") : \"no-name\";\n          return {\n            url: `${getDaasAddress(shop)}/storage/${shop.applicationId}/file/${\n              x.id\n            }`,\n            size: (Number(x.size) / (1024 * 1024)).toPrecision(3) + \" MB\",\n            suffix: suffixs[suffixs.length - 1],\n            category: MediaService.getFileCategory(x.type),\n            name: x.name,\n            extension: x.extension,\n            type: x.type,\n            cid: x.cid\n          };\n        } catch (e) {\n          return null;\n        }\n      })\n      .filter((t) => t !== null);\n  }\n\n  async uploadFile(\n    file: File,\n    callback: (progress: any) => void\n  ): Promise<FileModel> {\n    const name = file.name.replace(new RegExp(\"[^a-zA-Z0-9\\.]\", \"gi\"), \"\");\n    // console.log(name);\n    const shop = await this.userService.getCurrentShop();\n    const type = file.type;\n    const url = await storage(shop.projectId).save(\n      {\n        filename: encodeURIComponent(name),\n        data: file,\n        pn: false\n      },\n      (progress) => {\n        callback(((progress.loaded / progress.total) * 100).toFixed(2));\n      }\n    );\n    const suffixs = url.split(\"-\");\n    return {\n      url,\n      size: \" MB\",\n      suffix: suffixs[suffixs.length - 1],\n      name: url,\n      category: MediaService.getFileCategory(type),\n      type\n    };\n  }\n\n  async totalFiles(query: string): Promise<number> {\n    const shop = await this.userService.getCurrentShop();\n    return database(shop.projectId)\n      .table(\"_Storage\")\n      .query()\n      .searchByRegex(\"name\", query)\n      .count(true)\n      .find({ useMasterKey: true });\n  }\n}\n","import {Injectable} from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class MessageService {\n\n  constructor(private readonly matSnackBar: MatSnackBar) {\n  }\n\n  showMobileInfoMessage(message: string, duration: number = 3000, position: 'bottom' | 'top' = 'top'): void {\n    this.matSnackBar.open(message, 'Ok', {\n      horizontalPosition: 'center',\n      verticalPosition: position,\n      duration\n    });\n  }\n}\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { FileModel } from \"../models/file.model\";\nimport { MessageService } from \"../services/message.service\";\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { DeviceState } from \"./device.state\";\nimport { MatBottomSheet } from \"@angular/material/bottom-sheet\";\nimport { UserService } from \"../services/user.service\";\nimport { MediaService } from \"../services/media.service\";\n\n@Injectable({\n  providedIn: \"root\"\n})\nexport class FilesState {\n  isFetchFiles = new BehaviorSubject<boolean>(false);\n  filterKeyword = new BehaviorSubject<string>(\"\");\n  isUploading = new BehaviorSubject<boolean>(false);\n  uploadingPercentage = new BehaviorSubject<number>(0);\n  files = new BehaviorSubject<FileModel[]>([]);\n  totalFiles = new BehaviorSubject(0);\n\n  constructor(\n    private readonly userService: UserService,\n    private readonly matDialog: MatDialog,\n    private readonly deviceState: DeviceState,\n    private readonly mediaService: MediaService,\n    private readonly bottomSheet: MatBottomSheet,\n    private readonly messageService: MessageService\n  ) {}\n\n  fetchFiles(): void {\n    this.fetchTotalFiles();\n    this.isFetchFiles.next(true);\n    this.mediaService\n      .fetchFiles(this.filterKeyword.value)\n      .then((value) => {\n        if (Array.isArray(value)) {\n          this.files.next(value);\n        }\n      })\n      .catch((reason) => {\n        this.messageService.showMobileInfoMessage(\n          reason && reason.message ? reason.message : reason.toString(),\n          2000,\n          \"bottom\"\n        );\n      })\n      .finally(() => {\n        this.isFetchFiles.next(false);\n      });\n  }\n\n  private fetchTotalFiles(): void {\n    this.mediaService\n      .totalFiles(this.filterKeyword.value)\n      .then((value) => {\n        this.totalFiles.next(value);\n      })\n      .catch((reason) => {\n        this.messageService.showMobileInfoMessage(\n          reason && reason.message ? reason.message : reason.toString()\n        );\n      });\n  }\n\n  // loadMoreFiles(page: number): void {\n  //   this.fetchTotalFiles();\n  //   this.loadMoreProgress.next(true);\n  //   this.mediaService.fetchFiles(this.paginationSize, page * this.paginationSize, this.filterKeyword.value)\n  //     .then(value => {\n  //       this.files.next([...this.files.value, ...value]);\n  //     }).catch(reason => {\n  //     this.messageService.showMobileInfoMessage(reason.message ? reason.message : reason.toString());\n  //   }).finally(() => {\n  //     this.loadMoreProgress.next(false);\n  //   });\n  // }\n\n  uploadFile(file: File, done: () => void): void {\n    this.isUploading.next(true);\n    this.uploadingPercentage.next(0);\n    this.mediaService\n      .uploadFile(file, (progress) => {\n        this.uploadingPercentage.next(progress);\n      })\n      .then((value) => {\n        this.files.value.unshift(value);\n        this.files.next(this.files.value);\n        done();\n      })\n      .catch((reason) => {\n        this.messageService.showMobileInfoMessage(\n          reason && reason.message ? reason.message : reason.toString(),\n          2000,\n          \"bottom\"\n        );\n      })\n      .finally(() => {\n        this.isUploading.next(false);\n      });\n  }\n}\n","import {Component, Input} from '@angular/core';\nimport {FileModel} from '../models/file.model';\n\n@Component({\n  selector: 'app-image-preview',\n  template: `\n    <img (error)=\"hideImage()\" *ngIf=\"showImage\" alt=\"\" [src]=\"file.url.concat('/thumbnail?width=200')\"\n         class=\"media-container\">\n  `,\n  styleUrls: ['../styles/files-browser.style.scss']\n})\n\nexport class ImagePreviewComponent {\n  @Input() file: FileModel;\n  showImage = true;\n\n  constructor() {\n  }\n\n  hideImage(): void {\n    this.showImage = false;\n  }\n}\n","import {Component, Input} from '@angular/core';\nimport {FileModel} from '../models/file.model';\n\n@Component({\n  selector: 'app-video-preview',\n  template: `\n    <video controls [preload]=\"'none'\" [src]=\"file.url\" class=\"media-container\">\n    </video>\n  `,\n  styleUrls: ['../styles/files-browser.style.scss']\n})\n\nexport class VideoPreviewComponent {\n  @Input() file: FileModel;\n\n  constructor() {\n  }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { FileModel } from \"../models/file.model\";\n\n@Component({\n  selector: \"app-audio-preview\",\n  templateUrl: \"./audio-preview.html\",\n  styleUrls: [\"../styles/files-browser.style.scss\"]\n})\nexport class AudioPreviewComponent {\n  @Input() file: FileModel;\n}\n","<audio\n  controls\n  [src]=\"file.url\"\n  [preload]=\"'none'\"\n  class=\"media-container\"\n></audio>\n","import {Component, Input} from '@angular/core';\nimport {FileModel} from '../models/file.model';\n\n@Component({\n  selector: 'app-other-file-preview',\n  template: `\n    <div class=\"media-container\">\n      <mat-icon color=\"primary\" style=\"font-size: 50px; width: 50px; height: 50px\">\n        description\n      </mat-icon>\n      <span style=\"width: 90%; overflow: hidden;\n       height: 40px; text-overflow: fade\" class=\"text-truncate\">{{file.name}}</span>\n    </div>\n  `,\n  styleUrls: ['../styles/files-browser.style.scss']\n})\nexport class OtherFilePreviewComponent {\n  @Input() file: FileModel;\n\n  constructor() {\n  }\n}\n","<div class=\"media-header\">\n  <input\n    class=\"media-filter\"\n    [formControl]=\"filterFiles\"\n    placeholder=\"Search file by name...\"\n  />\n  <!--      <span style=\"flex: 1 1 auto\"></span>-->\n  <button (click)=\"filesState.fetchFiles()\" color=\"primary\" mat-icon-button>\n    <mat-icon>refresh</mat-icon>\n  </button>\n  <button\n    color=\"warn\"\n    mat-icon-button\n    (click)=\"sheetRef.dismiss({message: 'No file selected'})\"\n  >\n    <mat-icon>close</mat-icon>\n  </button>\n  <mat-divider></mat-divider>\n</div>\n\n<div *ngIf=\"(filesState.isFetchFiles | async)===false\">\n  <div style=\"width: 100%;\">\n    <app-upload-files\n      [files]=\"filesSelected\"\n      [uploadFileFormControl]=\"filesFormControl\"\n      [multiple]=\"true\"\n    >\n    </app-upload-files>\n\n    <button\n      *ngIf=\"filesFormControl.valid\"\n      [disabled]=\"filesState.isUploading | async\"\n      (click)=\"uploadFile()\"\n      mat-flat-button\n      color=\"primary\"\n    >\n      Upload\n    </button>\n    <div style=\"width: 20px; height: 20px;\"></div>\n    <app-upload-file-progress\n      *ngIf=\"filesState.isUploading | async\"\n      [onUploadFlag]=\"true\"\n      [name]=\"'Upload '+filesFormControl.value[0].name\"\n      [uploadPercentage]=\"filesState.uploadingPercentage | async\"\n    >\n    </app-upload-file-progress>\n  </div>\n</div>\n\n<div\n  *ngIf=\"(filesState.isFetchFiles | async)===true\"\n  style=\"\n    display: flex;\n    flex-direction: column;\n    justify-content: center;\n    align-items: center;\n    height: 100px;\n  \"\n>\n  <mat-progress-bar mode=\"indeterminate\" color=\"primary\"></mat-progress-bar>\n  <p>Fetch files...</p>\n</div>\n\n<div class=\"medias-container\">\n  <div\n    (click)=\"selectedFile(file)\"\n    *ngFor=\"let file of files.connect() | async\"\n  >\n    <app-image-preview\n      *ngIf=\"file.category === 'image'\"\n      [file]=\"file\"\n    ></app-image-preview>\n    <app-video-preview\n      *ngIf=\"file.category === 'video'\"\n      [file]=\"file\"\n    ></app-video-preview>\n    <app-audio-preview\n      *ngIf=\"file.category === 'audio'\"\n      [file]=\"file\"\n    ></app-audio-preview>\n    <app-other-file-preview\n      *ngIf=\"file.category === 'other'\"\n      [file]=\"file\"\n    ></app-other-file-preview>\n  </div>\n</div>\n","import {\n  AfterViewInit,\n  ChangeDetectorRef,\n  Component,\n  Inject,\n  OnDestroy,\n  OnInit,\n  ViewChild\n} from \"@angular/core\";\nimport { ShopModel } from \"../models/shop.model\";\nimport { MatTableDataSource } from \"@angular/material/table\";\nimport { MatPaginator } from \"@angular/material/paginator\";\nimport { Subject } from \"rxjs\";\nimport { FilesState } from \"../states/files.state\";\nimport { debounceTime, takeUntil } from \"rxjs/operators\";\nimport { FileModel } from \"../models/file.model\";\nimport { UntypedFormControl, Validators } from \"@angular/forms\";\nimport {\n  MAT_BOTTOM_SHEET_DATA,\n  MatBottomSheetRef\n} from \"@angular/material/bottom-sheet\";\n\n// @dynamic\n@Component({\n  selector: \"app-libs-file-browser\",\n  templateUrl: \"./file-browser-sheet.html\",\n  styleUrls: [\"../styles/files-browser.style.scss\"]\n})\nexport class FileBrowserSheetComponent\n  implements OnInit, OnDestroy, AfterViewInit {\n  @ViewChild(\"matPaginator\") matPaginator: MatPaginator;\n  destroy: Subject<any> = new Subject<any>();\n  filter = \"all\";\n  files: MatTableDataSource<FileModel> = new MatTableDataSource([]);\n  filesFormControl = new UntypedFormControl(\n    [],\n    [Validators.nullValidator, Validators.required]\n  );\n  filesSelected = [];\n  filterFiles = new UntypedFormControl(\"\");\n\n  constructor(\n    public readonly sheetRef: MatBottomSheetRef<FileBrowserSheetComponent>,\n    public readonly filesState: FilesState,\n    private readonly changeDetector: ChangeDetectorRef,\n    @Inject(MAT_BOTTOM_SHEET_DATA)\n    public readonly data: {\n      shop: ShopModel;\n    }\n  ) {\n    filesState.files.pipe(takeUntil(this.destroy)).subscribe((value) => {\n      this.files.data = value;\n    });\n  }\n\n  ngAfterViewInit(): void {\n    this.files.paginator = this.matPaginator;\n    this.getFiles();\n    this.changeDetector.detectChanges();\n  }\n\n  ngOnInit(): void {\n    this.filterFiles.valueChanges.pipe(debounceTime(500)).subscribe((value) => {\n      if (value) {\n        this.filesState.filterKeyword.next(value.toString().toLowerCase());\n      } else {\n        this.filesState.filterKeyword.next(\"\");\n      }\n      this.getFiles();\n    });\n  }\n\n  private getFiles(): void {\n    if (this.data && this.data.shop) {\n      this.filesState.fetchFiles();\n    } else {\n      this.sheetRef.dismiss({ message: \"current shop must not be null\" });\n    }\n  }\n\n  selectedFile(file: FileModel): void {\n    this.sheetRef.dismiss(file);\n  }\n\n  isSelected(\n    value: \"all\" | \"image\" | \"video\" | \"other\" | \"book\" | \"audio\"\n  ): boolean {\n    return this.filter === value;\n  }\n\n  filterFilter(value: string): void {\n    this.filter = value;\n    if (value === \"all\") {\n      this.files.filter = \"\";\n    } else if (value === \"image\") {\n      this.files.filter = \"image\";\n    } else if (value === \"video\") {\n      this.files.filter = \"video\";\n    } else if (value === \"audio\") {\n      this.files.filter = \"audio\";\n    } else if (value === \"book\") {\n      this.files.filter = \"book\";\n    } else if (value === \"other\") {\n      this.files.filter = \"other\";\n    }\n  }\n\n  ngOnDestroy(): void {\n    this.destroy.next(\"done\");\n    this.filesState.filterKeyword.next(\"\");\n  }\n\n  uploadFile(): void {\n    if (this.filesFormControl.valid) {\n      this.filesState.uploadFile(this.filesFormControl.value[0].url, () => {\n        this.filesSelected = [];\n        // document.getElementById('dialog-contents').scrollTo(0, 0);\n      });\n    }\n  }\n}\n","import {Component, Inject, OnInit} from '@angular/core';\nimport {MAT_BOTTOM_SHEET_DATA, MatBottomSheetRef} from '@angular/material/bottom-sheet';\nimport {ShopModel} from '../models/shop.model';\nimport {UserService} from '../services/user.service';\nimport {Router} from '@angular/router';\nimport {NavigationService} from '../services/navigation.service';\n\n// @dynamic\n\n@Component({\n  selector: 'app-menu-sheet',\n  template: `\n    <div style=\"min-width: 200px\">\n      <div\n        style=\"padding-bottom: 8px; display: flex; flex-direction: column; justify-content: center;align-items: center\">\n        <div style=\"padding: 16px; justify-content: center; align-items: center\">\n          <mat-icon *ngIf=\"!data?.shop?.ecommerce?.logo\" class=\"logo\" color=\"primary\">store</mat-icon>\n          <img *ngIf=\"data?.shop?.ecommerce?.logo\" alt=\"logo\" class=\"logo\" src=\"{{data?.shop?.ecommerce?.logo}}\">\n        </div>\n        <span style=\"max-width: 150px; overflow: hidden; text-overflow: ellipsis;\"\n              *ngIf=\"data?.shop\">{{data?.shop.businessName}}</span>\n        <span style=\"width: 4px; height: 4px\"></span>\n        <button style=\"width: 80%\"\n                color=\"primary\"\n                class=\"btn-block\"\n                (click)=\"goTo('/account/shop')\" mat-button>\n          Change Shop\n        </button>\n      </div>\n      <button mat-menu-item (click)=\"logout()\">\n        <mat-icon color=\"primary\">exit_to_app</mat-icon>\n        Logout\n      </button>\n      <div *ngFor=\"let mm of data?.menus\">\n        <button mat-menu-item (click)=\"goTo(mm.link)\">\n          <mat-icon color=\"primary\">{{mm.icon}}</mat-icon>\n          {{mm.name}}\n        </button>\n      </div>\n      <div class=\"version\">\n        <p>Version: {{version}}</p>\n      </div>\n    </div>\n  `,\n  styleUrls: ['../styles/menu-sheet.component.scss']\n})\nexport class MenuSheetComponent implements OnInit {\n  version = '';\n  constructor(private readonly sheetRef: MatBottomSheetRef<MenuSheetComponent>,\n              private readonly userService: UserService,\n              private readonly navService: NavigationService,\n              private readonly router: Router,\n              @Inject(MAT_BOTTOM_SHEET_DATA) public readonly data: {\n                shop: ShopModel,\n                menus: any[]\n              }) {\n  }\n\n  logout(): void {\n    this.userService.logout(null).finally(() => {\n      this.goTo('/');\n    }).catch(console.log);\n  }\n\n  goTo(link: string): void {\n    this.sheetRef.dismiss();\n    this.router.navigateByUrl(link).catch(console.log);\n  }\n\n  async ngOnInit(): Promise<void> {\n    this.version = this.navService.versionName;\n  }\n}\n","import {Component, Input, OnDestroy, OnInit} from '@angular/core';\nimport {MatBottomSheet} from '@angular/material/bottom-sheet';\nimport {MenuSheetComponent} from './menu-sheet.component';\nimport {ShopModel} from '../models/shop.model';\nimport {MenuModel} from '../models/menu.model';\nimport {UserService} from '../services/user.service';\nimport {NavigationService} from '../services/navigation.service';\nimport {RbacService} from '../services/rbac.service';\n\n@Component({\n  selector: 'app-bottom-nav',\n  template: `\n    <div class=\"n-container\">\n      <div matRipple class=\"nav-item\" *ngFor=\"let m of first4?first4: []\" routerLink=\"{{m.link}}\">\n        <mat-icon [color]=\"\">{{m.icon}}</mat-icon>\n<!--        <span>{{m.name}}</span>-->\n      </div>\n      <div (click)=\"openMenu()\" matRipple class=\"nav-item\">\n        <mat-icon>dehaze</mat-icon>\n<!--        <span>Menu</span>-->\n      </div>\n    </div>\n  `,\n  styleUrls: ['../styles/bottom-nav.style.scss']\n})\n\nexport class BottomNavComponent implements OnInit, OnDestroy {\n  shop: ShopModel;\n  @Input() first4: MenuModel[];\n  menus = [];\n\n  constructor(private readonly matBottomSheet: MatBottomSheet,\n              private readonly userService: UserService,\n              public readonly configs: NavigationService,\n              public readonly rbacServices: RbacService) {\n  }\n\n  ngOnDestroy(): void {\n  }\n\n  async ngOnInit(): Promise<void> {\n    this.userService.getCurrentShop().then(shop => {\n      this.shop = shop;\n    }).catch(reason => {\n      console.log(reason);\n      this.shop = undefined;\n    });\n    if (Array.isArray(this.first4)) {\n      return;\n    }\n    let c = 0;\n    for (const menu of this.configs.getMenu()) {\n      if (await this.rbacServices.hasAccess(menu.roles, null)) {\n        this.menus.push(menu);\n      }\n    }\n    this.first4 = [];\n    for (const menu of this.configs.getMenu()) {\n      if (c === 3) {\n        return;\n      }\n      if (await this.rbacServices.hasAccess(menu.roles, null)) {\n        this.first4.push(menu);\n        c++;\n      }\n    }\n  }\n\n  openMenu(): void {\n    this.matBottomSheet.open(MenuSheetComponent, {\n      closeOnNavigation: true,\n      data: {\n        shop: this.shop,\n        menus: this.menus\n      }\n    });\n  }\n}\n","import {Component} from '@angular/core';\n\n@Component({\n  selector: 'app-rbac-guard',\n  template: `\n    <div>\n      <!--      <mat-card-subtitle>Permission</mat-card-subtitle>-->\n      <div mat-dialog-content>\n        <p>You do not have a permission to visit this link </p>\n      </div>\n      <div mat-dialog-actions>\n        <button color=\"primary\" mat-button mat-dialog-close>Close</button>\n      </div>\n    </div>\n  `\n})\n\nexport class RbacGuardComponent {\n  constructor() {\n  }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\nimport {formatNumber} from '@angular/common';\nimport {UserService} from '../services/user.service';\n\n@Pipe({\n  name: 'fedha'\n})\n\nexport class FedhaPipe implements PipeTransform {\n\n  constructor(private readonly userService: UserService) {\n  }\n\n  async transform(value: any, ...args: any[]): Promise<string> {\n    if (Number.isNaN(value)) {\n      return value;\n    }\n    const c = await this.userService.getCurrentShop();\n    return `${c && c.settings && c.settings.currency ? c.settings.currency : ''} ${formatNumber(value, 'en-US')}`;\n  }\n}\n","import {Component} from '@angular/core';\nimport {MatDialogRef} from '@angular/material/dialog';\n\n@Component({\n  template: `\n    <div>\n      <div mat-dialog-title>Payment</div>\n      <div mat-dialog-content>\n        <p>Please make payment to continue using the system</p>\n      </div>\n      <div mat-dialog-actions>\n        <button color=\"primary\" mat-button (click)=\"dialogRef.close()\">Close</button>\n      </div>\n    </div>\n  `\n})\n\nexport class PaymentDialogComponent {\n  constructor(public readonly dialogRef: MatDialogRef<PaymentDialogComponent>) {\n  }\n\n}\n","import { Component, OnInit } from \"@angular/core\";\nimport { MatDialogRef } from \"@angular/material/dialog\";\nimport { PrintService } from \"../public-api\";\n\n@Component({\n    selector: 'choose-printer-dialog',\n    template: `\n    <div >Select default printer</div>\n    <div mat-dialog-content>\n        <mat-nav-list role=\"list\">\n            <p *ngIf=\"printers.length===0\">No printer found make sure your system has printers and their drivers installed propery</p>\n            <mat-list-item (click)=\"select(printer)\" \n            *ngFor=\"let printer of printers\" role=\"listitem\">{{printer}}</mat-list-item>\n        </mat-nav-list>\n    </div>\n    `,\n    styleUrls: []\n})\n\nexport class ChoosePrinterDialog implements OnInit {\n    printers;\n    constructor(private readonly printer: PrintService,\n        private readonly dialogRef: MatDialogRef<ChoosePrinterDialog>) { }\n    async ngOnInit(): Promise<void> {\n        this.printers = await this.printer.printers()\n    }\n    select(p: string){\n        this.dialogRef.close(p);\n    }\n}","import {NgModule} from '@angular/core';\nimport {DrawerComponent} from './components/drawer.component';\nimport {ToolbarComponent} from './components/toolbar.component';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatCardModule} from '@angular/material/card';\nimport {MatDialogModule} from '@angular/material/dialog';\nimport {MatDividerModule} from '@angular/material/divider';\nimport {MatExpansionModule} from '@angular/material/expansion';\nimport {MatFormFieldModule} from '@angular/material/form-field';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatListModule} from '@angular/material/list';\nimport {MatMenuModule} from '@angular/material/menu';\nimport {MatProgressBarModule} from '@angular/material/progress-bar';\nimport {MatProgressSpinnerModule} from '@angular/material/progress-spinner';\nimport {MatSelectModule} from '@angular/material/select';\nimport {MatToolbarModule} from '@angular/material/toolbar';\nimport {RouterModule} from '@angular/router';\nimport {ReactiveFormsModule} from '@angular/forms';\nimport {NoStockDialogComponent} from './components/no-stock-dialog.component';\nimport {ShopsPipe} from './pipes/shops.pipe';\nimport {MatBadgeModule} from '@angular/material/badge';\nimport {OnFetchComponent} from './components/on-fetch.component';\nimport {MatTooltipModule} from '@angular/material/tooltip';\nimport {SearchInputComponent} from './components/search-input.component';\nimport {DataNotReadyComponent} from './components/data-not-ready.component';\nimport {UploadFilesComponent} from './components/upload-files.component';\nimport {MatRippleModule} from '@angular/material/core';\nimport {DashCardComponent} from './components/dash-card.component';\nimport {CommonModule} from '@angular/common';\nimport {UploadFileProgressComponent} from './components/upload-file-progress.component';\nimport {VerifyEMailDialogComponent} from './components/verify-email-dialog.component';\nimport {DialogDeleteComponent} from './components/delete-dialog.component';\nimport {SidenavLayoutComponent} from './components/sidenav-layout.component';\nimport {MatSidenavModule} from '@angular/material/sidenav';\nimport {RbacComponent} from './components/rbac.component';\nimport {MatPaginatorModule} from '@angular/material/paginator';\nimport {MatChipsModule} from '@angular/material/chips';\nimport {MatInputModule} from '@angular/material/input';\nimport {DrawerSubMenuComponent} from './components/drawer-sub-menu.component';\nimport {FileBrowserSheetComponent} from './components/file-browser-sheet.component';\nimport {BottomNavComponent} from './components/bottom-nav.component';\nimport {RbacGuardComponent} from './components/rbac-guard.component';\nimport {MenuSheetComponent} from './components/menu-sheet.component';\nimport {ImagePreviewComponent} from './components/image-preview.component';\nimport {VideoPreviewComponent} from './components/video-preview.component';\nimport {AudioPreviewComponent} from './components/audio-preview.component';\nimport {OtherFilePreviewComponent} from './components/other-file-preview.component';\nimport {FedhaPipe} from './pipes/fedha.pipe';\nimport {PaymentDialogComponent} from './components/payment-dialog.component';\nimport { ChoosePrinterDialog } from './components/choose-printer';\n\n@NgModule({\n  imports: [\n    CommonModule,\n    MatProgressSpinnerModule,\n    MatCardModule,\n    MatExpansionModule,\n    MatDividerModule,\n    MatListModule,\n    MatProgressBarModule,\n    MatToolbarModule,\n    MatIconModule,\n    MatMenuModule,\n    MatButtonModule,\n    RouterModule,\n    MatFormFieldModule,\n    ReactiveFormsModule,\n    MatDialogModule,\n    MatSelectModule,\n    MatBadgeModule,\n    MatTooltipModule,\n    MatRippleModule,\n    MatSidenavModule,\n    MatPaginatorModule,\n    MatChipsModule,\n    MatInputModule\n  ],\n  exports: [\n    PaymentDialogComponent,\n    DrawerComponent,\n    ToolbarComponent,\n    ShopsPipe,\n    OnFetchComponent,\n    DataNotReadyComponent,\n    UploadFilesComponent,\n    DashCardComponent,\n    UploadFileProgressComponent,\n    FileBrowserSheetComponent,\n    SidenavLayoutComponent,\n    RbacComponent,\n    FedhaPipe\n  ],\n  declarations: [\n    FedhaPipe,\n    PaymentDialogComponent,\n    ImagePreviewComponent,\n    VideoPreviewComponent,\n    AudioPreviewComponent,\n    OtherFilePreviewComponent,\n    RbacGuardComponent,\n    DrawerSubMenuComponent,\n    DrawerComponent,\n    ToolbarComponent,\n    NoStockDialogComponent,\n    ShopsPipe,\n    OnFetchComponent,\n    SearchInputComponent,\n    DataNotReadyComponent,\n    UploadFilesComponent,\n    DashCardComponent,\n    DialogDeleteComponent,\n    UploadFileProgressComponent,\n    VerifyEMailDialogComponent,\n    SidenavLayoutComponent,\n    RbacComponent,\n    FileBrowserSheetComponent,\n    BottomNavComponent,\n    MenuSheetComponent,\n    ChoosePrinterDialog\n  ]\n})\n\nexport class LibModule {\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { cache, isElectron } from 'bfast';\nimport { firstValueFrom } from 'rxjs';\nimport { ChoosePrinterDialog } from '../components/choose-printer';\nimport { PrinterModel } from '../models/printer.model';\nimport { UserService } from './user.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class PrintService {\n  private DEFAULT_PRINTER_KEY = 'default_printer';\n  private url = `https://localhost:8080/print`;\n\n  constructor(\n    private readonly userService: UserService,\n    private readonly dialog: MatDialog,\n    private readonly httpClient: HttpClient\n  ) {\n  }\n\n  setUrl(url: string): void {\n    this.url = url;\n  }\n\n  getUrl(): string {\n    return this.url;\n  }\n\n  async getDefaultPrinterName() {\n    return cache().get(this.DEFAULT_PRINTER_KEY);\n  }\n\n  async showChoosePrinter(): Promise<string> {\n    const r = this.dialog.open(ChoosePrinterDialog).afterClosed();\n    const a = await firstValueFrom(r);\n    if (a) {\n      await cache().set(this.DEFAULT_PRINTER_KEY, a);\n    }\n    return a;\n  }\n\n  async printers(): Promise<string[]> {\n    // @ts-ignore\n    if (window && window.smartstock && window.smartstock.printers) {\n      // @ts-ignore\n      return window.smartstock.printers();\n    }\n    return [];\n  }\n\n  private async printInDesktop(printModel: PrinterModel): Promise<any> {\n    const o = this.httpClient.post(this.url, {\n      data: printModel.data,\n      id: printModel.id\n    }, {\n      headers: {\n        'Access-Control-Allow-Origin': '*'\n      },\n      responseType: 'text'\n    });\n    return firstValueFrom(o);\n  }\n\n  async print(printModel: PrinterModel, forcePrint = false): Promise<any> {\n    const cSettings = await this.userService.getSettings();\n    let data = '';\n    data = data.concat(cSettings.printerHeader + '\\n');\n    data = data.concat(printModel.data);\n    data = data.concat(cSettings.printerFooter);\n    printModel.data = data;\n    if (!isElectron) {\n      console.log('can not print in web browser');\n      return 'can not print in web browser';\n    }\n    // @ts-ignore\n    // if (window && window.smartstock && window.smartstock.print) {\n    if (!cSettings.saleWithoutPrinter || forcePrint) {\n      return await this.printInDesktop(printModel);\n      // let printerName = await this.getDefaultPrinterName();\n      // if (!printerName) {\n      //   printerName = await this.showChoosePrinter();\n      // }\n      // // @ts-ignore\n      // return window.smartstock.print(printModel.data, printerName);\n    }\n    return;\n    // } else {\n    //   console.log('INFO: printer is not implemented');\n    //   return 'can not print, printer is not implemented';\n    // }\n  }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { FileModel } from \"../models/file.model\";\nimport { FileBrowserSheetComponent } from \"../components/file-browser-sheet.component\";\nimport { MatDialog } from \"@angular/material/dialog\";\nimport { DeviceState } from \"../states/device.state\";\nimport { MatBottomSheet } from \"@angular/material/bottom-sheet\";\nimport { MessageService } from \"./message.service\";\nimport { UserService } from \"./user.service\";\nimport { firstValueFrom } from \"rxjs\";\n\n@Injectable({\n  providedIn: \"root\"\n})\nexport class FilesService {\n  constructor(\n    private readonly userService: UserService,\n    private readonly matDialog: MatDialog,\n    private readonly deviceState: DeviceState,\n    private readonly bottomSheet: MatBottomSheet,\n    private readonly messageService: MessageService\n  ) {}\n\n  async browse(): Promise<FileModel> {\n    const bs = this.bottomSheet.open(FileBrowserSheetComponent, {\n      closeOnNavigation: true,\n      panelClass: \"bottom-sheet\",\n      data: {\n        shop: await this.userService.getCurrentShop()\n      }\n    });\n    const value = await firstValueFrom(bs.afterDismissed());\n    if (value && value.url && value.cid) {\n      value.url = `https://${value.cid}.ipfs.cf-ipfs.com`;\n      return value;\n    } else {\n      this.messageService.showMobileInfoMessage(\n        value && value.message ? value.message : \"Fails to select file\",\n        2000,\n        \"bottom\"\n      );\n      return null;\n    }\n  }\n}\n","export class IpfsService {\n  private static instance;\n\n  private static async ipfs(): Promise<any> {\n    // if (!this.instance) {\n    //   // @ts-ignore\n    //   this.instance = await window.Ipfs.create();\n    //   return this.instance;\n    // }\n    // return this.instance;\n  }\n\n  private constructor() {\n  }\n\n  static async getDataFromCid(cid: any): Promise<any> {\n    return cid;\n    // const node = await IpfsService.ipfs();\n    // const results = await node.cat(cid, {\n    //   timeout: 1000 * 60 * 5,\n    // });\n    // // @ts-ignore\n    // node.pin.add(window.Ipfs.CID.parse(cid)).catch(console.log);\n    // let data = '';\n    // for await (const chunk of results) {\n    //   data += chunk.toString();\n    // }\n    // const dt = JSON.parse(data);\n    // if (dt?._id) {\n    //   dt.id = dt._id;\n    //   delete dt._id;\n    // }\n    // if (dt?._created_at) {\n    //   dt.createdAt = dt._created_at;\n    //   delete dt._created_at;\n    // }\n    // if (dt?._updated_at) {\n    //   dt.updatedAt = dt._updated_at;\n    //   delete dt._updated_at;\n    // }\n    // return dt;\n  }\n\n  static async getId(): Promise<any> {\n    // const node = await this.ipfs();\n    // return await node.id();\n    return 'n/a';\n  }\n\n  static async getVersion(): Promise<any> {\n    // const node = await this.ipfs();\n    // return await node.version();\n    return 'n/a';\n  }\n\n  static async getStatus(): Promise<boolean> {\n    // const node = await this.ipfs();\n    // return node.isOnline();\n    return true;\n  }\n}\n","import { Injectable } from \"@angular/core\";\nimport { wrap } from \"comlink\";\nimport { SyncsWorker } from \"../workers/syncs.worker\";\n\n@Injectable({\n  providedIn: \"root\"\n})\nexport class SyncsService {\n  private syncsWorkerNative;\n  private syncsWorker: SyncsWorker;\n\n  async startWorker(): Promise<void> {\n    if (!this.syncsWorker) {\n      this.syncsWorkerNative = new Worker(\n        new URL(\"../workers/syncs.worker\", import.meta.url)\n      );\n      const SW = (wrap(this.syncsWorkerNative) as unknown) as any;\n      this.syncsWorker = await new SW();\n    }\n  }\n\n  stopWorker(): void {\n    if (this.syncsWorkerNative) {\n      this.syncsWorkerNative.terminate();\n      this.syncsWorker = undefined;\n      this.syncsWorkerNative = undefined;\n    }\n  }\n}\n","import {HttpClientAdapter, RestRequestConfig} from 'bfast';\nimport {HttpRequestInfoModel} from 'bfast/dist/lib/models/http-request-info.model';\nimport {HttpClient} from '@angular/common/http';\nimport {firstValueFrom} from 'rxjs';\nimport {Injectable} from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class SmartstockHttpAdapter extends HttpClientAdapter {\n  constructor(private readonly httpClient: HttpClient) {\n    super();\n  }\n\n  delete(url: string, config: RestRequestConfig, info: HttpRequestInfoModel): Promise<any> {\n    // @ts-ignore\n    const rq = this.httpClient.delete(url, {\n      body: config.data,\n      ...config\n    });\n    return firstValueFrom(rq).then(value => {\n      return {data: value};\n    }).catch(reason => {\n      throw reason.error;\n    });\n  }\n\n  get(url: string, config: any, info: HttpRequestInfoModel): Promise<any> {\n    const rq = this.httpClient.get(url, config);\n    return firstValueFrom(rq).then(value => {\n      return {data: value};\n    }).catch(reason => {\n      throw reason.error;\n    });\n  }\n\n  head(url: string, config: any, info: HttpRequestInfoModel): Promise<any> {\n    const rq = this.httpClient.head(url, config);\n    return firstValueFrom(rq).then(value => {\n      return {data: value};\n    }).catch(reason => {\n      throw reason.error;\n    });\n  }\n\n  options(url: string, config: any, info: HttpRequestInfoModel): Promise<any> {\n    const rq = this.httpClient.options(url, config);\n    return firstValueFrom(rq).then(value => {\n      return {data: value};\n    }).catch(reason => {\n      throw reason.error;\n    });\n  }\n\n  patch(url: string, data: any, config: any, info: HttpRequestInfoModel): Promise<any> {\n    const rq = this.httpClient.patch(url, data, config);\n    return firstValueFrom(rq).then(value => {\n      return {data: value};\n    }).catch(reason => {\n      throw reason.error;\n    });\n  }\n\n  post(url: string, data: any, config: any, info: HttpRequestInfoModel): Promise<any> {\n    const rq = this.httpClient.post(url, data, config);\n    return firstValueFrom(rq).then(value => {\n      return {data: value};\n    }).catch(reason => {\n      throw reason.error;\n    });\n  }\n\n  put(url: string, data: any, config: any, info: HttpRequestInfoModel): Promise<any> {\n    const rq = this.httpClient.put(url, data, config);\n    return firstValueFrom(rq).then(value => {\n      return {data: value};\n    }).catch(reason => {\n      throw reason.error;\n    });\n  }\n}\n","import {Injectable} from '@angular/core';\nimport {ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree} from '@angular/router';\nimport {Observable} from 'rxjs';\nimport {init} from 'bfast';\nimport {UserService} from '../services/user.service';\nimport {getDaasAddress, getFaasAddress} from '../utils/bfast.util';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ActiveShopGuard implements CanActivate {\n  constructor(private readonly userService: UserService,\n              private readonly router: Router) {\n  }\n\n  canActivate(\n    next: ActivatedRouteSnapshot,\n    state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n    return new Promise(async (resolve, reject) => {\n      try {\n        const activeShop = await this.userService.getCurrentShop();\n        if (activeShop && activeShop.projectId && activeShop.applicationId) {\n          init({\n            applicationId: activeShop.applicationId,\n            projectId: activeShop.projectId,\n            appPassword: activeShop.masterKey,\n            adapters: {\n              auth: 'DEFAULT',\n              cache: 'DEFAULT',\n              http: 'DEFAULT'\n            },\n            databaseURL: getDaasAddress(activeShop),\n            functionsURL: getFaasAddress(activeShop)\n          }, activeShop.projectId);\n          resolve(true);\n        } else {\n          this.router.navigateByUrl('/account/shop').catch(reason => console.log(reason));\n          reject(false);\n        }\n      } catch (e) {\n        this.router.navigateByUrl('/account/shop').catch(reason => console.log(reason));\n        reject(false);\n      }\n    });\n  }\n}\n","import {Injectable} from '@angular/core';\nimport {ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree} from '@angular/router';\nimport {Observable} from 'rxjs';\nimport {UserService} from '../services/user.service';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AuthenticationGuard implements CanActivate {\n  constructor(private readonly userDatabase: UserService,\n              private readonly router: Router) {\n  }\n\n  canActivate(\n    next: ActivatedRouteSnapshot,\n    state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n    return new Promise((resolve, reject) => {\n      this.userDatabase.currentUser().then(user => {\n        if (user && user.applicationId && user.projectId && user.role) {\n          resolve(true);\n        } else {\n          this.userDatabase.updateCurrentUser(null).catch(_ => {});\n          this.router.navigateByUrl('/account/login?url=' + encodeURIComponent(state.url))\n            .catch(reason => console.log(reason));\n          reject(false);\n        }\n      });\n    });\n  }\n\n}\n","import {Injectable} from '@angular/core';\nimport {ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree} from '@angular/router';\nimport {Observable} from 'rxjs';\nimport {RbacService} from '../services/rbac.service';\nimport {UserService} from '../services/user.service';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class AdminGuard implements CanActivate {\n\n  constructor(private readonly router: Router,\n              private readonly rbacService: RbacService,\n              private readonly userDatabase: UserService) {\n  }\n\n  canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot)\n    : Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n    return new Promise((resolve, reject) => {\n      this.userDatabase.currentUser().then(async user => {\n        const hasAccess = await this.rbacService.hasAccess(['admin'], state.url);\n        const guardAccess = user && user.applicationId && user.projectId && user.role === 'admin';\n        if (guardAccess || hasAccess) {\n          resolve(true);\n        } else {\n          this.router.navigateByUrl('/sale').catch(reason => console.log(reason));\n          reject(false);\n        }\n      }).catch(_ => {\n        this.router.navigateByUrl('/account/login?url=' + encodeURIComponent(state.url))\n          .catch(reason => console.log(reason));\n        reject(false);\n      });\n    });\n  }\n\n}\n","import {Injectable} from '@angular/core';\nimport {ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree} from '@angular/router';\nimport {Observable} from 'rxjs';\nimport {UserService} from '../services/user.service';\nimport {RbacService} from '../services/rbac.service';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ManagerGuard implements CanActivate {\n\n  constructor(private readonly userDatabase: UserService,\n              private readonly rbacService: RbacService,\n              private readonly router: Router) {\n  }\n\n  canActivate(\n    next: ActivatedRouteSnapshot,\n    state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n    return new Promise((resolve, reject) => {\n      const toLogin = () => {\n        this.router.navigateByUrl('/account/login?url=' + encodeURIComponent(state.url))\n          .catch(reason => console.log(reason));\n        reject(false);\n      };\n      this.userDatabase.currentUser().then(async user => {\n        const hasAccess = await this.rbacService.hasAccess(['admin', 'manager'], state.url);\n        const guardAccess = user && user.applicationId && user.projectId && (user.role === 'manager' || user.role === 'admin');\n        if (guardAccess || hasAccess) {\n          resolve(true);\n        } else {\n          toLogin();\n        }\n      }).catch(_ => {\n        toLogin();\n      });\n    });\n  }\n\n}\n","import {Injectable} from '@angular/core';\nimport {ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree} from '@angular/router';\nimport {Observable} from 'rxjs';\nimport {cache} from 'bfast';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class PaymentGuard implements CanActivate {\n\n  constructor(private readonly router: Router) {\n  }\n\n  canActivate(\n    next: ActivatedRouteSnapshot,\n    state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n    return new Promise(async (resolve, reject) => {\n      try {\n        // tslint:disable-next-line:variable-name\n        const _cache = cache({database: 'payment', collection: 'subscription'});\n        const status = await _cache.get<any>('status');\n        if (status && status.subscription === true) {\n          resolve(true);\n        } else if (status && status.subscription === false) {\n          reject(false);\n          this.router.navigateByUrl('/account/bill').catch(_ => {\n          });\n        } else {\n          resolve(true);\n        }\n      } catch (reason) {\n        resolve(true);\n      }\n    });\n  }\n\n}\n","export const toSqlDate = (date: Date) => {\n  const year = date.getFullYear();\n  let month = (date.getMonth() + 1).toString(10);\n  let day = (date.getDate()).toString(10);\n  if (month.length === 1) {\n    month = '0' + month;\n  }\n  if (day.length === 1) {\n    day = '0' + day;\n  }\n  return year + '-' + month + '-' + day;\n};\n","export const SsmEvents = {\n  ACTIVE_SHOP_SET: '_ssm_active_shop_set_',\n  ACTIVE_SHOP_REMOVE: '_ssm_active_shop_removed_',\n  SETTINGS_UPDATED: '_ssm_settings_updated_',\n  STOCK_UPDATED: '_ssm_stock_updated_',\n  ADD_CART: 'add_cart',\n  NO_OF_CART: 'noofProductsCart',\n  CART_ITEMS: '_cart_items_'\n};\n","import * as uuid from 'uuid';\n\nexport class SecurityUtil {\n  static generateUUID(): string {\n    return uuid.v4();\n  }\n  static randomString(length): string {\n    let result           = '';\n    const characters       = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n    const charactersLength = characters.length;\n    for ( let i = 0; i < length; i++ ) {\n      result += characters.charAt(Math.floor(Math.random() * charactersLength));\n    }\n    return result;\n  }\n}\n\n","/*\n * Public API Surface of libs\n */\n\nexport {LibModule} from './lib.module';\n\nexport * from './services/message.service';\nexport * from './services/printer.service';\nexport * from './services/log.service';\nexport * from './services/user.service';\nexport * from './services/rbac.service';\nexport * from './services/files.service';\nexport * from './services/navigation.service';\nexport * from './services/ipfs.service';\nexport * from './services/syncs.service';\nexport * from './services/smartstock-http-adapter';\n\nexport * from './guards/active-shop.guard';\nexport * from './guards/authentication.guard';\nexport * from './guards/admin.guard';\nexport * from './guards/manager.guard';\nexport * from './guards/payment.guard';\n\nexport * from './states/device.state';\nexport * from './states/files.state';\nexport * from './states/cart-drawer-state';\n\nexport * from './utils/date.util';\nexport * from './utils/eventsNames.util';\nexport * from './utils/security.util';\nexport * from './utils/bfast.util';\n\nexport * from './components/no-stock-dialog.component';\nexport * from './components/sidenav-layout.component';\nexport * from './components/file-browser-sheet.component';\nexport * from './components/rbac.component';\nexport * from './components/drawer.component';\nexport * from './components/toolbar.component';\nexport * from './pipes/shops.pipe';\nexport * from './components/on-fetch.component';\nexport * from './components/upload-files.component';\nexport * from './components/dash-card.component';\nexport * from './components/upload-file-progress.component';\nexport * from './components/data-not-ready.component';\nexport * from './components/payment-dialog.component';\n\nexport * from './models/batch.model';\nexport * from './models/customer.model';\nexport * from './models/file.model';\nexport * from './models/menu.model';\nexport * from './models/lib-user.model';\nexport * from './models/file-response.model';\nexport * from './models/printer.model';\nexport * from './models/shop.model';\nexport * from './models/stock.model';\nexport * from './models/sale.model';\n\nexport * from './pipes/fedha.pipe';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.UserService","i1.RbacService","i2","_c0","i2.LogService","i3.NavigationService","i1","i2.DeviceState","i3.UserService","i1.DeviceState","i2.CartDrawerState","i3.DeviceState","i4.MediaService","i5","i6.MessageService","i2.UserService","i4.RbacService","i1.PrintService","i3","i4","i5.MessageService","i2.RbacService"],"mappings":"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"}