{"version":3,"sources":["webpack:///src/usr/src/app/src/pages/car/manufacturers.ts","webpack:///./src/pages/car/manufacturers.html","webpack:///src/usr/src/app/src/pages/car/models.ts","webpack:///./src/pages/car/models.html","webpack:///src/usr/src/app/src/pages/car/vehicles.ts","webpack:///./src/pages/car/vehicles.html","webpack:///src/usr/src/app/src/pages/cart/index.ts","webpack:///./src/pages/cart/index.html","webpack:///src/usr/src/app/src/pages/catalogue/list.ts","webpack:///./src/pages/catalogue/list.html","webpack:///src/usr/src/app/src/pages/catalogue/products.ts","webpack:///./src/pages/catalogue/products.html","webpack:///src/usr/src/app/src/pages/category/manufacturers.ts","webpack:///./src/pages/category/manufacturers.html","webpack:///src/usr/src/app/src/pages/category/models.ts","webpack:///./src/pages/category/models.html","webpack:///src/usr/src/app/src/pages/category/products.ts","webpack:///./src/pages/category/products.html","webpack:///src/usr/src/app/src/pages/category/vehicles.ts","webpack:///./src/pages/category/vehicles.html","webpack:///src/usr/src/app/src/pages/contact/index.ts","webpack:///./src/pages/contact/index.html","webpack:///src/usr/src/app/src/pages/error/index.ts","webpack:///./src/pages/error/index.html","webpack:///src/usr/src/app/src/pages/home.ts","webpack:///./src/pages/home.html","webpack:///src/usr/src/app/src/pages/invoice/index.ts","webpack:///./src/pages/invoice/index.html","webpack:///src/usr/src/app/src/pages/order/index.ts","webpack:///./src/pages/order/index.html","webpack:///src/usr/src/app/src/pages/privacy/index.ts","webpack:///./src/pages/privacy/index.html","webpack:///src/usr/src/app/src/pages/return/index.ts","webpack:///./src/pages/return/index.html","webpack:///src/usr/src/app/src/pages/search/index.ts","webpack:///./src/pages/search/index.html","webpack:///src/usr/src/app/src/pages/user/admin.ts","webpack:///./src/pages/user/admin.html","webpack:///src/usr/src/app/src/pages/user/index.ts","webpack:///./src/pages/user/index.html","webpack:///src/usr/src/app/src/pages/user/login.ts","webpack:///./src/pages/user/login.html","webpack:///src/usr/src/app/src/pages/user/reset.ts","webpack:///./src/pages/user/reset.html"],"names":[],"mappings":"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","file":"app~b98765b7.71ff2c0ad52d6c797d15.chunk.js","sourcesContent":["import { I18N } from 'aurelia-i18n';\nimport { Utils } from 'utils/helpers/utils';\nimport { Router } from 'aurelia-router';\nimport { IManufacturer } from 'domain/Car/IManufacturer';\nimport { LogManager, autoinject, observable } from \"aurelia-framework\";\nimport { CarService } from \"services/car/car-service\";\nimport $ from 'jquery';\nimport 'bootstrap';\n\nexport const log = LogManager.getLogger('app.car.manufacturers');\n\n@autoinject\nexport class Manufacturers {\n  manufacturers: IManufacturer[];\n  error: string;\n  @observable filter: string;\n\n  hasFocus = true;\n\n  constructor(\n    private carService: CarService,\n    private router: Router,\n    private i18n: I18N\n  ) { }\n\n  activate() {\n    this.carService.fetchManufacturers().then(manufacturers => {\n      this.manufacturers = manufacturers;\n    }).catch(error => this.error = Utils.getErrorMessage(error, this.i18n));\n  }\n\n  loadModels(manufacturer: IManufacturer) {\n    this.router.navigateToRoute('carModels', {\n      id: manufacturer.id,\n      name: Utils.encode(manufacturer.name, true)\n    });\n  }\n\n  filterChanged(term: string) {\n    term = term.toLowerCase();\n\n    $(() => {\n      $('.manufacturer').each(function () {\n        const filterMatches = term.length > 0 && $(this).text().toLowerCase().indexOf(term) > -1;\n        const isResetAndPopular = term.length == 0 && $(this).hasClass(\"popular-manu\");\n\n        if (filterMatches || isResetAndPopular)\n          $(this).removeClass('d-none');\n        else\n          $(this).addClass('d-none');\n      });\n    });\n  }\n}\n","module.exports = \"<template>\\n  <require from=\\\"components/general/loading\\\"></require>\\n  <require from=\\\"resources/style.css\\\"></require>\\n\\n  <div class=\\\"mx-auto text-center\\\" if.bind=\\\"manufacturers\\\">\\n    <div class=\\\"input-group sticky-top mx-auto pb-3\\\">\\n      <input focus.bind=\\\"hasFocus\\\" type=\\\"text\\\" class=\\\"form-control\\\"\\n             placeholder=\\\"${'pages.manufacturers.hint' & t}\\\" value.bind=\\\"filter\\\">\\n    </div>\\n\\n    <button type=\\\"button\\\"\\n            class=\\\"btn btn-secondary manufacturer ${manufacturer.isPopular ? 'popular-manu' : 'd-none'}\\\"\\n            repeat.for=\\\"manufacturer of manufacturers\\\"\\n            click.trigger=\\\"loadModels(manufacturer)\\\">${manufacturer.name}</button>\\n  </div>\\n\\n  <loading else error.bind=\\\"error\\\" error-title=\\\"${'pages.manufacturers.errors.load' & t}\\\"\\n           error-details-class=\\\"font-italic\\\" error-details.bind=\\\"error\\\">\\n  </loading>\\n\\n</template>\\n\";","import { I18N } from 'aurelia-i18n';\nimport { ICar } from 'domain/Car/ICar';\nimport { IModel } from 'domain/Car/IModel';\nimport { Router } from 'aurelia-router';\nimport { LogManager, autoinject, observable } from \"aurelia-framework\";\nimport { CarService } from \"services/car/car-service\";\nimport { Utils } from 'utils/helpers/utils';\nimport $ from 'jquery';\nimport 'bootstrap';\nimport 'moment';\nimport 'bootstrap-sortable';\n\nexport const log = LogManager.getLogger('app.Car.Models');\n\n@autoinject\nexport class Models {\n  models: IModel[];\n  manufacturerId: number;\n  manufacturerName: string;\n\n  car: ICar;\n  query: string;\n\n  error: string;\n  @observable\n  filter: string;\n\n  constructor(\n    private carService: CarService,\n    private router: Router,\n    private i18n: I18N\n  ) { }\n\n  activate(parameters: any) {\n    this.manufacturerId = parameters.id;\n    this.manufacturerName = decodeURIComponent(parameters.name);\n\n    this.car = {\n      model: {\n        manufacturer: {\n          id: this.manufacturerId,\n          name: this.manufacturerName\n        }\n      }\n    } as any;\n\n    this.loadModels();\n\n    if (parameters.query) {\n      this.query = decodeURIComponent(parameters.query);\n      this.loadCar();\n    }\n  }\n\n  // #region MAIN\n\n  filterChanged(term: string) {\n    term = term.toLowerCase();\n\n    $(() => {\n      $('.model').each(function () {\n        let matchesYear: boolean | undefined = undefined;\n        const words: string[] = [];\n\n        term.split(' ').forEach(word => {\n          const year = parseInt(word);\n\n          // Is it a valid year\n          if (!isNaN(year) && word.length == 4) {\n            const defaultMax = new Date().getFullYear();\n\n            const minYear = parseInt($(this).children()[1].innerText.substr(0, 4));\n            const maxYear = parseInt($(this).children()[2].innerText.substr(0, 4)) || defaultMax;\n\n            if (minYear <= year && year <= maxYear)\n              matchesYear = true;\n\n            // To tell the difference between having no years to match and matching no years \n            if (matchesYear === undefined)\n              matchesYear = false;\n          } else {\n            words.push(word);\n          }\n        });\n\n        // Match text without valid years\n        const matchesText = $(this).text().toLowerCase().indexOf(words.join(' ')) > -1;\n\n        if (matchesYear === undefined)\n          $(this).toggle(matchesText);\n        else\n          $(this).toggle(matchesText && matchesYear);\n      });\n    });\n  }\n\n  // #endregion\n\n  // #region LOAD\n\n  loadModels() {\n    this.carService.fetchModels(this.manufacturerId).then(result => {\n      this.models = result;\n      Utils.loadSortable();\n    }).catch(error => this.error = Utils.getErrorMessage(error, this.i18n));\n  }\n\n  loadCar() {\n    this.carService.fetchCarByQuery(this.query).then(result => {\n      this.car = result;\n      this.car.model.manufacturer.id = this.manufacturerId;\n\n      Utils.loadSortable();\n    }).catch(error => this.error = Utils.getErrorMessage(error, this.i18n));\n  }\n\n  // #endregion\n\n  // #region ACTIONS\n\n  openVehicles(modelId: number) {\n    if (this.query) {\n      this.router.navigateToRoute('carVehicles', {\n        manuId: this.manufacturerId,\n        modelId: modelId,\n        query: Utils.encode(this.query)\n      });\n    } else {\n      this.router.navigateToRoute('carVehicles', {\n        manuId: this.manufacturerId,\n        modelId: modelId\n      });\n    }\n  }\n\n  // #endregion\n}\n","module.exports = \"<template>\\n  <require from=\\\"components/car/car-menu\\\"></require>\\n  <require from=\\\"components/general/loading\\\"></require>\\n  <require from=\\\"!style-loader!css-loader!bootstrap-sortable/Contents/bootstrap-sortable.css\\\">\\n  </require>\\n\\n  <template if.bind=\\\"models\\\">\\n    <car-menu if.bind=\\\"car\\\" car.bind=\\\"car\\\" level.bind=\\\"1\\\"\\n              filter-placeholder=\\\"${'pages.models.hint' & t}\\\" filter-value.two-way=\\\"filter\\\">\\n    </car-menu>\\n\\n    <table\\n           class=\\\"table table-borderless table-hover table-sm table-responsive-md sortable text-nowrap\\\">\\n      <thead>\\n        <tr>\\n          <th data-defaultsign='nospan' data-defaultsort=\\\"asc\\\">\\n            ${'pages.models.headers.name' & t}\\n          </th>\\n          <th class=\\\"text-center\\\" data-defaultsign='nospan' data-dateformat=\\\"YYYY-MM\\\">\\n            ${'pages.models.headers.from' & t}\\n          </th>\\n          <th class=\\\"text-center\\\" data-defaultsign='nospan' data-dateformat=\\\"YYYY-MM\\\">\\n            ${'pages.models.headers.to' & t}\\n          </th>\\n        </tr>\\n      </thead>\\n      <tbody>\\n        <tr class=\\\"model\\\" repeat.for=\\\"model of models\\\" click.trigger=\\\"openVehicles(model.id)\\\">\\n          <td>${model.name}</td>\\n          <td class=\\\"text-center\\\">${model.productionStartYearMonth}</td>\\n          <td class=\\\"text-center\\\">${model.productionEndYearMonth}</td>\\n        </tr>\\n      </tbody>\\n    </table>\\n  </template>\\n\\n  <loading else error.bind=\\\"error\\\" error-title=\\\"${'pages.models.errors.load' & t}\\\"\\n           error-details-class=\\\"font-italic\\\" error-details.bind=\\\"error\\\">\\n  </loading>\\n\\n</template>\\n\";","import { I18N } from 'aurelia-i18n';\nimport { ICar } from 'domain/Car/ICar';\nimport { Utils } from 'utils/helpers/utils';\nimport { Router } from 'aurelia-router';\nimport { LogManager, autoinject, observable } from \"aurelia-framework\";\nimport { CarService } from \"services/car/car-service\";\nimport { IVehicle } from 'domain/Car/IVehicle';\nimport $ from 'jquery';\n\nexport const log = LogManager.getLogger('app.car.vehicles');\n\n@autoinject\nexport class Vehicles {\n  car: ICar;\n  vehicles: IVehicle[];\n  manuId: number;\n  modelId: number;\n\n  query: string;\n  error: string;\n  @observable filter: string;\n\n  constructor(\n    private carService: CarService,\n    private router: Router,\n    private i18n: I18N\n  ) { }\n\n  activate(parameters: any) {\n    if (parameters.query)\n      this.query = decodeURIComponent(parameters.query);\n\n    if (\"manuId\" in parameters) {\n      this.manuId = parameters.manuId;\n      this.modelId = parameters.modelId;\n\n      this.loadVehicles();\n\n      if (this.query)\n        this.loadCar();\n    } else {\n      this.loadVehiclesByQuery();\n    }\n  }\n\n  // #region MAIN\n\n  filterChanged(term: string) {\n    term = term.toLowerCase();\n\n    $(() => {\n      $('.vehicle').each(function () {\n        $(this).toggle($(this).text().toLowerCase().indexOf(term) > -1);\n      });\n    });\n  }\n\n  // #endregion\n\n  // #region LOAD\n\n  loadVehiclesByQuery() {\n    this.carService.fetchVehiclesByQuery(this.query).then(result => {\n      if (Utils.isArrayEmpty(result)) {\n        this.error = this.i18n.tr('pages.vehicles.errors.not-found', { 'query': this.query });\n        return;\n      }\n\n      const firstVehicle = result[0];\n\n      // Does result actually contain models or manufacturers?\n      if (firstVehicle.id == 0) {\n        // Result only contains manufacturers\n        if (firstVehicle.model.id == 0) {\n          this.router.navigateToRoute('carModels', {\n            id: firstVehicle.model.manufacturer.id,\n            name: Utils.encode(firstVehicle.model.manufacturer.name),\n            query: Utils.encode(this.query)\n          });\n          return;\n        }\n\n        this.router.navigateToRoute('carVehicles', {\n          manuId: firstVehicle.model.manufacturer.id,\n          modelId: firstVehicle.model.id,\n          query: Utils.encode(this.query)\n        });\n        return;\n      }\n\n      if (result.length == 1) {\n        this.openCatalogue(firstVehicle.id);\n        return;\n      }\n\n      this.manuId = firstVehicle.model.manufacturer.id;\n      this.modelId = firstVehicle.model.id;\n      this.vehicles = result;\n\n      this.loadCar();\n      Utils.loadSortable();\n    }).catch(error => this.error = Utils.getErrorMessage(error, this.i18n));\n  }\n\n  loadCar() {\n    this.carService.fetchCarByQuery(this.query).then(result => {\n      this.car = result;\n      this.fillCar(result);\n\n      Utils.loadSortable();\n    }).catch(error => this.error = Utils.getErrorMessage(error, this.i18n));\n  }\n\n  loadVehicles() {\n    this.carService.fetchVehicles(this.manuId, this.modelId).then(result => {\n      this.fillCar(result[0]);\n      this.vehicles = result;\n      Utils.loadSortable();\n    }).catch(error => this.error = Utils.getErrorMessage(error, this.i18n));\n  }\n\n  // #endregion\n\n  // #region ACTIONS\n\n  openCatalogue(vehicleId: number) {\n    if (this.query) {\n      this.router.navigateToRoute('catalogueList', {\n        vehicleId: vehicleId,\n        query: Utils.encode(this.query)\n      });\n    } else {\n      this.router.navigateToRoute('catalogueList', { vehicleId: vehicleId });\n    }\n  }\n\n  // #endregion\n\n  fillCar(vehicle: IVehicle) {\n    if (!this.car)\n      this.car = {} as any;\n\n    this.car.model = vehicle.model;\n  }\n}\n","module.exports = \"<template>\\n  <require from=\\\"components/car/car-menu\\\"></require>\\n  <require from=\\\"components/general/loading\\\"></require>\\n  <require from=\\\"!style-loader!css-loader!bootstrap-sortable/Contents/bootstrap-sortable.css\\\">\\n  </require>\\n\\n  <template if.bind=\\\"vehicles\\\">\\n    <car-menu if.bind=\\\"car\\\" car.bind=\\\"car\\\" level.bind=\\\"2\\\"\\n              filter-placeholder=\\\"${'pages.vehicles.hint' & t}\\\" filter-value.two-way=\\\"filter\\\">\\n    </car-menu>\\n\\n    <table\\n           class=\\\"table table-borderless table-hover table-sm table-responsive-md sortable text-nowrap\\\">\\n      <thead>\\n        <tr>\\n          <th data-defaultsign='nospan'>${'pages.vehicles.headers.name' & t}</th>\\n          <th class=\\\"text-end\\\" data-defaultsign='nospan' data-defaultsort=\\\"asc\\\">\\n            ${'pages.vehicles.headers.capacity-ccm' & t}\\n          </th>\\n          <th class=\\\"text-end\\\" data-defaultsign='nospan'>\\n            ${'pages.vehicles.headers.power-kw' & t}\\n          </th>\\n          <th data-defaultsign='nospan'>${'pages.vehicles.headers.motor-code' & t}</th>\\n          <th data-defaultsign='nospan'>${'pages.vehicles.headers.motor-type' & t}</th>\\n          <th data-defaultsign='nospan'>${'pages.vehicles.headers.impulsion' & t}</th>\\n        </tr>\\n      </thead>\\n      <tbody>\\n        <tr class=\\\"vehicle\\\" repeat.for=\\\"vehicle of vehicles\\\"\\n            click.delegate=\\\"openCatalogue(vehicle.id)\\\">\\n          <td>${vehicle.name}</td>\\n          <td class=\\\"text-end\\\">${vehicle.capacityCcm}</td>\\n          <td class=\\\"text-end\\\">${vehicle.powerKw}</td>\\n          <td>${vehicle.motorCodes.join(', ')}</td>\\n          <td>${vehicle.motorType}</td>\\n          <td>${vehicle.impulsion}</td>\\n        </tr>\\n      </tbody>\\n    </table>\\n  </template>\\n\\n  <loading else error.bind=\\\"error\\\" error-title=\\\"${'pages.vehicles.errors.load' & t}\\\"\\n           error-details-class=\\\"font-italic\\\" error-details.bind=\\\"error\\\">\\n  </loading>\\n\\n</template>\\n\";","import { I18N } from \"aurelia-i18n\";\nimport { WarehouseService } from \"services/client/warehouse-service\";\nimport { IWarehouse } from \"domain/Client/IWarehouse\";\nimport { TransportService } from \"services/client/transport-service\";\nimport { AppConfig } from \"app-config\";\nimport { Utils } from \"utils/helpers/utils\";\nimport { TKEvent } from \"utils/enums/TKEvent\";\nimport { EventAggregator } from \"aurelia-event-aggregator\";\nimport { Router } from \"aurelia-router\";\nimport { LogManager, autoinject, bindable } from \"aurelia-framework\";\nimport { CartService } from \"services/cart/cart-service\";\nimport { ICart } from \"domain/Cart/ICart\";\nimport { PriceType } from \"utils/enums/PriceType\";\nimport { IProduct } from \"domain/Product/IProduct\";\nimport { CartProductService } from \"services/cart/cart-product-service\";\nimport { ICartProduct } from \"domain/Cart/ICartProduct\";\n\nexport const log = LogManager.getLogger(\"app.cart.index\");\n\n@autoinject\nexport class Index {\n  allowedTransportOptions: Map<string, string>;\n  warehouses: IWarehouse[];\n\n  cart: ICart;\n  error: string;\n\n  @bindable comment = \"\";\n  selectedTransportAddress = \"\";\n\n  totalWithoutVat = 0;\n  totalVat = 0;\n  totalWithVat = 0;\n\n  options = {\n    showImages: true,\n    showEan: true,\n    showStock: true,\n    showWarehouse: true,\n    showReason: false,\n    showDisplayPrice: true,\n  };\n\n  constructor(\n    private cartProductService: CartProductService,\n    private cartService: CartService,\n    private transportService: TransportService,\n    private warehouseService: WarehouseService,\n    private router: Router,\n    private eventAggregator: EventAggregator,\n    private appConfig: AppConfig,\n    private i18n: I18N,\n  ) {\n    this.eventAggregator.subscribe(TKEvent.updateCartTotal, () => {\n      this.updateTotal();\n    });\n    this.eventAggregator.subscribe(TKEvent.cartProductsChanged, () => {\n      this.updateTotal();\n    });\n    this.eventAggregator.subscribe(TKEvent.cartProductsWarehouseChanged, (product: IProduct) => {\n      this.updateTotal();\n    });\n  }\n\n  attached() {\n    this.loadTransportsThenCart();\n    this.loadWarehouses();\n  }\n\n  // #region OBSERVABLES, LISTENERS\n\n  updateTotal() {\n    if (this.cart == undefined || this.cart.products == undefined) return;\n\n    this.totalWithoutVat = 0;\n\n    this.cart.products.forEach(p => {\n      const wholesale = p.selectedStock?.prices.find(price => price.type == PriceType.Wholesale);\n      if (wholesale != null) this.totalWithoutVat += (wholesale.withoutVat ?? 0) * p.quantity;\n    });\n    this.totalWithoutVat = Utils.round(this.totalWithoutVat);\n\n    this.totalVat = Utils.round(this.totalWithoutVat * AppConfig.vatRate);\n    this.totalWithVat = this.totalWithoutVat + this.totalVat;\n  }\n\n  // #endregion\n\n  // #region LOAD\n  loadTransportsThenCart() {\n    this.transportService\n      .getAllowedTransportOptions()\n      .then(result => {\n        this.allowedTransportOptions = result;\n        this.loadCart();\n      })\n      .catch(() =>\n        Utils.showErrorToast(log, this.i18n.tr(\"components.transport-options.errors.load\")),\n      );\n  }\n\n  loadWarehouses() {\n    this.warehouseService.getWarehouses().then(result => {\n      this.warehouses = result;\n    });\n  }\n\n  loadCart() {\n    this.cartService\n      .fetchCurrentFull()\n      .then(result => {\n        this.cart = result;\n\n        for (const product of this.cart.products) {\n          product.warehouseId = product.warehouseId ?? 0;\n          product.transportId = product.transportId?.toString() ?? \"0\";\n\n          if (product.warehouseId == 0 && !product.externalWarehouseId)\n            product.warehouseId = this.appConfig.userSettings.warehouseId;\n\n          if (product.externalWarehouseId && product.warehouseId == 0) {\n            product.warehouseId = -1;\n          }\n        }\n\n        this.updateTotal();\n      })\n      .catch(error => (this.error = Utils.getErrorMessage(error, this.i18n)));\n  }\n\n  // #endregion\n\n  // #region ACTIONS\n\n  placeOrder() {\n    const productsWithoutWarehouse: string[] = [];\n    const productsWithoutTransport: string[] = [];\n\n    for (const product of this.cart.products) {\n      const warehouseId = product.warehouseId ?? 0;\n      const externalWarehouseId = product.externalWarehouseId ?? 0;\n\n      // Check warehouse: valid if warehouseId > 0 OR externalWarehouseId > 0\n      if (warehouseId <= 0 && externalWarehouseId <= 0) {\n        productsWithoutWarehouse.push(product.code);\n      }\n\n      // Check transport: required for all products\n      if (!product.transportId || product.transportId === \"0\") {\n        productsWithoutTransport.push(product.code);\n      }\n    }\n\n    if (productsWithoutWarehouse.length > 0) {\n      const codes = productsWithoutWarehouse.join(\", \");\n      Utils.showErrorToast(log, this.i18n.tr(\"pages.cart.errors.warehouse-missing\", { codes }));\n      return;\n    }\n\n    if (productsWithoutTransport.length > 0) {\n      const codes = productsWithoutTransport.join(\", \");\n      Utils.showErrorToast(log, this.i18n.tr(\"components.transport-options.errors.none-selected\") + \": \" + codes);\n      return;\n    }\n\n    // Add selected transport address to the end of the comment\n    if (this.selectedTransportAddress) {\n      if (this.comment) this.comment += \"; \";\n      this.comment +=\n        this.i18n.tr(\"pages.cart.fields.transport-address\") + \" \" + this.selectedTransportAddress;\n    }\n\n    const placeOrderButton = document.getElementById(`placeOrderButton`) as HTMLButtonElement;\n    placeOrderButton.disabled = true;\n\n    this.cartService\n      .placeOrder(this.comment)\n      .then(() => {\n        this.eventAggregator.publish(TKEvent.cartProductsChanged);\n        this.router.navigateToRoute(\"orderIndex\");\n      })\n      .catch(() => Utils.showErrorToast(log, this.i18n.tr(\"pages.cart.errors.submit\")))\n      .finally(() => {\n        placeOrderButton.disabled = false;\n      });\n  }\n\n  clearCart() {\n    if (!confirm(this.i18n.tr(\"pages.cart.messages.confirm-clear\"))) return;\n\n    this.cartService\n      .clearCart()\n      .then(() => {\n        this.loadCart();\n        this.eventAggregator.publish(TKEvent.cartProductsChanged);\n      })\n      .catch();\n  }\n\n  // #endregion\n}\n","module.exports = \"<template>\\n  <require from=\\\"components/cart/cart-product-list\\\"></require>\\n  <require from=\\\"components/general/loading\\\"></require>\\n  <require from=\\\"utils/classes/value-converters\\\"></require>\\n  <require from=\\\"components/cart/transport-list\\\"></require>\\n\\n  <template if.bind=\\\"cart.products !== undefined && cart.products.length !== 0\\\">\\n    <cart-product-list products.two-way=\\\"cart.products\\\" options.bind=\\\"options\\\"></cart-product-list>\\n\\n    <transport-list products.bind=\\\"cart.products\\\" allowed-transport-options.bind=\\\"allowedTransportOptions\\\" warehouses.bind=\\\"warehouses\\\"></transport-list>\\n\\n    <div class=\\\"input-group mt-3\\\">\\n      <button type=\\\"button\\\" class=\\\"btn btn-danger\\\" click.trigger=\\\"clearCart()\\\">\\n        ${'pages.cart.buttons.clear' & t}\\n      </button>\\n\\n      <span class=\\\"input-group-text form-control\\\"></span>\\n\\n      <span class=\\\"input-group-text text-end\\\">\\n        ${'pages.cart.fields.without-vat' & t} ${totalWithoutVat | currencyFormat}\\n      </span>\\n      <span class=\\\"input-group-text text-end\\\">\\n        ${'pages.cart.fields.vat' & t} ${totalVat | currencyFormat}\\n      </span>\\n      <span class=\\\"input-group-text text-end\\\">\\n        </b>${'pages.cart.fields.total' & t} ${totalWithVat | currencyFormat}</b>\\n      </span>\\n    </div>\\n\\n    <div class=\\\"input-group mt-0\\\">\\n      <textarea class=\\\"form-control\\\" rows=\\\"1\\\" value.bind=\\\"comment\\\"\\n                placeholder=\\\"${'pages.cart.fields.comment-hint' & t}\\\"></textarea>\\n      <button type=\\\"button\\\" id=\\\"placeOrderButton\\\"\\n      class=\\\"btn btn-success\\\" click.trigger=\\\"placeOrder()\\\">\\n        ${'pages.cart.buttons.submit' & t}\\n      </button>\\n    </div>\\n  </template>\\n\\n  <loading else error.bind=\\\"error\\\" error-title=\\\"${'pages.cart.errors.load' & t}\\\"\\n           error-details-class=\\\"font-italic\\\" error-details.bind=\\\"error\\\"\\n           not-found.bind=\\\"cart.products !== undefined && cart.products.length == 0\\\"\\n           not-found-title=\\\"${'pages.cart.errors.not-found.title' & t}\\\"\\n           not-found-details=\\\"${'pages.cart.errors.not-found.details' & t}\\\">\\n  </loading>\\n\\n</template>\\n\";","import { I18N } from 'aurelia-i18n';\nimport { Utils } from 'utils/helpers/utils';\nimport { AppConfig } from 'app-config';\nimport { IParentItem } from 'domain/Base/IParentItem';\nimport { CarService } from 'services/car/car-service';\nimport { ICar } from 'domain/Car/ICar';\nimport { CatalogueService } from 'services/car/catalogue-service';\nimport { Router } from 'aurelia-router';\nimport { TaskQueue, LogManager, autoinject, observable } from \"aurelia-framework\";\nimport { CarHelper } from 'utils/helpers/car-helper';\nimport $ from 'jquery';\nimport 'bootstrap';\n\nexport const log = LogManager.getLogger('app.catalogue.list');\n\n@autoinject\nexport class List {\n  car: ICar;\n  catalogues: IParentItem[];\n\n  @observable filter: string;\n  error: string;\n\n  vehicleId: number;\n  query: string | undefined;\n\n  catalogueId: number;\n  visibleCatalogues: IParentItem[];\n  chunkedCatalogues: IParentItem[][];\n\n  constructor(\n    private catalogueService: CatalogueService,\n    private carService: CarService,\n    private router: Router,\n    private appConfig: AppConfig,\n    private i18n: I18N,\n    private taskQueue: TaskQueue\n  ) { }\n\n  activate(parameters: any) {\n    this.vehicleId = parameters.vehicleId;\n\n    if (parameters.catalogueId)\n      this.catalogueId = parameters.catalogueId;\n\n    if (parameters.filterText)\n      this.filter = decodeURIComponent(parameters.filterText);\n\n    if (parameters.query) {\n      this.query = decodeURIComponent(parameters.query);\n      this.carService.fetchCarWithQuery(parameters.vehicleId, parameters.query).then(result => this.carResult(result));\n    } else {\n      this.carService.fetchCar(parameters.vehicleId).then(result => this.carResult(result));\n    }\n\n    this.loadCatalogues(parameters.vehicleId);\n  }\n\n  attached() {\n    this.filterCatalogues();\n  }\n\n  filterChanged(newValue: string, oldValue: string) {\n    this.filterCatalogues();\n\n    if (oldValue === undefined)\n      return;\n\n    const parameters = {\n      vehicleId: this.vehicleId\n    } as any;\n    if (newValue)\n      parameters.filterText = Utils.encode(newValue, true);\n    if (this.query)\n      parameters.query = Utils.encode(this.query, true);\n\n    this.router.navigateToRoute('catalogueList', parameters, { trigger: false, replace: true });\n  }\n\n  // #region LOAD\n\n  loadCatalogues(vehicleId: number) {\n    this.catalogueService.fetchCatalogues(vehicleId).then(result => {\n      this.catalogues = result;\n      this.filterCatalogues();\n    }).catch(error => this.error = Utils.getErrorMessage(error, this.i18n));\n  }\n\n  // #endregion\n\n  loadAccordionsState() {\n    const catalogueId = this.catalogueId;\n\n    if (catalogueId && !this.filter) {\n      const collapsibles = $(\"[data-item-id='\" + catalogueId + \"']\");\n      const carDetails = $(\"#car-details\");\n\n      // Hide car details if it exists\n      if (catalogueId)\n        carDetails.removeClass(\"show\");\n\n      // Open catalogues\n      collapsibles.parents().addClass(\"show\");\n\n      // Set the catalogue ID value to 0 so it wouldn't complicate filtering items\n      this.catalogueId = 0;\n    }\n  }\n\n  // #region ACTIONS\n  filterCatalogues() {\n    if (!this.catalogues)\n      return;\n\n    // Clear old catalogues - required for 3+ level subcatalogues to properly open\n    this.chunkedCatalogues = [];\n\n    // Wait for Aurelia to finish clearing the DOM\n    this.taskQueue.queueMicroTask(() => this.updateCatalogues());\n  }\n\n  updateCatalogues() {\n    const currentFilter = this.filter?.toLowerCase();\n\n    this.visibleCatalogues = currentFilter\n      ? Utils.deepFilterItems(this.catalogues, currentFilter)\n      : this.catalogues;\n    this.chunkedCatalogues = Utils.chunkify(this.visibleCatalogues, 3, true);\n\n    // Wait for Aurelia to finish populating the DOM\n    this.taskQueue.queueMicroTask(() => {\n      this.showFilteredCatalogues();\n      this.loadAccordionsState();\n      this.fixBorders();\n    });\n  }\n\n  openProducts(catalogue: IParentItem,) {\n    const parameters = {\n      vehicleId: this.car.id,\n      catalogueId: catalogue.id,\n      catalogueName: Utils.encode(catalogue.name),\n      page: 1\n    } as any;\n\n    if (this.query)\n      parameters.query = Utils.encode(this.query, true);\n    if (this.filter)\n      parameters.filterText = Utils.encode(this.filter, true);\n\n    this.router.navigateToRoute('catalogueProducts', parameters);\n  }\n\n  // #endregion\n\n  // #region HELPERS\n\n  carResult(result: ICar) {\n    this.car = result;\n\n    this.car.licencePlate = result.licencePlate;\n    \n    this.car.timeAddedToSearch = Date.now();\n    \n    this.appConfig.addCar(this.car);\n  }\n\n  showFilteredCatalogues() {\n    const currentFilter = this.filter?.toLowerCase();\n    const collapsibles = $('#catalogues').find(\"div.collapse\");\n\n    if (currentFilter) {\n      const carDetails = $(\"#car-details\");\n\n      // Hide car details if it exists\n      if (carDetails)\n        carDetails.removeClass(\"show\");\n\n      // Open catalogues\n      collapsibles.addClass(\"show\");\n\n      // Let user open & close catalogues as they please\n      collapsibles.removeAttr('data-parent');\n    } else {\n      // Close catalogues\n      collapsibles.removeClass(\"show\");\n    }\n  }\n\n  fixBorders() {\n    $(() => {\n      $(\".accordion\").each(function () {\n        $(this).children('.card').removeClass(\"accordion-card-visible-last\");\n        $(this).children('.card:not([style*=\"display: none\"]):last').addClass(\"accordion-card-visible-last\");\n      });\n    });\n  }\n\n  // #endregion\n}\n","module.exports = \"<template>\\n  <require from=\\\"components/car/car-menu\\\"></require>\\n  <require from=\\\"components/general/accordion\\\"></require>\\n  <require from=\\\"components/general/loading\\\"></require>\\n\\n  <div class=\\\"text-center mb-3\\\">\\n    <car-menu if.bind=\\\"car\\\" car.bind=\\\"car\\\" level.bind=\\\"3\\\"\\n              filter-placeholder=\\\"${'pages.car.hint' & t}\\\" filter-value.two-way=\\\"filter\\\"></car-menu>\\n  </div>\\n\\n  <div if.bind=\\\"visibleCatalogues !== undefined && visibleCatalogues.length !== 0\\\" class=\\\"row\\\"\\n       id=\\\"catalogues\\\">\\n    <accordion class=\\\"col mb-4\\\" list.bind=\\\"chunkedCatalogues[0]\\\" parent-id.bind=\\\"-1\\\"\\n               filter.bind=\\\"filter\\\" click-function.call=\\\"openProducts(item)\\\">\\n    </accordion>\\n    <accordion class=\\\"col mb-4\\\" list.bind=\\\"chunkedCatalogues[1]\\\" parent-id.bind=\\\"-2\\\"\\n               filter.bind=\\\"filter\\\" click-function.call=\\\"openProducts(item)\\\">\\n    </accordion>\\n    <accordion class=\\\"col mb-4\\\" list.bind=\\\"chunkedCatalogues[2]\\\" parent-id.bind=\\\"-3\\\"\\n               filter.bind=\\\"filter\\\" click-function.call=\\\"openProducts(item)\\\">\\n    </accordion>\\n  </div>\\n\\n  <loading else error.bind=\\\"error\\\" error-title=\\\"${'pages.car.errors.load.catalogues' & t}\\\"\\n           error-details.bind=\\\"error\\\"\\n           not-found.bind=\\\"visibleCatalogues !== undefined && visibleCatalogues.length == 0\\\"\\n           not-found-title=\\\"${'pages.car.errors.not-found.title' & t}\\\"\\n           not-found-details=\\\"${'pages.car.errors.not-found.details' & t}\\\">\\n  </loading>\\n\\n</template>\\n\";","import { TKEvent } from \"utils/enums/TKEvent\";\nimport { EventAggregator } from \"aurelia-event-aggregator\";\nimport { I18N } from \"aurelia-i18n\";\nimport { IProduct } from \"domain/Product/IProduct\";\nimport { IResult } from \"domain/IResult\";\nimport { Utils } from \"utils/helpers/utils\";\nimport { AppConfig } from \"app-config\";\nimport { ICar } from \"domain/Car/ICar\";\nimport { CarService } from \"services/car/car-service\";\nimport { CatalogueService } from \"services/car/catalogue-service\";\nimport { Router } from \"aurelia-router\";\nimport { LogManager, autoinject, observable } from \"aurelia-framework\";\nimport { SearchOrder } from \"utils/enums/SearchOrder\";\n\nexport const log = LogManager.getLogger(\"app.catalogue.products\");\n\n@autoinject\nexport class Products {\n  vehicleId: number;\n  catalogueId: number;\n  catalogueName: string;\n  query: string;\n\n  result: IResult<IProduct> | undefined;\n  car: ICar;\n\n  error: string;\n  isCarLoaded = false;\n\n  @observable({ changeHandler: \"parametersChanged\" }) orderBy: SearchOrder =\n    SearchOrder.Default;\n  @observable({ changeHandler: \"parametersChanged\" }) orderReversed = false;\n  @observable({ changeHandler: \"parametersChanged\" }) currentPage = 1;\n  @observable filter: string;\n  options = {\n    showAmount: false,\n    showSum: false,\n    showAddToCart: true,\n    showRemoveFromCart: false,\n  };\n\n  constructor(\n    private catalogueService: CatalogueService,\n    private carService: CarService,\n    private router: Router,\n    private appConfig: AppConfig,\n    private i18n: I18N,\n    private eventAggregator: EventAggregator\n  ) {\n    this.eventAggregator.subscribeOnce(TKEvent.userSettingsLoaded, () => {\n      this.loadCar();\n      this.loadProducts();\n    });\n  }\n\n  activate(parameters: any) {\n    this.vehicleId = parameters.vehicleId;\n    this.catalogueId = parameters.catalogueId;\n    this.catalogueName = decodeURIComponent(parameters.catalogueName);\n\n    if (parameters.query) this.query = decodeURIComponent(parameters.query);\n    if (parameters.filterText)\n      this.filter = decodeURIComponent(parameters.filterText);\n\n    const orderBy = parseInt(parameters.orderBy) || SearchOrder.Default;\n    const orderReversed = parameters.orderReversed == \"true\";\n\n    this.orderBy = orderBy;\n    this.orderReversed = orderReversed;\n\n    this.loadCar();\n    this.loadProducts();\n  }\n\n  filterChanged(newValue: string, oldValue: string) {\n    if (oldValue === undefined || !newValue) return;\n\n    const parameters = {\n      vehicleId: this.vehicleId,\n      filterText: Utils.encode(newValue, true),\n    } as any;\n    if (this.query) parameters.query = Utils.encode(this.query, true);\n\n    this.router.navigateToRoute(\"catalogueList\", parameters);\n  }\n\n  parametersChanged(newValue: number, oldValue: number) {\n    if (oldValue === undefined || newValue == undefined) return;\n\n    // Clear the old products so the loading icon could activate again\n    this.result = undefined;\n\n    const parameters = {\n      vehicleId: this.vehicleId,\n      catalogueId: this.catalogueId,\n      catalogueName: Utils.encode(this.catalogueName),\n      page: this.currentPage,\n    } as any;\n    if (this.filter) parameters.filterText = Utils.encode(this.filter, true);\n    if (this.query) parameters.query = Utils.encode(this.query, true);\n    if (this.orderBy != SearchOrder.Default) {\n      parameters.orderBy = this.orderBy;\n      parameters.orderReversed = this.orderReversed;\n    }\n\n    this.router.navigateToRoute(\"catalogueProducts\", parameters);\n\n    // Since navigating to the same route doesn't actually refresh the page\n    this.loadProducts();\n  }\n\n  loadCar() {\n    if (this.isCarLoaded || !this.vehicleId || !this.appConfig.userSettings)\n      return;\n\n    // Try to get the car from cache\n    const car = this.appConfig.getSelectedCar();\n\n    // If cached car exists and it has the right ID, we don't need to query it again\n    if (car && car.id == this.vehicleId) {\n      this.car = car;\n    } else {\n      this.carService\n        .fetchCar(this.vehicleId)\n        .then((result) => {\n          this.car = result;\n        })\n        .catch(() =>\n          Utils.showErrorToast(log, this.i18n.tr(\"pages.car.errors.load.car\"))\n        );\n    }\n\n    this.isCarLoaded = true;\n  }\n\n  loadProducts() {\n    if (this.result || !this.vehicleId || !this.appConfig.userSettings) return;\n\n    this.catalogueService\n      .fetchProducts(\n        this.vehicleId,\n        this.catalogueId,\n        this.currentPage,\n        this.orderBy,\n        this.orderReversed\n      )\n      .then((result) => {\n        this.result = result;\n      })\n      .catch((error) => (this.error = Utils.getErrorMessage(error, this.i18n)));\n  }\n}\n","module.exports = \"<template>\\n  <require from=\\\"components/product/product-list/product-list\\\"></require>\\n  <require from=\\\"components/car/car-menu\\\"></require>\\n  <require from=\\\"components/general/loading\\\"></require>\\n\\n  <car-menu if.bind=\\\"car\\\" car.bind=\\\"car\\\" catalogue-name.bind=\\\"catalogueName\\\" level.bind=\\\"4\\\"\\n            filter-value.two-way=\\\"filter\\\" catalogue-id.bind=\\\"catalogueId\\\"\\n            filter-placeholder=\\\"${'pages.car.hint' & t}\\\">\\n  </car-menu>\\n\\n  <product-list if.bind=\\\"result.items !== undefined && result.items.length !== 0\\\"\\n                vehicle-id.bind=\\\"vehicleId\\\" products.bind=\\\"result.items\\\" order-by.two-way=\\\"orderBy\\\"\\n                order-reversed.two-way=\\\"orderReversed\\\" options.bind=\\\"options\\\"\\n                current-page.two-way=\\\"currentPage\\\" last-page.bind=\\\"result.lastPage\\\"></product-list>\\n\\n  <loading else error.bind=\\\"error\\\" error-details.bind=\\\"error\\\"\\n           error-title=\\\"${'pages.catalogue.errors.load' & t}\\\"\\n           not-found.bind=\\\"result.items !== undefined && result.items.length == 0\\\"\\n           not-found-title=\\\"${'pages.catalogue.errors.not-found.title' & t}\\\"\\n           not-found-details=\\\"${'pages.catalogue.errors.not-found.details' & t}\\\">\\n  </loading>\\n\\n</template>\\n\";","import { I18N } from \"aurelia-i18n\";\nimport { Utils } from \"utils/helpers/utils\";\nimport { Router } from \"aurelia-router\";\nimport { IManufacturer } from \"domain/Car/IManufacturer\";\nimport { LogManager, autoinject, observable } from \"aurelia-framework\";\nimport $ from \"jquery\";\nimport \"bootstrap\";\nimport { CarCategoryService } from \"services/car/car-category-service\";\n\nexport const log = LogManager.getLogger(\"app.car.manufacturers\");\n\n@autoinject\nexport class Manufacturers {\n  categoryId: number;\n  manufacturers: IManufacturer[];\n\n  error: string;\n  @observable filter: string;\n\n  hasFocus = true;\n\n  constructor(\n    private carCategoryService: CarCategoryService,\n    private router: Router,\n    private i18n: I18N\n  ) {}\n\n  activate(parameters: any) {\n    this.categoryId = parseInt(parameters.categoryId);\n\n    this.carCategoryService\n      .fetchManufacturers(this.categoryId)\n      .then((manufacturers) => {\n        manufacturers.sort((a, b) => a.name.localeCompare(b.name));\n\n        this.manufacturers = manufacturers;\n      })\n      .catch((error) => (this.error = Utils.getErrorMessage(error, this.i18n)));\n  }\n\n  loadProducts() {\n    this.router.navigateToRoute(\"categoryProducts\", {\n      categoryId: this.categoryId,\n      page: 1,\n    });\n  }\n\n  loadModels(manufacturer: IManufacturer) {\n    this.router.navigateToRoute(\"categoryModels\", {\n      categoryId: this.categoryId,\n      manufacturer:\n        manufacturer.id != 0\n          ? manufacturer.id\n          : Utils.encode(manufacturer.name),\n    });\n  }\n\n  filterChanged(term: string) {\n    term = term.toLowerCase();\n\n    $(() => {\n      $(\".manufacturer\").each(function () {\n        $(this).toggle($(this).text().toLowerCase().indexOf(term) > -1);\n\n        if (term.length != 0 || $(this).hasClass(\"popular-manu\")) return;\n\n        $(this).css(\"display\", \"none\");\n      });\n    });\n  }\n}\n","module.exports = \"<template>\\n  <require from=\\\"components/general/loading\\\"></require>\\n  <require from=\\\"resources/style.css\\\"></require>\\n\\n  <div class=\\\"mx-auto text-center\\\" if.bind=\\\"manufacturers\\\">\\n    <div class=\\\"input-group sticky-top mx-auto pb-3\\\">\\n      <input focus.bind=\\\"hasFocus\\\" type=\\\"text\\\" class=\\\"form-control\\\"\\n             placeholder=\\\"${'pages.manufacturers.hint' & t}\\\" value.bind=\\\"filter\\\">\\n    </div>\\n\\n    <button type=\\\"button\\\" class=\\\"btn btn-secondary manufacturer popular-manu\\\"\\n            repeat.for=\\\"manufacturer of manufacturers\\\"\\n            click.trigger=\\\"loadModels(manufacturer)\\\">${manufacturer.name}</button>\\n  </div>\\n\\n  <loading else error.bind=\\\"error\\\" error-title=\\\"${'pages.manufacturers.errors.load' & t}\\\"\\n           error-details-class=\\\"font-italic\\\" error-details.bind=\\\"error\\\">\\n  </loading>\\n\\n  <button if.bind=\\\"categoryId == 10\\\" type=\\\"button\\\" class=\\\"btn btn-link\\\"\\n          click.trigger=\\\"loadProducts()\\\">${'pages.manufacturers.show-all' & t}</button>\\n\\n</template>\\n\";","import { I18N } from \"aurelia-i18n\";\nimport { Router } from \"aurelia-router\";\nimport { LogManager, autoinject, observable } from \"aurelia-framework\";\nimport { Utils } from \"utils/helpers/utils\";\nimport $ from \"jquery\";\nimport \"bootstrap\";\nimport \"bootstrap-sortable\";\nimport { CarCategoryService } from \"services/car/car-category-service\";\nimport { CarMenuLevel } from \"utils/enums/CarMenuLevel\";\nimport { IModel } from \"domain/Car/IModel\";\n\nexport const log = LogManager.getLogger(\"app.category.models\");\n\n@autoinject\nexport class Models {\n  categoryId: number;\n  manufacturerId: number;\n\n  manufacturerName: string;\n  models: IModel[];\n\n  car: {\n    model: {\n      manufacturer: {\n        id: number;\n        name: string;\n      };\n    };\n  };\n  level = CarMenuLevel.Models;\n\n  error: string;\n  @observable filter: string;\n\n  constructor(\n    private carCategoryService: CarCategoryService,\n    private router: Router,\n    private i18n: I18N\n  ) {}\n\n  activate(parameters: any) {\n    this.categoryId = parseInt(parameters.categoryId);\n\n    if (isNaN(parameters.manufacturer))\n      this.manufacturerName = decodeURIComponent(parameters.manufacturer);\n    else this.manufacturerId = parseInt(parameters.manufacturer);\n\n    this.loadModelsAndCar();\n  }\n\n  // #region MAIN\n\n  filterChanged(term: string) {\n    term = term.toLowerCase();\n\n    $(() => {\n      $(\".model\").each(function () {\n        $(this).toggle($(this).text().toLowerCase().indexOf(term) > -1);\n      });\n    });\n  }\n\n  // #endregion\n\n  // #region LOAD\n\n  loadModelsAndCar() {\n    this.carCategoryService\n      .fetchModels(\n        this.categoryId,\n        this.manufacturerId ?? this.manufacturerName\n      )\n      .then((result) => {\n        this.manufacturerName = result[0].manufacturer.name;\n        this.models = result;\n\n        this.car = {\n          model: {\n            manufacturer: {\n              id: this.manufacturerId,\n              name: this.manufacturerName,\n            },\n          },\n        };\n\n        Utils.loadSortable();\n      })\n      .catch((error) => (this.error = Utils.getErrorMessage(error, this.i18n)));\n  }\n\n  // #endregion\n\n  // #region ACTIONS\n\n  openVehicles(model: IModel) {\n    this.router.navigateToRoute(\"categoryVehicles\", {\n      categoryId: this.categoryId,\n      manufacturer: this.manufacturerId ?? Utils.encode(this.manufacturerName),\n      model: Utils.encode(model.name),\n    });\n  }\n\n  // #endregion\n}\n","module.exports = \"<template>\\n  <require from=\\\"components/car/car-category-menu\\\"></require>\\n  <require from=\\\"components/general/loading\\\"></require>\\n  <require from=\\\"!style-loader!css-loader!bootstrap-sortable/Contents/bootstrap-sortable.css\\\">\\n  </require>\\n\\n  <template if.bind=\\\"models\\\">\\n    <car-category-menu if.bind=\\\"car\\\" car.bind=\\\"car\\\" level.bind=\\\"level\\\" category-id.bind=\\\"categoryId\\\"\\n                       filter-value.two-way=\\\"filter\\\">\\n    </car-category-menu>\\n\\n    <table\\n           class=\\\"table table-borderless table-hover table-sm table-responsive-md sortable text-nowrap\\\">\\n      <thead>\\n        <tr>\\n          <th data-defaultsign='nospan' data-defaultsort=\\\"asc\\\">\\n            ${'pages.models.headers.name' & t}\\n          </th>\\n        </tr>\\n      </thead>\\n      <tbody>\\n        <tr class=\\\"model\\\" repeat.for=\\\"model of models\\\" click.trigger=\\\"openVehicles(model)\\\">\\n          <td>${model.name}</td>\\n        </tr>\\n      </tbody>\\n    </table>\\n  </template>\\n\\n  <loading else error.bind=\\\"error\\\" error-title=\\\"${'pages.models.errors.load' & t}\\\"\\n           error-details-class=\\\"font-italic\\\" error-details.bind=\\\"error\\\">\\n  </loading>\\n\\n</template>\\n\";","import { AppConfig } from 'app-config';\nimport { EventAggregator } from 'aurelia-event-aggregator';\nimport { TKEvent } from 'utils/enums/TKEvent';\nimport { I18N } from 'aurelia-i18n';\nimport { Utils } from 'utils/helpers/utils';\nimport { CategoryService } from 'services/product/category-service';\nimport { IProduct } from 'domain/Product/IProduct';\nimport { IResult } from 'domain/IResult';\nimport { Router } from 'aurelia-router';\nimport { LogManager, autoinject, observable, bindable } from \"aurelia-framework\";\nimport { CarCategoryService } from 'services/car/car-category-service';\nimport { CarMenuLevel } from 'utils/enums/CarMenuLevel';\nimport { IBaseVehicle } from 'domain/Car/IBaseVehicle';\nimport { SearchOrder } from 'utils/enums/SearchOrder';\n\nexport const log = LogManager.getLogger('app.category.products');\n\n@autoinject\nexport class Products {\n  categoryId: number;\n  vehicleId?: number;\n\n  result?: IResult<IProduct>;\n  error: string;\n\n  @observable({ changeHandler: 'parametersChanged' }) orderBy: SearchOrder = SearchOrder.InStock;\n  @observable({ changeHandler: 'parametersChanged' }) orderReversed = false;\n  @observable({ changeHandler: 'parametersChanged' }) currentPage = 1;\n\n  options = {\n    showAmount: false,\n    showSum: false,\n    showAddToCart: true,\n    showRemoveFromCart: false\n  };\n  categoriesWithFilters = [9, 10];\n\n  @bindable possibleFilters?: object;\n  @bindable chosenFilters?: object;\n\n  car?: IBaseVehicle;\n  level = CarMenuLevel.Products;\n\n  constructor(\n    private categoryService: CategoryService,\n    private carCategoryService: CarCategoryService,\n    private router: Router,\n    private i18n: I18N,\n    private eventAggregator: EventAggregator,\n    private appConfig: AppConfig\n  ) {\n    this.eventAggregator.subscribeOnce(TKEvent.userSettingsLoaded, () => { this.loadProductsAndFilters(); });\n    this.eventAggregator.subscribe(TKEvent.chosenFiltersChanged, (data: any) => { this.chosenFiltersChanged(data); });\n  }\n\n  activate(parameters: any) {\n    const categoryId = parseInt(parameters.categoryId);\n\n    const vehicleId = parameters.vehicleId ? parseInt(parameters.vehicleId) : undefined;\n    const chosenFilters = parameters.filters ? JSON.parse(decodeURIComponent(parameters.filters)) : undefined;\n\n    const page = parseInt(parameters.page);\n    const orderBy = parseInt(parameters.orderBy) || this.orderBy;\n    const orderReversed = parameters.orderReversed == \"true\";\n\n    // Don't query results twice\n    if (categoryId == this.categoryId && vehicleId == this.vehicleId && chosenFilters == this.chosenFilters\n      && page == this.currentPage && orderBy == this.orderBy && orderReversed == this.orderReversed)\n      return;\n\n    this.categoryId = categoryId;\n    this.vehicleId = vehicleId;\n    this.chosenFilters = chosenFilters;\n    this.currentPage = page;\n    this.orderBy = orderBy;\n    this.orderReversed = orderReversed;\n\n    this.loadVehicle();\n    this.loadProductsAndFilters();\n  }\n\n  parametersChanged(newValue: any, oldValue: any) {\n    if (oldValue === undefined || newValue === undefined || this.categoryId === undefined)\n      return;\n\n    // Clear the old products so the loading icon could activate again\n    this.result = undefined;\n\n    const parameters = {\n      categoryId: this.categoryId,\n      page: this.currentPage\n    } as any;\n    if (this.vehicleId)\n      parameters.vehicleId = this.vehicleId;\n    if (this.orderBy != SearchOrder.InStock) {\n      parameters.orderBy = this.orderBy;\n      parameters.orderReversed = this.orderReversed;\n    }\n    if (!Utils.isObjectEmpty(this.chosenFilters))\n      parameters.filters = Utils.encode(JSON.stringify(this.chosenFilters), true);\n\n    this.router.navigateToRoute('categoryProducts', parameters);\n\n    // Since navigating to the same route doesn't actually refresh the page\n    this.loadProducts();\n  }\n\n  chosenFiltersChanged(data: any) {\n    // Make sure this is meant for this category\n    if (data.categoryId != this.categoryId)\n      return;\n\n    this.chosenFilters = data.chosenFilters;\n\n    if (this.currentPage == 1)\n      // Nothing to change, must trigger product reload manually\n      this.parametersChanged(null, null);\n    else\n      // Changing the page value will trigger product reload\n      this.currentPage = 1;\n  }\n\n  loadProductsAndFilters() {\n    if (!this.appConfig.userSettings)\n      return;\n\n    this.loadProducts();\n\n    // Categories with filters\n    if (this.categoriesWithFilters.indexOf(this.categoryId) > -1)\n      this.loadFilters();\n    else\n      this.clearFilters();\n  }\n\n  loadFilters() {\n    this.categoryService.fetchFilters(this.categoryId, this.vehicleId).then(result => {\n      this.possibleFilters = result;\n    }).catch(error => this.error = Utils.getErrorMessage(error, this.i18n));\n  }\n\n  clearFilters() {\n    this.possibleFilters = undefined;\n    this.chosenFilters = undefined;\n  }\n\n  loadProducts() {\n    if (!this.appConfig.userSettings)\n      return;\n\n    const query = this.vehicleId\n      ? this.carCategoryService.fetchProducts(this.categoryId, this.vehicleId, this.currentPage, this.orderBy, this.orderReversed, this.chosenFilters)\n      : this.categoryService.fetchProducts(this.categoryId, this.currentPage, this.orderBy, this.orderReversed, this.chosenFilters);\n\n    query.then(result => {\n      this.result = result;\n    }).catch(error => this.error = Utils.getErrorMessage(error, this.i18n));\n  }\n\n  loadVehicle() {\n    if (!this.vehicleId) {\n      this.car = undefined;\n      return;\n    }\n\n    this.carCategoryService.fetchVehicle(this.categoryId, this.vehicleId).then(result => {\n      this.car = result;\n    }).catch(error => this.error = Utils.getErrorMessage(error, this.i18n));\n  }\n}\n","module.exports = \"<template>\\n  <require from=\\\"components/product/product-list/product-list\\\"></require>\\n  <require from=\\\"components/car/car-category-menu\\\"></require>\\n  <require from=\\\"components/general/loading\\\"></require>\\n  <require from=\\\"components/product/product-filter\\\"></require>\\n\\n  <car-category-menu if.bind=\\\"car\\\" car.bind=\\\"car\\\" level.bind=\\\"level\\\" category-id.bind=\\\"categoryId\\\">\\n  </car-category-menu>\\n\\n  <product-filter if.bind=\\\"possibleFilters !== undefined\\\" category-id.one-way=\\\"categoryId\\\"\\n                  possible-filters.bind=\\\"possibleFilters\\\" chosen-filters.bind=\\\"chosenFilters\\\">\\n  </product-filter>\\n\\n  <loading if.bind=\\\"possibleFilters === undefined && categoriesWithFilters.indexOf(categoryId) > -1 || result.items === undefined || result.items.length === 0\\\"\\n           error.bind=\\\"error\\\" error-details.bind=\\\"error\\\"\\n           error-title=\\\"${'pages.category.errors.load' & t}\\\"\\n           not-found.bind=\\\"result.items !== undefined && result.items.length == 0\\\"\\n           not-found-title=\\\"${'pages.category.errors.not-found.title' & t}\\\"\\n           not-found-details=\\\"${'pages.category.errors.not-found.details' & t}\\\">\\n  </loading>\\n\\n  <product-list if.bind=\\\"result.items !== undefined && result.items.length !== 0\\\"\\n                vehicle-id.bind=\\\"vehicleId\\\" category-id.bind=\\\"categoryId\\\" order-by.two-way=\\\"orderBy\\\"\\n                order-reversed.two-way=\\\"orderReversed\\\" products.bind=\\\"result.items\\\"\\n                options.bind=\\\"options\\\" current-page.two-way=\\\"currentPage\\\"\\n                last-page.bind=\\\"result.lastPage\\\"></product-list>\\n\\n</template>\\n\";","import { I18N } from \"aurelia-i18n\";\nimport { Utils } from \"utils/helpers/utils\";\nimport { Router } from \"aurelia-router\";\nimport { LogManager, autoinject, observable } from \"aurelia-framework\";\nimport $ from \"jquery\";\nimport { CarCategoryService } from \"services/car/car-category-service\";\nimport { CarMenuLevel } from \"utils/enums/CarMenuLevel\";\nimport { IBaseVehicle } from \"domain/Car/IBaseVehicle\";\n\nexport const log = LogManager.getLogger(\"app.category.vehicles\");\n\n@autoinject\nexport class Vehicles {\n  vehicles: IBaseVehicle[];\n\n  categoryId: number;\n  manufacturerId: number;\n  manufacturerName: string;\n  modelName: string;\n\n  car: {\n    model: {\n      name: string;\n      manufacturer: {\n        id: number;\n        name: string;\n      };\n    };\n  };\n  level = CarMenuLevel.Vehicles;\n\n  error: string;\n  @observable filter: string;\n\n  constructor(\n    private carCategoryService: CarCategoryService,\n    private router: Router,\n    private i18n: I18N\n  ) {}\n\n  activate(parameters: any) {\n    this.categoryId = parseInt(parameters.categoryId);\n\n    if (isNaN(parameters.manufacturerId))\n      this.manufacturerName = decodeURIComponent(parameters.manufacturer);\n    else this.manufacturerId = parseInt(parameters.manufacturer);\n\n    this.modelName = decodeURIComponent(parameters.model);\n\n    this.loadVehiclesAndCar();\n  }\n\n  // #region OBSERVABLES\n\n  filterChanged(term: string) {\n    term = term.toLowerCase();\n\n    $(() => {\n      $(\".vehicle\").each(function () {\n        $(this).toggle($(this).text().toLowerCase().indexOf(term) > -1);\n      });\n    });\n  }\n\n  // #endregion\n\n  // #region LOAD\n\n  loadVehiclesAndCar() {\n    this.carCategoryService\n      .fetchVehicles(\n        this.categoryId,\n        this.manufacturerId ?? this.manufacturerName,\n        this.modelName\n      )\n      .then((result) => {\n        this.vehicles = result;\n        this.manufacturerId = result[0].model.manufacturer.id;\n        this.manufacturerName = result[0].model.manufacturer.name;\n\n        this.car = {\n          model: {\n            name: this.modelName,\n            manufacturer: {\n              id: this.manufacturerId,\n              name: this.manufacturerName,\n            },\n          },\n        };\n\n        Utils.loadSortable();\n      })\n      .catch((error) => (this.error = Utils.getErrorMessage(error, this.i18n)));\n  }\n\n  // #endregion\n\n  // #region ACTIONS\n\n  openProducts(vehicleId: number) {\n    this.router.navigateToRoute(\"categoryProducts\", {\n      categoryId: this.categoryId,\n      page: 1,\n      vehicleId: vehicleId,\n    });\n  }\n\n  // #endregion\n}\n","module.exports = \"<template>\\n  <require from=\\\"components/car/car-category-menu\\\"></require>\\n  <require from=\\\"components/general/loading\\\"></require>\\n  <require from=\\\"!style-loader!css-loader!bootstrap-sortable/Contents/bootstrap-sortable.css\\\">\\n  </require>\\n\\n  <template if.bind=\\\"vehicles\\\">\\n    <car-category-menu if.bind=\\\"car\\\" car.bind=\\\"car\\\" level.bind=\\\"level\\\" category-id.bind=\\\"categoryId\\\"\\n                       filter-value.two-way=\\\"filter\\\">\\n    </car-category-menu>\\n\\n    <table\\n           class=\\\"table table-borderless table-hover table-sm table-responsive-md sortable text-nowrap\\\">\\n      <thead>\\n        <tr>\\n          <th data-defaultsign='nospan' data-defaultsort=\\\"asc\\\">\\n            ${'pages.vehicles.headers.name' & t}\\n          </th>\\n        </tr>\\n      </thead>\\n      <tbody>\\n        <tr class=\\\"vehicle\\\" repeat.for=\\\"vehicle of vehicles\\\"\\n            click.trigger=\\\"openProducts(vehicle.id)\\\">\\n          <td>${vehicle.name}</td>\\n        </tr>\\n      </tbody>\\n    </table>\\n  </template>\\n\\n  <loading else error.bind=\\\"error\\\" error-title=\\\"${'pages.vehicles.errors.load' & t}\\\"\\n           error-details-class=\\\"font-italic\\\" error-details.bind=\\\"error\\\">\\n  </loading>\\n\\n</template>\\n\";","import { IPerson } from 'domain/Client/IPerson';\nimport { I18N } from 'aurelia-i18n';\nimport { AppConfig } from 'app-config';\nimport { LogManager, autoinject } from \"aurelia-framework\";\nimport { ContractService } from 'services/client/contract-service';\n\nexport var log = LogManager.getLogger('app.contact.index');\n\n@autoinject\nexport class Index {\n  clientManager: IPerson | undefined;\n\n  constructor(\n    private contractService: ContractService,\n    private appConfig: AppConfig,\n    private i18n: I18N\n  ) { }\n\n  activate() {\n    this.loadClientManager();\n  }\n\n  //#region LOAD\n\n  loadClientManager() {\n    this.contractService.getClientManager().then(result => {\n      this.clientManager = result;\n    });\n  }\n\n  //#endregion\n}\n","module.exports = \"<template>\\n\\n  <div class=\\\"mt-3\\\">\\n    <table class=\\\"table\\\">\\n      <tbody>\\n        <tr>\\n          <th>${'pages.contact.fields.support' & t}</th>\\n          <td>Salome Auto AS</td>\\n          <td>\\n            <a href=\\\"mailto:${'footer.contact' & t}\\\" class=\\\"card-link\\\">${'footer.contact' & t}</a>\\n          </td>\\n          <td></td>\\n          <td></td>\\n        </tr>\\n        <tr if.bind=\\\"clientManager !== undefined\\\">\\n          <th>${'pages.contact.fields.client-manager' & t}</th>\\n          <td>${clientManager.firstName} ${clientManager.lastName}</td>\\n          <td>\\n            <a href=\\\"mailto:${clientManager.email}\\\" class=\\\"card-link\\\">${clientManager.email}</a>\\n          </td>\\n          <td>\\n            <a href=\\\"mailto:${clientManager.phone}\\\" class=\\\"card-link\\\">${clientManager.phone}</a>\\n          </td>\\n          <td>\\n            <a href=\\\"mailto:${clientManager.mobile}\\\" class=\\\"card-link\\\">${clientManager.mobile}</a>\\n          </td>\\n        </tr>\\n      </tbody>\\n    </table>\\n  </div>\\n\\n</template>\\n\";","export class Index { }\n","module.exports = \"<template>\\n\\n  <div class=\\\"card border-danger w-100\\\">\\n    <div class=\\\"card-body text-danger\\\">\\n      <h5 class=\\\"card-title\\\">${'pages.error.title' | t}</h5>\\n      <p class=\\\"card-text\\\" t='[html]pages.error.error-message'></p>\\n    </div>\\n  </div>\\n\\n</template>\\n\";","export class Home { }\n","module.exports = \"<template>\\n\\n  <a href=\\\"${'pages.home.banner.link' & t}\\\">\\n    <img class=\\\"m-auto home-banner\\\" src=\\\"${'pages.home.banner.image' & t}\\\">\\n  </a>\\n\\n</template>\\n\";","import { TKEvent } from \"utils/enums/TKEvent\";\nimport { EventAggregator } from \"aurelia-event-aggregator\";\nimport { I18N } from \"aurelia-i18n\";\nimport { SearchType } from \"utils/enums/SearchType\";\nimport { InvoiceService } from \"services/sale/invoice-service\";\nimport { IInvoice } from \"domain/Sale/IInvoice\";\nimport { AppConfig } from \"app-config\";\nimport { Utils } from \"utils/helpers/utils\";\nimport { LogManager, autoinject, observable } from \"aurelia-framework\";\nimport { Router } from \"aurelia-router\";\nimport $ from \"jquery\";\nimport \"bootstrap\";\nimport printJS from \"print-js\";\nimport { Collapse } from \"bootstrap\";\n\nexport const log = LogManager.getLogger(\"app.invoice.index\");\n\n@autoinject\nexport class Index {\n  invoices: IInvoice[] | undefined;\n\n  @observable({ changeHandler: \"queryChanged\" }) currentPage: number;\n  lastPage = 1;\n\n  @observable({ changeHandler: \"queryChanged\" }) searchText = \"\";\n  @observable({ changeHandler: \"queryChanged\" }) searchDateFrom = \"\";\n  @observable({ changeHandler: \"queryChanged\" }) searchDateTo = \"\";\n\n  error: string;\n\n  constructor(\n    private invoiceService: InvoiceService,\n    private router: Router,\n    private appConfig: AppConfig, // used by html\n    private i18n: I18N,\n    private eventAggregator: EventAggregator\n  ) {\n    this.eventAggregator.subscribeOnce(TKEvent.userSettingsLoaded, () => {\n      this.loadInvoices();\n    });\n  }\n\n  activate(parameters: any) {\n    let page = 1;\n    if (parameters.page) page = parseInt(parameters.page); // we want to make sure this is definitely a number\n\n    let query = \"\";\n    if (parameters.query) query = decodeURIComponent(parameters.query);\n\n    let dateFrom = \"\";\n    if (parameters.dateFrom) dateFrom = decodeURIComponent(parameters.dateFrom);\n\n    let dateTo = \"\";\n    if (parameters.dateTo) dateTo = decodeURIComponent(parameters.dateTo);\n\n    this.currentPage = page;\n    this.searchText = query;\n    this.searchDateFrom = dateFrom;\n    this.searchDateTo = dateTo;\n  }\n\n  attached() {\n    if (this.appConfig.userSettings) this.loadInvoices();\n  }\n\n  // #region OBSERVABLES\n\n  // General observer for all search variables\n  queryChanged(newValue: number | string, oldValue: number | string) {\n    // Required value haven't been set yet\n    if (oldValue === undefined) return;\n\n    const dateRegex = /^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9])$/;\n    if (this.searchDateFrom && !this.searchDateFrom.match(dateRegex)) return;\n    if (this.searchDateTo && !this.searchDateTo.match(dateRegex)) return;\n\n    // Clear the old result so the loading icon could activate again\n    this.invoices = undefined;\n\n    const params = {} as any;\n    if (this.currentPage >= 1) params.page = this.currentPage;\n    if (this.searchText) params.query = Utils.encode(this.searchText);\n    if (this.searchDateFrom)\n      params.dateFrom = Utils.encode(this.searchDateFrom);\n    if (this.searchDateTo) params.dateTo = Utils.encode(this.searchDateTo);\n\n    this.router.navigateToRoute(\"invoiceIndex\", params);\n\n    // Since navigating to the same route doesn't actually refresh the page\n    if (this.appConfig.userSettings) this.loadInvoices();\n  }\n\n  // #endregion\n\n  // #region LOAD\n\n  loadInvoices() {\n    this.invoiceService\n      .fetchInvoices(\n        this.currentPage,\n        Utils.encode(this.searchText),\n        Utils.encode(this.searchDateFrom),\n        Utils.encode(this.searchDateTo)\n      )\n      .then((result) => {\n        this.invoices = result.items;\n        this.currentPage = result.currentPage;\n        this.lastPage = result.lastPage;\n\n        // make dates UTC ISO8601\n        this.invoices.forEach((invoice) => {\n          invoice.showOrders = false;\n          invoice.created = new Date(invoice.created + \"Z\");\n\n          invoice.orders.forEach((order) => {\n            order.created = new Date(order.created + \"Z\");\n            order.due = new Date(order.due + \"Z\");\n          });\n        });\n\n        Utils.loadSortable();\n        this.moveRowsListener();\n      })\n      .catch(\n        (error) =>\n          (this.error = Utils.getErrorMessage(error, this.i18n))\n      );\n  }\n\n  // #endregion\n\n  // #region ACTIONS\n\n  searchProduct(query: string) {\n    this.router.navigateToRoute(\"searchResult\", {\n      query: Utils.encode(query),\n      page: 1,\n      type: SearchType.Precise,\n    });\n  }\n\n  toggleOrderList(target: HTMLElement, invoice: IInvoice) {\n    invoice.showOrders = true;\n\n    $(() => {\n      // Check if child element was clicked instead\n      if (\n        $(target).prop(\"tagName\") != \"TD\" &&\n        $(target).prop(\"tagName\") != \"TR\"\n      )\n        return;\n\n      const invoiceIdElement = document.querySelector(\n        `[data-order-list=\"${invoice.id}\"]`\n      );\n      if (invoiceIdElement)\n        new Collapse(invoiceIdElement, { parent: \"#accordion\" }).toggle();\n    });\n  }\n\n  openInvoice(invoice: IInvoice) {\n    switch (invoice.openMethod) {\n      /*case \"html\":\n        this.openHtml(invoice);\n        break;*/\n      case \"xml\":\n        this.openXml(invoice);\n        break;\n      case \"pdf\":\n        this.openPdf(invoice);\n        break;\n      case \"print\":\n        this.openPrint(invoice);\n        break;\n    }\n\n    invoice.openMethod = undefined;\n  }\n\n  // #endregion\n\n  // #region HELPERS\n\n  /*openHtml(invoice: IInvoice) {\n    if (invoice.asHtml != undefined) {\n      this.openHtmlInNewTab(invoice.asHtml);\n      return;\n    }\n\n    this.invoiceService.fetchInvoiceAsHtml(invoice.id).then(result => {\n      invoice.asHtml = result;\n      this.openHtmlInNewTab(invoice.asHtml);\n    }).catch(error => Utils.showErrorToast(Utils.checkForUnauthorized(\n      this.i18n.tr('pages.invoices.errors.load.html'), error, this.router)));\n  }\n\n  openHtmlInNewTab(html: string) {\n    let newWindow = window.open();\n    if (newWindow != null)\n      newWindow.document.write(html);\n  }*/\n\n  openXml(invoice: IInvoice) {\n    if (invoice.asXml != undefined) {\n      this.downloadXml(invoice.asXml, invoice.id.toString());\n      return;\n    }\n\n    this.invoiceService\n      .fetchInvoiceAsXml(invoice.id)\n      .then((result) => {\n        invoice.asXml = result;\n        this.downloadXml(invoice.asXml, invoice.id.toString());\n      })\n      .catch(() =>\n        Utils.showErrorToast(\n          log,\n          this.i18n.tr(\"pages.invoices.errors.load.xml\")\n        )\n      );\n  }\n\n  downloadXml(xml: string, fileName: string) {\n    // eslint-disable-next-line @typescript-eslint/no-var-requires\n    const fileDownload = require(\"js-file-download\");\n    fileDownload(xml, fileName + \".xml\");\n  }\n\n  openPdf(invoice: IInvoice) {\n    const win = window.open(\n      `${this.appConfig.apiUrl}/Invoice/${invoice.id}/Pdf`,\n      \"_blank\"\n    );\n\n    if (win != null) {\n      win.focus();\n    } else {\n      Utils.showErrorToast(log, this.i18n.tr(\"pages.invoices.errors.load.pdf\"));\n    }\n  }\n\n  openPrint(invoice: IInvoice) {\n    if (invoice.asPdf != undefined) {\n      this.print(invoice.asPdf);\n      return;\n    }\n\n    this.invoiceService\n      .fetchInvoiceAsPdf(invoice.id)\n      .then((result) => {\n        invoice.asPdf = result;\n        this.print(invoice.asPdf);\n      })\n      .catch(() =>\n        Utils.showErrorToast(\n          log,\n          this.i18n.tr(\"pages.invoices.errors.load.pdf\")\n        )\n      );\n  }\n\n  print(base64: string) {\n    base64 = base64.replace(\"data:application/pdf;base64,\", \"\");\n    printJS({ printable: base64, type: \"pdf\", base64: true });\n  }\n\n  // Move order row along with it's parent invoice row when sorted\n  moveRowsListener() {\n    $(() => {\n      $(\".sortable\").on(\"sorted\", function () {\n        $(this)\n          .find(\"tr.order-list-row\")\n          .each(function () {\n            $(this).insertAfter(\n              $(`.invoice-row[data-invoice=\"${$(this).attr(\"data-invoice\")}\"]`)\n            );\n          });\n      });\n    });\n  }\n\n  // #endregion\n}\n","module.exports = \"<template>\\n  <require from=\\\"utils/classes/value-converters\\\"></require>\\n  <require from=\\\"components/general/loading\\\"></require>\\n  <require from=\\\"components/general/pager\\\"></require>\\n  <require from=\\\"components/sale/order/order-list\\\"></require>\\n  <require from=\\\"components/sale/order/order-search-bar\\\"></require>\\n  <require from=\\\"!style-loader!css-loader!bootstrap-sortable/Contents/bootstrap-sortable.css\\\">\\n  </require>\\n\\n  <order-search-bar search-icon=\\\"file-earmark-text\\\"\\n                    search-placeholder=\\\"${'pages.invoices.messages.hint' & t}\\\"\\n                    search-date-from.two-way=\\\"searchDateFrom\\\" search-date-to.two-way=\\\"searchDateTo\\\"\\n                    search-text.two-way=\\\"searchText\\\">\\n  </order-search-bar>\\n\\n  <template if.bind=\\\"invoices !== undefined && invoices.length > 0\\\">\\n    <table id=\\\"accordion\\\"\\n           class=\\\"table table-borderless table-sm table-responsive-md sortable accordion\\\">\\n      <thead>\\n        <tr>\\n          <th data-defaultsign=\\\"nospan\\\">${'pages.invoices.headers.number' & t}</th>\\n          <th data-defaultsign=\\\"nospan\\\">${'pages.invoices.headers.status' & t}</th>\\n          <th class=\\\"text-end\\\" data-defaultsign=\\\"nospan\\\">${'pages.invoices.headers.date' & t}</th>\\n          <th class=\\\"text-end\\\" data-defaultsign=\\\"nospan\\\">\\n            ${'pages.invoices.headers.due-date' & t}\\n          </th>\\n          <th class=\\\"text-end\\\" data-defaultsign=\\\"nospan\\\">\\n            ${'pages.invoices.headers.total' & t}\\n          </th>\\n          <th class=\\\"text-end\\\" data-defaultsign=\\\"nospan\\\">${'pages.invoices.headers.paid' & t}</th>\\n          <th class=\\\"text-center\\\" data-defaultsort=\\\"disabled\\\">\\n            ${'pages.invoices.headers.open' & t}\\n          </th>\\n        </tr>\\n      </thead>\\n\\n      <tbody repeat.for=\\\"invoice of invoices\\\" class=\\\"hover\\\">\\n        <tr class=\\\"invoice-row clickable\\\" data-invoice.bind=\\\"invoice.id\\\"\\n            click.delegate=\\\"toggleOrderList($event.target, invoice)\\\">\\n          <td><span>${invoice.id}</span></td>\\n          <td><span>${('pages.invoices.status.' + invoice.status) & t}</span></td>\\n          <td class=\\\"text-end\\\" data-value.bind=\\\"invoice.created | dateFormat\\\"\\n              data-dateformat=\\\"${appConfig.dateFormat}\\\">\\n            <span>${invoice.created | dateFormat}</span>\\n          </td>\\n          <td class=\\\"text-end\\\" data-value.bind=\\\"invoice.due | dateFormat\\\"\\n              data-dateformat=\\\"${appConfig.dateFormat}\\\">\\n            <span>${invoice.due | dateFormat}</span>\\n          </td>\\n          <td class=\\\"text-end\\\" data-value.bind=\\\"invoice.total\\\">\\n            <span>${invoice.total | currencyFormat}</span>\\n          </td>\\n          <td class=\\\"text-end\\\" data-value.bind=\\\"invoice.paid\\\">\\n            <span>${invoice.paid | currencyFormat}</span>\\n          </td>\\n          <td class=\\\"text-center text-nowrap\\\">\\n            <select class=\\\"form-select form-select-sm\\\" value.bind=\\\"invoice.openMethod\\\"\\n                    change.delegate=\\\"openInvoice(invoice)\\\">\\n              <option selected>${'pages.invoices.open.choose' & t}</option>\\n              <option value=\\\"print\\\">${'pages.invoices.open.print' & t}</option>\\n              <option value=\\\"xml\\\">${'pages.invoices.open.xml' & t}</option>\\n              <option value=\\\"pdf\\\">${'pages.invoices.open.pdf' & t}</option>\\n            </select>\\n          </td>\\n        </tr>\\n\\n        <tr class=\\\"order-list-row hover\\\" data-disablesort=\\\"true\\\" data-invoice.bind=\\\"invoice.id\\\">\\n          <td colspan=\\\"8\\\" class=\\\"p-0\\\">\\n            <div class=\\\"collapse px-5\\\" data-bs-parent=\\\"#accordion\\\"\\n                 data-order-list.bind=\\\"invoice.id\\\">\\n              <order-list if.bind=\\\"invoice.showOrders\\\" orders.bind=\\\"invoice.orders\\\"></order-list>\\n            </div>\\n          </td>\\n        </tr>\\n      </tbody>\\n    </table>\\n\\n    <pager current-page.two-way=\\\"currentPage\\\" last-page.bind=\\\"lastPage\\\"></pager>\\n  </template>\\n\\n  <loading else error.bind=\\\"error\\\" error-title=\\\"${'pages.invoices.errors.general' & t}\\\"\\n           error-details.bind=\\\"error\\\"\\n           not-found.bind=\\\"invoices !== undefined && invoices.length == 0\\\"\\n           not-found-title=\\\"${'pages.invoices.errors.not-found.title' & t}\\\"\\n           not-found-details=\\\"${'pages.invoices.errors.not-found.details' & t}\\\">\\n  </loading>\\n\\n</template>\\n\";","import { TKEvent } from \"utils/enums/TKEvent\";\nimport { EventAggregator } from \"aurelia-event-aggregator\";\nimport { I18N } from \"aurelia-i18n\";\nimport { SearchType } from \"utils/enums/SearchType\";\nimport { AppConfig } from \"app-config\";\nimport { ICart } from \"domain/Cart/ICart\";\nimport { Utils } from \"utils/helpers/utils\";\nimport { OrderService } from \"services/sale/order-service\";\nimport { LogManager, autoinject, observable } from \"aurelia-framework\";\nimport { Router } from \"aurelia-router\";\nimport $ from \"jquery\";\nimport \"bootstrap\";\nimport { Collapse } from \"bootstrap\";\n\nexport const log = LogManager.getLogger(\"app.order.index\");\n\n@autoinject\nexport class Index {\n  orders: ICart[] | undefined;\n  error: string;\n\n  @observable({ changeHandler: \"queryChanged\" }) currentPage: number;\n  lastPage = 1;\n\n  @observable({ changeHandler: \"queryChanged\" }) searchText = \"\";\n  @observable({ changeHandler: \"queryChanged\" }) searchDateFrom = \"\";\n  @observable({ changeHandler: \"queryChanged\" }) searchDateTo = \"\";\n\n  options = {\n    showInvoiceId: false,\n    showWarehouse: true,\n    showTransport: true,\n    showAddToCart: true,\n    showAddToReturn: false,\n  };\n\n  constructor(\n    private orderService: OrderService,\n    private router: Router,\n    private appConfig: AppConfig, // used by html\n    private i18n: I18N,\n    private eventAggregator: EventAggregator\n  ) {\n    this.eventAggregator.subscribeOnce(TKEvent.userSettingsLoaded, () => {\n      this.loadOrders();\n    });\n  }\n\n  activate(parameters: any) {\n    let page = 1;\n    if (parameters.page) page = parseInt(parameters.page); // we want to make sure this is definitely a number\n\n    let query = \"\";\n    if (parameters.query) query = decodeURIComponent(parameters.query);\n\n    let dateFrom = \"\";\n    if (parameters.dateFrom) dateFrom = decodeURIComponent(parameters.dateFrom);\n\n    let dateTo = \"\";\n    if (parameters.dateTo) dateTo = decodeURIComponent(parameters.dateTo);\n\n    this.currentPage = page;\n    this.searchText = query;\n    this.searchDateFrom = dateFrom;\n    this.searchDateTo = dateTo;\n  }\n\n  attached() {\n    if (this.appConfig.userSettings) this.loadOrders();\n  }\n\n  // #region OBSERVABLES\n\n  queryChanged(newValue: number | string, oldValue: number | string) {\n    // Required value haven't been set yet\n    if (oldValue === undefined) return;\n\n    const dateRegex = /^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9])$/;\n    if (this.searchDateFrom && !this.searchDateFrom.match(dateRegex)) return;\n    if (this.searchDateTo && !this.searchDateTo.match(dateRegex)) return;\n\n    // Clear the old result so the loading icon could activate again\n    this.orders = undefined;\n\n    const params = {} as any;\n    if (this.currentPage != 1) params.page = this.currentPage;\n    if (this.searchText != \"\") params.query = Utils.encode(this.searchText);\n    if (this.searchDateFrom != \"\")\n      params.dateFrom = Utils.encode(this.searchDateFrom);\n    if (this.searchDateTo != \"\")\n      params.dateTo = Utils.encode(this.searchDateTo);\n\n    this.router.navigateToRoute(\"orderIndex\", params);\n\n    // Since navigating to the same route doesn't actually refresh the page\n    if (this.appConfig.userSettings) this.loadOrders();\n  }\n\n  // #endregion\n\n  // #region LOAD\n\n  loadOrders() {\n    this.orderService\n      .fetchOrders(\n        this.currentPage,\n        Utils.encode(this.searchText),\n        Utils.encode(this.searchDateFrom),\n        Utils.encode(this.searchDateTo)\n      )\n      .then((result) => {\n        this.orders = result.items;\n        this.currentPage = result.currentPage;\n        this.lastPage = result.lastPage;\n\n        this.orders.forEach((order) => {\n          order.closedDateTime = new Date(order.closedDateTime + \"Z\"); // make it UTC ISO8601\n\n          order.total = 0;\n          order.products.forEach(\n            (product) =>\n              (order.total += (product.finalPrice ?? 0) * product.quantity)\n          );\n        });\n\n        this.sortedListener();\n        Utils.loadSortable();\n      })\n      .catch(\n        (error) =>\n          (this.error = Utils.getErrorMessage(error, this.i18n))\n      );\n  }\n\n  // #endregion\n\n  // #region ACTIONS\n\n  searchProduct(query: string) {\n    this.router.navigateToRoute(\"searchResult\", {\n      query: Utils.encode(query),\n      page: 1,\n      type: SearchType.Precise,\n    });\n  }\n\n  toggleProductList(target: HTMLElement, order: ICart) {\n    $(() => {\n      // Check if child element was clicked instead\n      if (\n        $(target).prop(\"tagName\") != \"TD\" &&\n        $(target).prop(\"tagName\") != \"TR\"\n      )\n        return;\n\n      const orderIdElement = document.querySelector(\n        `[data-product-list=\"${order.id}\"]`\n      );\n      if (orderIdElement)\n        new Collapse(orderIdElement, { parent: \"#accordion\" }).toggle();\n    });\n  }\n\n  getUniqueOrderId(order: any) {\n      return `${order.id || 0}`;\n    }\n\n  convertToCart(order: any) {\n    const convertToCartButton = document.getElementById(\n      this.getUniqueOrderId(order),\n    ) as HTMLButtonElement;\n    convertToCartButton.disabled = true;\n    \n    this.orderService\n      .convertToCart(order.id)\n      .then(() => {\n        this.eventAggregator.publish(TKEvent.cartProductsChanged);\n        Utils.showSuccessToast(this.i18n.tr(\"pages.orders.messages.convert-to-cart\"));\n      })\n      .catch(error => Utils.showErrorToast(log, Utils.getErrorMessage(error, this.i18n)))\n      .finally(() => {\n        convertToCartButton.disabled = false;\n      });\n  }\n  // #endregion\n\n  // #region HELPERS\n\n  sortedListener() {\n    $(() => {\n      $(\".sortable\").on(\"sorted\", function () {\n        // Move product list rows along with their parent order row when sorted\n        $(this)\n          .find(\".product-list-row\")\n          .each(function () {\n            $(this).insertAfter(\n              $(`.order-row[data-order=\"${$(this).attr(\"data-order\")}\"]`)\n            );\n          });\n      });\n    });\n  }\n\n  // #endregion\n}\n","module.exports = \"<template>\\n  <require from=\\\"components/general/loading\\\"></require>\\n  <require from=\\\"components/general/pager\\\"></require>\\n  <require from=\\\"components/cart/nested-cart-product-list\\\"></require>\\n  <require from=\\\"components/sale/order/order-search-bar\\\"></require>\\n  <require from=\\\"utils/classes/value-converters\\\"></require>\\n  <require from=\\\"!style-loader!css-loader!bootstrap-sortable/Contents/bootstrap-sortable.css\\\">\\n  </require>\\n\\n  <order-search-bar class=\\\"mb-3\\\" search-icon=\\\"receipt\\\" search-text.two-way=\\\"searchText\\\"\\n                    search-placeholder=\\\"${'pages.orders.messages.hint' & t}\\\"\\n                    search-date-from.two-way=\\\"searchDateFrom\\\" search-date-to.two-way=\\\"searchDateTo\\\">\\n  </order-search-bar>\\n\\n  <template if.bind=\\\"orders !== undefined && orders.length > 0\\\">\\n    <table id=\\\"accordion\\\"\\n           class=\\\"table table-borderless table-sm table-responsive-md sortable accordion\\\">\\n      <thead>\\n        <tr>\\n          <th data-defaultsign=\\\"nospan\\\">${'pages.orders.headers.number' & t}</th>\\n          <th data-defaultsign=\\\"nospan\\\">${'pages.orders.headers.creator' & t}</th>\\n          <th data-defaultsign=\\\"nospan\\\">${'pages.orders.headers.created' & t}</th>\\n          <th data-defaultsign=\\\"nospan\\\">${'pages.orders.headers.comments' & t}</th>\\n          <th class=\\\"text-end\\\" data-defaultsign=\\\"nospan\\\">${'pages.orders.headers.total' & t}</th>\\n          <th data-defaultsort=\\\"disabled\\\">${'components.products.headers.add-to-cart' & t}</th>\\n        </tr>\\n      </thead>\\n      ​\\n      <tbody repeat.for=\\\"order of orders\\\" class=\\\"hover\\\">\\n        <tr class=\\\"order-row clickable\\\" data-order.bind=\\\"order.id\\\"\\n            click.delegate=\\\"toggleProductList($event.target, order)\\\">\\n          <td><span>${order.id}</span></td>\\n          <td><span>${order.creator}</span></td>\\n          <td data-dateformat=\\\"${appConfig.datetimeFormat}\\\">\\n            <span>${order.closedDateTime | datetimeFormat}</span>\\n          </td>\\n          <td><span>${order.comment}</span></td>\\n          <td class=\\\"text-end\\\" data-value.bind=\\\"order.total\\\">\\n            <span> ${order.total | currencyFormat}</span>\\n          </td>\\n          <td class=\\\"text-center\\\">\\n            <button  type=\\\"button\\\" id=\\\"${getUniqueOrderId(order)}\\\" class=\\\"btn btn-success btn-sm\\\"\\n              click.delegate=\\\"convertToCart(order)\\\">\\n              ${'components.products.buttons.add-to-cart' & t}\\n            </button>\\n          </td>\\n        </tr>\\n\\n        <tr class=\\\"product-list-row hover\\\" data-disablesort=\\\"true\\\" data-order.bind=\\\"order.id\\\">\\n          <td colspan=\\\"7\\\" class=\\\"p-0\\\">\\n            <div class=\\\"collapse px-5\\\" data-bs-parent=\\\"#accordion\\\"\\n                 data-product-list.bind=\\\"order.id\\\">\\n              <nested-cart-product-list products.bind=\\\"order.products\\\" options.bind=\\\"options\\\">\\n              </nested-cart-product-list>\\n            </div>\\n          </td>\\n        </tr>\\n      </tbody>\\n    </table>\\n\\n    <pager current-page.two-way=\\\"currentPage\\\" last-page.bind=\\\"lastPage\\\"></pager>\\n  </template>\\n\\n  <loading else error.bind=\\\"error\\\" error-title=\\\"${'pages.orders.errors.load' & t}\\\"\\n           error-details.bind=\\\"error\\\" not-found.bind=\\\"orders !== undefined && orders.length == 0\\\"\\n           not-found-title=\\\"${'pages.orders.errors.not-found.title' & t}\\\"\\n           not-found-details=\\\"${'pages.orders.errors.not-found.details' & t}\\\">\\n  </loading>\\n\\n</template>\\n\";","export class Index { }\n","module.exports = \"<template>\\n\\n  <div>\\n    <h5>${'pages.privacy.cookies.title' & t}</h5>\\n    <p class=\\\"text-justify\\\" t='[html]pages.privacy.cookies.body.0'></p>\\n    <p class=\\\"text-justify\\\" t='[html]pages.privacy.cookies.body.1'></p>\\n    <p class=\\\"text-justify\\\" t='[html]pages.privacy.cookies.body.2'></p>\\n\\n    <h5>${'pages.privacy.title' & t}</h5>\\n    <p class=\\\"text-justify\\\" t='[html]pages.privacy.body.0'></p>\\n    <p class=\\\"text-justify\\\" t='[html]pages.privacy.body.1'></p>\\n    <p class=\\\"text-justify\\\" t='[html]pages.privacy.body.2'></p>\\n    <p class=\\\"text-justify\\\" t='[html]pages.privacy.body.3'></p>\\n    <p class=\\\"text-justify\\\" t='[html]pages.privacy.body.4'></p>\\n    <p class=\\\"text-justify\\\" t='[html]pages.privacy.body.5'></p>\\n  </div>\\n\\n</template>\\n\";","import { AppConfig } from 'app-config';\nimport { autoinject } from 'aurelia-framework';\n\n@autoinject\nexport class Index {\n  constructor(\n    private appConfig: AppConfig // used by HTML\n  ) { }\n}\n","module.exports = \"<template>\\n  <compose if.bind=\\\"appConfig.isLoggedIn\\\" view-model=\\\"components/sale/return/index\\\"></compose>\\n\\n  <div class=\\\"mt-4\\\"></div>\\n\\n  <compose if.bind=\\\"appConfig.isLoggedIn\\\" view-model=\\\"components/sale/return/list\\\"></compose>\\n</template>\\n\";","import { SearchOrder } from \"utils/enums/SearchOrder\";\nimport { TKEvent } from \"utils/enums/TKEvent\";\nimport { EventAggregator } from \"aurelia-event-aggregator\";\nimport { AppConfig } from \"app-config\";\nimport { I18N } from \"aurelia-i18n\";\nimport { SearchType } from \"utils/enums/SearchType\";\nimport { Utils } from \"utils/helpers/utils\";\nimport { IResult } from \"domain/IResult\";\nimport { IProduct } from \"domain/Product/IProduct\";\nimport { Router } from \"aurelia-router\";\nimport { LogManager, autoinject, observable, bindable } from \"aurelia-framework\";\nimport { SearchService } from \"services/product/search-service\";\nimport { CarHelper } from \"utils/helpers/car-helper\";\n\nexport const log = LogManager.getLogger(\"app.search.index\");\n\n@autoinject\nexport class Index {\n  query: string;\n  @observable currentPage = 1;\n  type: SearchType;\n  @observable orderBy: SearchOrder = SearchOrder.Default;\n  @observable orderReversed = false;\n  @observable extendedSearch: boolean = false;\n\n  result: IResult<IProduct> | undefined;\n  error: string | undefined;\n  previousSearch?: string[];\n\n  isQueryVin: boolean;\n  isQueryPlate: boolean;\n  carQueryType = \"\";\n  carQuery = \"\";\n\n  // Defaults\n  options = {\n    showAmount: false,\n    showSum: false,\n    showAddToCart: true,\n    showRemoveFromCart: false,\n  };\n  defaultResult: IResult<IProduct> = {\n    items: [],\n    currentPage: 1,\n    lastPage: 1,\n  };\n\n  constructor(\n    private searchService: SearchService,\n    private router: Router,\n    private i18n: I18N,\n    private appConfig: AppConfig,\n    private eventAggregator: EventAggregator,\n  ) {\n    this.eventAggregator.subscribeOnce(TKEvent.userSettingsLoaded, () => {\n      if (this.type === undefined) this.type = this.appConfig.userSettings.defaultSearchLimitation;\n\n      this.loadResult();\n    });\n    this.eventAggregator.subscribe(TKEvent.localeChanged, () => this.loadResult());\n  }\n\n  activate(parameters: any) {\n    const query = decodeURIComponent(parameters.query);\n\n    if (query.length < 3) {\n      this.error = this.i18n.tr(\"pages.search.errors.short-query\");\n      return;\n    }\n\n    // We want to make sure they are definitely numbers\n    const page = parseInt(parameters.page) || 1;\n    const type = parseInt(parameters.type) || SearchType.All;\n    const orderBy = parseInt(parameters.orderBy) || SearchOrder.Default;\n    const orderReversed = parameters.orderReversed == \"true\";\n    const extendedSearch = parameters.extendedSearch == \"true\";\n\n    // Don't query results twice - a different search has already been initiated\n    if (\n      query == this.query &&\n      page == this.currentPage &&\n      type == this.type &&\n      orderBy == this.orderBy &&\n      orderReversed == this.orderReversed &&\n      extendedSearch == this.extendedSearch\n    )\n      return;\n\n    // Clear the old result so the loading icon could activate again\n    this.result = undefined;\n\n    this.query = query;\n    this.currentPage = page;\n    this.type = type;\n    this.orderBy = orderBy;\n    this.orderReversed = orderReversed;\n    this.extendedSearch = extendedSearch;\n\n    this.loadResult();\n  }\n\n  currentPageChanged(newPage: number, oldPage: number) {\n    // Required values haven't been set yet\n    if (oldPage === undefined || this.type === undefined) return;\n\n    this.search(\n      this.query,\n      newPage,\n      this.type,\n      this.orderBy,\n      this.orderReversed,\n      this.extendedSearch,\n    );\n  }\n\n  orderByChanged(newOrderBy: SearchOrder, oldOrderBy: SearchOrder) {\n    if (oldOrderBy === undefined || this.orderBy === undefined || this.query === undefined) return;\n\n    this.search(\n      this.query,\n      this.currentPage,\n      this.type,\n      newOrderBy,\n      this.orderReversed,\n      this.extendedSearch,\n    );\n  }\n\n  orderReversedChanged(newOrderReversed: boolean) {\n    if (this.query === undefined) return;\n\n    this.search(\n      this.query,\n      this.currentPage,\n      this.type,\n      this.orderBy,\n      newOrderReversed,\n      this.extendedSearch,\n    );\n  }\n\n  extendedSearchChanged(newExtendedSearch: boolean, oldExtendedSearch: boolean) {\n    if (oldExtendedSearch === undefined || this.query === undefined) return;\n\n    this.search(\n      this.query,\n      this.currentPage,\n      this.type,\n      this.orderBy,\n      this.orderReversed,\n      newExtendedSearch,\n    );\n  }\n\n  loadResult() {\n    if (this.query === undefined) return;\n\n    this.result = undefined;\n    this.error = undefined;\n\n    // Check search query for VIN or licence plate formats\n    this.isQueryVin = CarHelper.vinRegex.test(this.query);\n    this.isQueryPlate = CarHelper.carPlateRegex.test(this.query);\n    const isPlateStandard = CarHelper.standardCarPlateRegex.test(this.query);\n\n    // Show car search button if the query is in certain format\n    if (this.isQueryVin || this.isQueryPlate) {\n      this.carQueryType = this.isQueryVin\n        ? this.i18n.tr(\"pages.search.fields.query-type.vin\")\n        : this.i18n.tr(\"pages.search.fields.query-type.plate\");\n      this.carQuery = this.query.toUpperCase();\n    }\n\n    const currentSearch = this.getCurrentSearch();\n    if (!this.appConfig.userSettings || this.isSameAsPreviousSearch(currentSearch)) return;\n\n    this.makeSearchRequest(isPlateStandard);\n  }\n\n  // #region HELPERS\n\n  search(\n    query: string,\n    page: number,\n    type: SearchType,\n    orderBy: SearchOrder,\n    orderReversed: boolean,\n    extendedSearch: boolean,\n  ) {\n    this.router.navigateToRoute(\n      \"searchResult\",\n      {\n        query: Utils.encode(query),\n        page,\n        type,\n        orderBy,\n        orderReversed,\n        extendedSearch,\n      },\n      {\n        trigger: false,\n        replace: true,\n      },\n    );\n\n    this.loadResult();\n  }\n\n  makeSearchRequest(isPlateStandard: boolean) {\n    this.saveNewPreviousSearch();\n    const currentSearch = this.getCurrentSearch();\n\n    this.searchService\n      .fetchResult(\n        Utils.encode(this.query),\n        this.currentPage,\n        this.type,\n        this.orderBy,\n        this.orderReversed,\n        this.extendedSearch,\n      )\n      .then(result => {\n        // Don't overwrite new search results\n        if (!this.isSameAsPreviousSearch(currentSearch)) return;\n\n        this.result = result ?? this.defaultResult;\n\n        if (this.result.items.length == 0) {\n          if (this.extendedSearch != true) {\n            this.extendedSearch = true;\n            return;\n          }\n\n          if (isPlateStandard) {\n            // Run the car search automatically when no products were found and query is in standard licence plate format\n            Utils.showInfoToast(this.i18n.tr(\"pages.search.info.no-items-found\"));\n            this.openCarSearch();\n            return;\n          }\n        }\n\n        this.currentPage = parseInt(result.currentPage as any);\n      })\n      .catch(error => {\n        this.previousSearch = undefined;\n        this.error = Utils.getErrorMessage(error, this.i18n);\n      });\n  }\n\n  openCarSearch() {\n    this.router.navigateToRoute(\"carVehiclesQuery\", {\n      query: Utils.encode(this.query),\n    });\n  }\n\n  isSameAsPreviousSearch(currentSearch: string[] | undefined): boolean {\n    if (!this.previousSearch || !currentSearch) return false;\n\n    const [prevQuery, prevPage, prevType, prevOrderBy, prevOrderReversed, prevExtendedSearch] =\n      this.previousSearch;\n    const [thisQuery, thisPage, thisType, thisOrderBy, thisOrderReversed, thisExtendedSearch] =\n      currentSearch;\n\n    return (\n      prevQuery == thisQuery &&\n      prevPage == thisPage &&\n      prevType == thisType &&\n      prevOrderBy == thisOrderBy &&\n      prevOrderReversed == thisOrderReversed &&\n      prevExtendedSearch == thisExtendedSearch\n    );\n  }\n\n  saveNewPreviousSearch() {\n    this.previousSearch = this.getCurrentSearch();\n  }\n\n  getCurrentSearch() {\n    return [\n      Utils.encode(this.query),\n      this.currentPage.toString(),\n      this.type.toString(),\n      this.orderBy.toString(),\n      this.orderReversed.toString(),\n      this.extendedSearch.toString(),\n    ];\n  }\n\n  // #endregion\n}\n","module.exports = \"<template>\\n  <require from=\\\"components/product/product-list/product-list\\\"></require>\\n  <require from=\\\"components/general/loading\\\"></require>\\n\\n  <div if.bind=\\\"(isQueryVin || isQueryPlate) && result !== undefined\\\" class=\\\"mb-3\\\">\\n    <button if.bind=\\\"result.items.length == 0\\\" type=\\\"button\\\" class=\\\"btn btn-success\\\" click.delegate=\\\"openCarSearch()\\\">\\n      <span class=\\\"align-middle\\\">\\n        ${'pages.search.fields.car' & t: {'queryType': carQueryType, 'query': carQuery}}\\n      </span>\\n    </button>\\n    <a else href=\\\"#\\\" class=\\\"card-link\\\" click.delegate=\\\"openCarSearch()\\\">\\n      ${'pages.search.fields.car' & t: {'queryType': carQueryType, 'query': carQuery}}\\n    </a>\\n  </div>\\n\\n  <product-list if.bind=\\\"result.items !== undefined && result.items.length !== 0\\\"\\n                products.bind=\\\"result.items\\\" options.bind=\\\"options\\\"\\n                order-reversed.two-way=\\\"orderReversed\\\" order-by.two-way=\\\"orderBy\\\"\\n                current-page.two-way=\\\"currentPage\\\" last-page.bind=\\\"result.lastPage\\\"\\n                query.bind=\\\"query\\\" extended-search.two-way=\\\"extendedSearch\\\">\\n  </product-list>\\n\\n  <loading else error.bind=\\\"error\\\" error-details.bind=\\\"error\\\"\\n           error-title=\\\"${'pages.search.errors.load' & t}\\\"\\n           not-found.bind=\\\"result.items !== undefined && result.items.length == 0\\\"\\n           not-found-title=\\\"${'pages.search.errors.not-found.title' & t}\\\"\\n           not-found-details=\\\"${'pages.search.errors.not-found.details' & t}\\\">\\n  </loading>\\n\\n</template>\\n\";","import { I18N } from \"aurelia-i18n\";\nimport { Utils } from \"utils/helpers/utils\";\nimport { Router } from \"aurelia-router\";\nimport { UserService } from \"services/identity/user-service\";\nimport { AppConfig } from \"app-config\";\nimport { IdentityService } from \"services/identity/identity-service\";\nimport { LogManager, autoinject } from \"aurelia-framework\";\n\nexport const log = LogManager.getLogger(\"app.user.admin\");\n\n@autoinject\nexport class Admin {\n  constructor(\n    private identityService: IdentityService,\n    private userService: UserService,\n    private appConfig: AppConfig,\n    private router: Router,\n    private i18n: I18N,\n  ) {}\n\n  activate(parameters: any) {\n    if (this.appConfig.isLoggedIn) {\n      this.router.navigateToRoute(\"home\");\n      return;\n    }\n\n    const email = decodeURIComponent(parameters.email);\n    const token = decodeURIComponent(parameters.token);\n\n    this.identityService\n      .adminLogin(email, token)\n      .then(data => {\n        this.appConfig.setToken(data, true);\n        this.userService.getSettings().then(result => {\n          if (!result) {\n            log.warn(\"User settings were not returned after admin login\");\n            return;\n          }\n\n          this.appConfig.setSettings(result);\n        });\n\n        this.router.navigateToRoute(\"home\");\n      })\n      .catch(() => Utils.showErrorToast(log, this.i18n.tr(\"pages.user.login.errors.NotAllowed\")));\n  }\n}\n","module.exports = \"<!--\\n  When no view is specified, two errors are thrown:\\n  1. TypeError: Cannot set property 'bindingContext' of null\\n  2. TypeError: this.view is null\\n-->\\n<template></template>\\n\";","import { Router } from \"aurelia-router\";\nimport { I18N } from \"aurelia-i18n\";\nimport { SearchType } from \"utils/enums/SearchType\";\nimport { AppConfig } from \"app-config\";\nimport { EventAggregator } from \"aurelia-event-aggregator\";\nimport { TKEvent } from \"utils/enums/TKEvent\";\nimport { IdentityService } from \"services/identity/identity-service\";\nimport { UserService } from \"services/identity/user-service\";\nimport { PriceSetting } from \"utils/enums/PriceSetting\";\nimport { WarehouseService } from \"services/client/warehouse-service\";\nimport { IWarehouse } from \"domain/Client/IWarehouse\";\nimport { LogManager, autoinject } from \"aurelia-framework\";\nimport { Utils } from \"utils/helpers/utils\";\nimport { ISettings } from \"domain/Settings/ISettings\";\n\nexport const log = LogManager.getLogger(\"app.user.index\");\n\n@autoinject\nexport class Index {\n  warehouses: IWarehouse[];\n\n  changePasswordForm: HTMLFormElement;\n  currentPassword: string;\n  newPassword: string;\n\n  priceSettings = {\n    retail: PriceSetting.Retail,\n    wholesale: PriceSetting.Wholesale,\n  };\n\n  // user settings\n  vatIncludedInRetail: boolean;\n  vatIncludedInWholesale: boolean;\n  priceSetting: PriceSetting;\n  warehouseId: number;\n  itemsInProductPage: string;\n  itemsInOrderPage: string;\n  itemsInInvoicePage: string;\n  itemsInReturnPage: string;\n  imagesInProductPage: boolean;\n  detailsInProductPage: boolean;\n  defaultSearchLimitation: SearchType;\n\n  // contract settings\n  useContractCart: boolean;\n  otherTransportAddresses: string;\n\n  constructor(\n    private userService: UserService,\n    private identityService: IdentityService,\n    private warehouseService: WarehouseService,\n    private eventAggregator: EventAggregator,\n    private appConfig: AppConfig,\n    private i18n: I18N,\n    private router: Router\n  ) {\n    this.eventAggregator.subscribeOnce(TKEvent.userSettingsLoaded, () => {\n      this.loadSettings();\n    });\n  }\n\n  activate() {\n    // constructor was too soon, login check hadn't kicked in yet\n    this.loadWarehouses();\n    this.loadSettings();\n  }\n\n  //#region LOAD\n\n  loadWarehouses() {\n    this.warehouseService\n      .getWarehouses()\n      .then((result) => (this.warehouses = result));\n  }\n\n  loadSettings() {\n    const userSettings = this.appConfig.userSettings;\n    const contractSettings = this.appConfig.contractSettings;\n\n    if (!userSettings || !contractSettings) return;\n\n    // user settings\n    this.vatIncludedInRetail = userSettings.vatIncludedInRetail;\n    this.vatIncludedInWholesale = userSettings.vatIncludedInWholesale;\n    this.priceSetting = userSettings.priceSetting;\n    this.warehouseId = userSettings.warehouseId;\n    this.itemsInProductPage = userSettings.itemsInProductPage.toString();\n    this.itemsInOrderPage = userSettings.itemsInOrderPage.toString();\n    this.itemsInInvoicePage = userSettings.itemsInInvoicePage.toString();\n    this.itemsInReturnPage = userSettings.itemsInReturnPage.toString();\n    this.imagesInProductPage = userSettings.imagesInProductPage;\n    this.detailsInProductPage = userSettings.detailsInProductPage;\n    this.defaultSearchLimitation = userSettings.defaultSearchLimitation;\n\n    // contract settings\n    this.useContractCart = contractSettings.useContractCart;\n    this.otherTransportAddresses = this.getStringFromRows(\n      contractSettings.otherTransportAddresses\n    );\n  }\n\n  //#endregion\n\n  //#region ACTIONS\n\n  checkPasswordValidity() {\n    Utils.checkPasswordValidity(this.i18n);\n  }\n\n  submitPasswordChange() {\n    this.identityService\n      .changePassword(this.currentPassword, this.newPassword)\n      .then(() => {\n        Utils.showSuccessToast(\n          this.i18n.tr(\"pages.user.settings.sections.password.messages.submit\")\n        );\n\n        this.changePasswordForm.reset();\n      })\n      .catch((error) =>\n        Utils.showErrorToast(\n          log,\n          this.i18n.tr(\"pages.user.settings.sections.password.errors.submit\")\n        )\n      );\n  }\n\n  submitSettings() {\n    const userSettings = this.appConfig.userSettings;\n    const contractSettings = this.appConfig.contractSettings;\n\n    // user settings\n    userSettings.vatIncludedInRetail = this.vatIncludedInRetail;\n    userSettings.vatIncludedInWholesale = this.vatIncludedInWholesale;\n    userSettings.priceSetting = this.priceSetting;\n    userSettings.warehouseId = this.warehouseId;\n    userSettings.itemsInProductPage = parseInt(this.itemsInProductPage);\n    userSettings.itemsInOrderPage = parseInt(this.itemsInOrderPage);\n    userSettings.itemsInInvoicePage = parseInt(this.itemsInInvoicePage);\n    userSettings.itemsInReturnPage = parseInt(this.itemsInReturnPage);\n    userSettings.imagesInProductPage = this.imagesInProductPage;\n    userSettings.detailsInProductPage = this.detailsInProductPage;\n    userSettings.defaultSearchLimitation = this.defaultSearchLimitation;\n\n    // contract settings\n    contractSettings.useContractCart = this.useContractCart;\n    contractSettings.otherTransportAddresses = this.getRowsFromString(\n      this.otherTransportAddresses\n    );\n\n    const settings: ISettings = {\n      userSettings,\n      contractSettings,\n    };\n\n    this.userService\n      .setSettings(settings)\n      .then(() => {\n        this.appConfig.setSettings(settings);\n        Utils.showSuccessToast(\n          this.i18n.tr(\n            \"pages.user.settings.sections.preferences.messages.submit\"\n          )\n        );\n\n        // Update cart: maybe price settings were changed\n        this.eventAggregator.publish(TKEvent.cartProductsChanged);\n      })\n      .catch(() =>\n        Utils.showErrorToast(\n          log,\n          this.i18n.tr(\"pages.user.settings.sections.preferences.errors.submit\")\n        )\n      );\n  }\n\n  //#endregion\n\n  //#region HELPERS\n\n  getStringFromRows(rows: string[]): string {\n    rows = Utils.unique(rows);\n    rows = Utils.removeEmpty(rows);\n    return rows.join(\"\\n\");\n  }\n\n  getRowsFromString(str: string): string[] {\n    let rows = str.split(\"\\n\");\n    rows = Utils.unique(rows);\n    return Utils.removeEmpty(rows);\n  }\n\n  //#endregion\n}\n","module.exports = \"<template>\\n  <require from=\\\"utils/classes/tooltip\\\"></require>\\n\\n  <div class=\\\"row\\\">\\n    <div class=\\\"col-md px-0\\\">\\n      <div class=\\\"card me-md-2 mb-2 mb-md-0\\\">\\n        <div class=\\\"card-body d-flex flex-column h-100\\\">\\n          <h4 class=\\\"card-title\\\">${'pages.user.settings.sections.password.heading' & t}</h4>\\n          <small class=\\\"card-subtitle text-muted\\\">\\n            ${'pages.user.settings.sections.password.hint' & t}\\n          </small>\\n\\n          <form class=\\\"mt-3\\\" id=\\\"change-password-form\\\" submit.delegate=\\\"submitPasswordChange()\\\"\\n                ref=\\\"changePasswordForm\\\">\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"current-email\\\">${'pages.user.settings.sections.password.labels.email' |\\n                t}</label>\\n              <input type=\\\"text\\\" class=\\\"form-control\\\" id=\\\"current-email\\\" value=\\\"${appConfig.email}\\\"\\n                     autocomplete=\\\"username email\\\" readonly disabled>\\n            </div>\\n\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"current-password\\\">\\n                ${'pages.user.settings.sections.password.labels.current-password' & t}\\n              </label>\\n              <input type=\\\"password\\\" class=\\\"form-control\\\" id=\\\"current-password\\\"\\n                     value.bind=\\\"currentPassword\\\" autocomplete=\\\"current-password\\\" data-sentry-block required>\\n            </div>\\n\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"new-password\\\">\\n                ${'pages.user.settings.sections.password.labels.new-password' & t}\\n              </label>\\n              <input type=\\\"password\\\" class=\\\"form-control\\\" id=\\\"new-password\\\" value.bind=\\\"newPassword\\\"\\n                     autocomplete=\\\"new-password\\\" required input.trigger=\\\"checkPasswordValidity()\\\" data-sentry-block>\\n            </div>\\n            <div class=\\\"form-group\\\">\\n              <label for=\\\"new-password-again\\\">\\n                ${'pages.user.settings.sections.password.labels.new-password-again' & t}\\n              </label>\\n              <input type=\\\"password\\\" class=\\\"form-control\\\" id=\\\"new-password-again\\\"\\n                     autocomplete=\\\"new-password\\\" required input.trigger=\\\"checkPasswordValidity()\\\" data-sentry-block>\\n            </div>\\n          </form>\\n\\n          <button type=\\\"submit\\\" form=\\\"change-password-form\\\"\\n                  class=\\\"card-link btn btn-outline-success btn-usersettings align-self-end\\\">\\n            ${'pages.user.settings.sections.password.buttons.submit' & t}\\n          </button>\\n        </div>\\n      </div>\\n    </div>\\n\\n    <div class=\\\"col-md px-0\\\">\\n      <div class=\\\"card\\\">\\n        <div class=\\\"card-body d-flex flex-column h-100\\\">\\n          <h4 class=\\\"card-title\\\">${'pages.user.settings.sections.preferences.heading' & t}</h4>\\n\\n          <form id=\\\"settings-form\\\" submit.delegate=\\\"submitSettings()\\\">\\n            <fieldset class=\\\"form-group\\\">\\n              <div class=\\\"row\\\">\\n                <legend class=\\\"col-form-label col-5 pt-0 text-end\\\">\\n                  ${'pages.user.settings.sections.preferences.options.prices.label' & t}\\n                </legend>\\n\\n                <div class=\\\"col-7\\\">\\n                  <div class=\\\"form-check\\\">\\n                    <label class=\\\"form-check-label\\\">\\n                      <input class=\\\"form-check-input\\\" type=\\\"radio\\\" name=\\\"priceSetting\\\"\\n                             model.bind=\\\"priceSettings.retail\\\" checked.bind=\\\"priceSetting\\\">\\n                      ${'pages.user.settings.sections.preferences.options.prices.retail.label' & t}\\n                    </label>\\n                  </div>\\n                  <div class=\\\"form-check\\\">\\n                    <label class=\\\"form-check-label\\\">\\n                      <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\"\\n                             checked.bind=\\\"vatIncludedInRetail\\\">\\n                      ${'pages.user.settings.sections.preferences.options.prices.retail.vat-included'\\n                      & t}\\n                    </label>\\n                  </div>\\n\\n                  <div class=\\\"form-check\\\">\\n                    <label class=\\\"form-check-label\\\">\\n                      <input class=\\\"form-check-input\\\" type=\\\"radio\\\" name=\\\"priceSetting\\\"\\n                             model.bind=\\\"priceSettings.wholesale\\\" checked.bind=\\\"priceSetting\\\">\\n                      ${'pages.user.settings.sections.preferences.options.prices.wholesale.label' &\\n                      t}\\n                    </label>\\n                  </div>\\n                  <div class=\\\"form-check\\\">\\n                    <label class=\\\"form-check-label\\\">\\n                      <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\"\\n                             checked.bind=\\\"vatIncludedInWholesale\\\">\\n                      ${'pages.user.settings.sections.preferences.options.prices.wholesale.vat-included'\\n                      & t}\\n                    </label>\\n                  </div>\\n                </div>\\n              </div>\\n            </fieldset>\\n\\n            <fieldset class=\\\"form-group\\\">\\n              <div class=\\\"row\\\">\\n                <legend class=\\\"col-form-label col-5 pt-0 text-end\\\">\\n                  ${'pages.user.settings.sections.preferences.options.warehouse.label' & t}\\n                </legend>\\n\\n                <div class=\\\"col-7\\\">\\n                  <select class=\\\"form-select form-select-sm\\\" value.bind=\\\"warehouseId\\\">\\n                    <option repeat.for=\\\"warehouse of warehouses\\\" model.bind=\\\"warehouse.id\\\">\\n                      ${warehouse.name}\\n                    </option>\\n                  </select>\\n                </div>\\n              </div>\\n            </fieldset>\\n\\n            <fieldset class=\\\"form-group\\\">\\n              <div class=\\\"row\\\">\\n                <legend class=\\\"col-form-label col-5 pt-0 text-end\\\">\\n                  ${'pages.user.settings.sections.preferences.options.display.label' & t}\\n                </legend>\\n\\n                <div class=\\\"col-7\\\">\\n                  <div class=\\\"form-check\\\">\\n                    <label class=\\\"form-check-label\\\">\\n                      <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\"\\n                             checked.bind=\\\"imagesInProductPage\\\">\\n                      ${'pages.user.settings.sections.preferences.options.display.images' & t}\\n                    </label>\\n                  </div>\\n\\n                  <div class=\\\"form-check\\\">\\n                    <label class=\\\"form-check-label\\\">\\n                      <input class=\\\"form-check-input\\\" type=\\\"checkbox\\\"\\n                             checked.bind=\\\"detailsInProductPage\\\">\\n                      ${'pages.user.settings.sections.preferences.options.display.details' & t}\\n                    </label>\\n                  </div>\\n                </div>\\n              </div>\\n            </fieldset>\\n\\n            <fieldset class=\\\"form-group\\\">\\n              <div class=\\\"row\\\">\\n                <legend class=\\\"col-form-label col-5 pt-0 text-end\\\">\\n                  ${'pages.user.settings.sections.preferences.options.search-type.label' & t}\\n                </legend>\\n\\n                <div class=\\\"col-7\\\">\\n                  <select class=\\\"form-select form-select-sm\\\" value.bind=\\\"defaultSearchLimitation\\\">\\n                    <option model.bind=\\\"0\\\">${'components.search-bar.types.all' & t}</option>\\n                    <option model.bind=\\\"1\\\">${'components.search-bar.types.code' & t}</option>\\n                    <option model.bind=\\\"2\\\">${'components.search-bar.types.name' & t}</option>\\n                    <option model.bind=\\\"3\\\">${'components.search-bar.types.tecdoc' & t}</option>\\n                    <option model.bind=\\\"4\\\">${'components.search-bar.types.ean' & t}</option>\\n                    <option model.bind=\\\"5\\\">${'components.search-bar.types.precise' & t}</option>\\n                  </select>\\n                </div>\\n              </div>\\n            </fieldset>\\n\\n            <fieldset class=\\\"form-group\\\">\\n              <div class=\\\"row\\\">\\n                <legend class=\\\"col-form-label col-5 pt-0 text-end\\\">\\n                  ${'pages.user.settings.sections.preferences.options.products-on-page.label' & t}\\n                </legend>\\n\\n                <div class=\\\"col-7\\\">\\n                  <input type=\\\"number\\\" class=\\\"form-control form-control-sm\\\" min=\\\"1\\\" max=\\\"100\\\"\\n                         value.bind=\\\"itemsInProductPage\\\">\\n                </div>\\n              </div>\\n            </fieldset>\\n\\n            <fieldset class=\\\"form-group\\\">\\n              <div class=\\\"row\\\">\\n                <legend class=\\\"col-form-label col-5 pt-0 text-end\\\">\\n                  ${'pages.user.settings.sections.preferences.options.orders-on-page.label' & t}\\n                </legend>\\n\\n                <div class=\\\"col-7\\\">\\n                  <input type=\\\"number\\\" class=\\\"form-control form-control-sm\\\" min=\\\"1\\\" max=\\\"100\\\"\\n                         value.bind=\\\"itemsInOrderPage\\\">\\n                </div>\\n              </div>\\n            </fieldset>\\n\\n            <fieldset class=\\\"form-group\\\">\\n              <div class=\\\"row\\\">\\n                <legend class=\\\"col-form-label col-5 pt-0 text-end\\\">\\n                  ${'pages.user.settings.sections.preferences.options.invoices-on-page.label' & t}\\n                </legend>\\n\\n                <div class=\\\"col-7\\\">\\n                  <input type=\\\"number\\\" class=\\\"form-control form-control-sm\\\" min=\\\"1\\\" max=\\\"100\\\"\\n                         value.bind=\\\"itemsInInvoicePage\\\">\\n                </div>\\n              </div>\\n            </fieldset>\\n\\n            <fieldset class=\\\"form-group\\\">\\n              <div class=\\\"row\\\">\\n                <legend class=\\\"col-form-label col-5 pt-0 text-end\\\">\\n                  ${'pages.user.settings.sections.preferences.options.returns-on-page.label' & t}\\n                </legend>\\n\\n                <div class=\\\"col-7\\\">\\n                  <input type=\\\"number\\\" class=\\\"form-control form-control-sm\\\" min=\\\"1\\\" max=\\\"100\\\"\\n                         value.bind=\\\"itemsInReturnPage\\\">\\n                </div>\\n              </div>\\n            </fieldset>\\n\\n            <hr />\\n\\n            <fieldset class=\\\"form-group\\\" tooltip=\\\"${'pages.user.settings.sections.preferences.options.cart.tooltip' & t}\\\">\\n              <div class=\\\"row\\\">\\n                <legend class=\\\"col-form-label col-5 pt-0 text-end\\\">\\n                  ${'pages.user.settings.sections.preferences.options.cart.label' & t}\\n                </legend>\\n\\n                <div class=\\\"col-7\\\">\\n                  <div class=\\\"form-check\\\">\\n                    <label class=\\\"form-check-label\\\">\\n                      <input class=\\\"form-check-input\\\" type=\\\"radio\\\" name=\\\"useContractCart\\\"\\n                             model.bind=\\\"false\\\" checked.bind=\\\"useContractCart\\\">\\n                      ${'pages.user.settings.sections.preferences.options.cart.user-based' & t}\\n                    </label>\\n                  </div>\\n                  <div class=\\\"form-check\\\">\\n                    <label class=\\\"form-check-label\\\">\\n                      <input class=\\\"form-check-input\\\" type=\\\"radio\\\" name=\\\"useContractCart\\\"\\n                             model.bind=\\\"true\\\" checked.bind=\\\"useContractCart\\\">\\n                      ${'pages.user.settings.sections.preferences.options.cart.contract-based' & t}\\n                    </label>\\n                  </div>\\n                </div>\\n              </div>\\n            </fieldset>\\n\\n            <fieldset class=\\\"form-group\\\">\\n              <div class=\\\"row\\\">\\n                <legend class=\\\"col-form-label col-5 pt-0 text-end\\\">\\n                  ${'pages.user.settings.sections.preferences.options.other-addresses.label' &\\n                  t}<br>\\n                  <small\\n                         class=\\\"text-muted\\\">${'pages.user.settings.sections.preferences.options.other-addresses.hint'\\n                    & t}</small>\\n                </legend>\\n\\n                <div class=\\\"col-7\\\">\\n                  <textarea class=\\\"form-control\\\" rows=\\\"4\\\"\\n                            value.bind=\\\"otherTransportAddresses\\\"></textarea>\\n                </div>\\n              </div>\\n            </fieldset>\\n          </form>\\n\\n          <button type=\\\"submit\\\" form=\\\"settings-form\\\"\\n                  class=\\\"card-link btn btn-outline-success mt-auto btn-usersettings align-self-end\\\">\\n            ${'pages.user.settings.sections.preferences.buttons.submit' & t}\\n          </button>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n\\n</template>\\n\";","import { I18N } from \"aurelia-i18n\";\nimport { Utils } from \"utils/helpers/utils\";\nimport { Router } from \"aurelia-router\";\nimport { UserService } from \"services/identity/user-service\";\nimport { AppConfig } from \"app-config\";\nimport { IdentityService } from \"services/identity/identity-service\";\nimport { LogManager, autoinject } from \"aurelia-framework\";\nimport { TKError } from \"utils/enums/TKError\";\nimport { ServiceResponseError } from \"utils/classes/error/ServiceResponseError\";\n\nexport const log = LogManager.getLogger(\"app.user.login\");\n\n@autoinject\nexport class Login {\n  email: string;\n  password: string;\n  rememberMe = true;\n\n  hasFocus = true;\n  loading = false;\n\n  constructor(\n    private identityService: IdentityService,\n    private userService: UserService,\n    private appConfig: AppConfig,\n    private router: Router,\n    private i18n: I18N,\n  ) {}\n\n  activate(parameters: any) {\n    if (this.appConfig.isLoggedIn) this.router.navigateToRoute(\"home\");\n\n    if (parameters.error && parameters.error == TKError.sessionExpired)\n      Utils.showErrorToast(log, this.i18n.tr(\"general.errors.session-expired\"));\n\n    this.checkVersion();\n  }\n\n  submit(): void {\n    this.loading = true;\n\n    this.identityService\n      .login(this.email, this.password)\n      .then(data => {\n        this.loading = false;\n\n        this.appConfig.setToken(data, this.rememberMe);\n        this.userService.getSettings().then(result => {\n          if (!result) {\n            log.warn(\"User settings were not returned after login\");\n            return;\n          }\n\n          this.appConfig.setSettings(result);\n        });\n\n        this.router.navigateToRoute(\"home\");\n      })\n      .catch(error => {\n        this.getErrorMessage(error).then(message => Utils.showErrorToast(log, message));\n        this.loading = false;\n      });\n  }\n\n  forgotPassword() {\n    if (!this.email) {\n      Utils.showInfoToast(this.i18n.tr(\"pages.user.login.messages.no-email\"));\n      return;\n    }\n\n    this.identityService\n      .forgotPassword(this.email)\n      .then(() => {\n        Utils.showSuccessToast(this.i18n.tr(\"pages.user.login.messages.email-sent\"));\n      })\n      .catch(() => Utils.showErrorToast(log, this.i18n.tr(\"pages.user.login.errors.NotAllowed\")));\n  }\n\n  async getErrorMessage(error: ServiceResponseError): Promise<string> {\n    const message = this.i18n.tr(\"general.errors.backend\", {\n      status: error.name,\n    });\n    if (!(error instanceof ServiceResponseError)) return message;\n\n    const body = await error.getBody();\n    switch (body.code) {\n      case \"LockedOut\":\n      case \"NotAllowed\":\n      case \"InactiveLockout\":\n        return this.i18n.tr(`pages.user.login.errors.${body.code}`);\n    }\n\n    return message;\n  }\n\n  async checkVersion() {\n    const currentVersion = document\n      .querySelector(\"meta[name=version]\")\n      ?.getAttribute(\"content\")\n      ?.trim();\n\n    if (!currentVersion || currentVersion == \"{{VERSION}}\") {\n      console.warn(\"Version is not set, probably local build\");\n      return;\n    }\n\n    const remoteVersion = await fetch(`/version.txt?random=${new Date().getTime()}`)\n      .then(res => {\n        return res.status === 200 ? res.text().then(text => text.trim()) : null;\n      })\n      .catch(err => {\n        console.warn(\"Network error while fetching version:\", err);\n        return null;\n      });\n\n    if (!remoteVersion) {\n      console.warn(\"Failed to fetch remote version, probably dev build\");\n      return;\n    }\n\n    if (remoteVersion != currentVersion) location.reload();\n  }\n}\n","module.exports = \"<template>\\n\\n  <div if.bind=\\\"!loading\\\" class=\\\"login-form-wrapper mx-auto\\\">\\n    <form submit.trigger=\\\"submit()\\\">\\n      <div class=\\\"form-group\\\">\\n        <label for=\\\"email\\\">${'pages.user.login.labels.email' & t}</label>\\n        <input focus.bind=\\\"hasFocus\\\" type=\\\"email\\\" class=\\\"form-control\\\" id=\\\"email\\\"\\n               autocomplete=\\\"username email\\\" value.bind=\\\"email\\\" required>\\n      </div>\\n      <div class=\\\"form-group\\\">\\n        <label for=\\\"password\\\">${'pages.user.login.labels.password' & t}</label>\\n        <input type=\\\"password\\\" class=\\\"form-control\\\" id=\\\"password\\\" autocomplete=\\\"current-password\\\"\\n               value.bind=\\\"password\\\" required data-sentry-block>\\n      </div>\\n\\n      <div class=\\\"row pt-3 g-0\\\">\\n        <div class=\\\"col\\\">\\n          <a class=\\\"align-middle\\\" href=\\\"#\\\" click.delegate=\\\"forgotPassword()\\\">\\n            ${'pages.user.login.buttons.forgot-password' & t}\\n          </a>\\n        </div>\\n        <div class=\\\"col\\\">\\n          <div class=\\\"text-end\\\">\\n            <button id=\\\"login\\\" type=\\\"submit\\\" class=\\\"btn btn-primary\\\">\\n              ${'pages.user.login.buttons.login' & t}\\n            </button>\\n          </div>\\n        </div>\\n      </div>\\n    </form>\\n\\n    <div class=\\\"mt-5\\\">\\n      <h6>${'pages.user.login.sections.import.heading' & t}</h6>\\n      <p class=\\\"text-muted text-justify\\\" t=\\\"[html]pages.user.login.sections.import.body\\\"></p>\\n    </div>\\n\\n    <div>\\n      <h6>${'pages.user.login.sections.register.heading' & t}</h6>\\n      <p class=\\\"text-muted text-justify\\\" t=\\\"[html]pages.user.login.sections.register.body\\\"></p>\\n    </div>\\n\\n    <div>\\n      <h6>${'pages.user.login.sections.cookies.heading' & t}</h6>\\n      <p class=\\\"text-muted text-justify\\\" t=\\\"[html]pages.user.login.sections.cookies.body\\\"></p>\\n    </div>\\n  </div>\\n\\n  <div class=\\\"w-100 text-center\\\" else>\\n    <div class=\\\"spinner-border\\\" role=\\\"status\\\"></div>\\n  </div>\\n\\n</template>\\n\";","import { EventAggregator } from 'aurelia-event-aggregator';\nimport { I18N } from 'aurelia-i18n';\nimport { Utils } from 'utils/helpers/utils';\nimport { Router } from 'aurelia-router';\nimport { AppConfig } from 'app-config';\nimport { IdentityService } from 'services/identity/identity-service';\nimport { LogManager, autoinject } from \"aurelia-framework\";\nimport { ServiceResponseError } from 'utils/classes/error/ServiceResponseError';\n\nexport var log = LogManager.getLogger('app.user.reset');\n\n@autoinject\nexport class Reset {\n  locale: string;\n  token: string;\n  email: string;\n\n  password: string;\n  rememberMe: boolean = false;\n\n  hasFocus = true;\n\n  constructor(\n    private identityService: IdentityService,\n    private appConfig: AppConfig,\n    private router: Router,\n    private i18n: I18N,\n    private eventAggregator: EventAggregator\n  ) { }\n\n  activate(parameters: any) {\n    this.locale = decodeURIComponent(parameters.locale);\n    this.email = decodeURIComponent(parameters.email);\n    this.token = decodeURIComponent(parameters.token);\n\n    Utils.setLocale(this.eventAggregator, this.i18n, this.locale);\n  }\n\n  checkPasswordValidity() {\n    Utils.checkPasswordValidity(this.i18n);\n  }\n\n  submit(): void {\n    this.identityService.resetPassword(this.token, this.email, this.password).then(data => {\n      this.appConfig.setToken(data, this.rememberMe);\n      this.router.navigateToRoute('home');\n    }).catch(error => this.getErrorMessage(error)\n      .then(message => Utils.showErrorToast(log, message)));\n  }\n\n  async getErrorMessage(error: ServiceResponseError): Promise<string> {\n    let message = this.i18n.tr('general.errors.backend', { status: error.name });\n\n    if (!(error instanceof ServiceResponseError))\n      return message;\n\n    switch (error.name) {\n      case \"400\":\n        return this.i18n.tr(\"pages.user.reset.errors.PasswordTooShort\");\n      case \"406\":\n        const body = await error.getBody();\n        switch (body.code) {\n          case \"InvalidToken\":\n          case \"PasswordRequiresLower\":\n          case \"PasswordRequiresUpper\":\n          case \"PasswordRequiresDigit\":\n            return this.i18n.tr(`pages.user.reset.errors.${body.code}`);\n        }\n    }\n\n    return message;\n  }\n}\n","module.exports = \"<template>\\n\\n  <div class=\\\"login-form-wrapper mx-auto\\\">\\n    <h4 class=\\\"card-title\\\">${'pages.user.reset.title' & t}</h4>\\n    <small class=\\\"card-subtitle text-muted\\\">${'pages.user.reset.hint' & t}</small>\\n\\n    <form submit.trigger=\\\"submit()\\\">\\n      <div class=\\\"form-group\\\">\\n        <label for=\\\"email\\\">${'pages.user.reset.labels.email' & t}</label>\\n        <input focus.bind=\\\"hasFocus\\\" type=\\\"email\\\" class=\\\"form-control\\\" id=\\\"email\\\"\\n               autocomplete=\\\"username email\\\" value.bind=\\\"email\\\" readonly disabled>\\n      </div>\\n      <div class=\\\"form-group\\\">\\n        <label for=\\\"new-password\\\">${'pages.user.reset.labels.password' & t}</label>\\n        <input type=\\\"password\\\" class=\\\"form-control\\\" id=\\\"new-password\\\" autocomplete=\\\"new-password\\\"\\n               value.bind=\\\"password\\\" required input.trigger=\\\"checkPasswordValidity()\\\" data-sentry-block>\\n      </div>\\n      <div class=\\\"form-group\\\">\\n        <label for=\\\"new-password-again\\\">\\n          ${'pages.user.settings.sections.password.labels.new-password-again' & t}\\n        </label>\\n        <input type=\\\"password\\\" class=\\\"form-control\\\" id=\\\"new-password-again\\\"\\n               autocomplete=\\\"new-password\\\" required input.trigger=\\\"checkPasswordValidity()\\\" data-sentry-block>\\n      </div>\\n      <div class=\\\"row pt-3 g-0\\\">\\n        <div class=\\\"text-end\\\">\\n          <button type=\\\"submit\\\" class=\\\"btn btn-primary\\\" click.delegate=\\\"submit()\\\">\\n            ${'pages.user.reset.buttons.submit' & t}\\n          </button>\\n        </div>\\n      </div>\\n    </form>\\n  </div>\\n\\n</template>\\n\";"],"sourceRoot":""}