{"version":3,"sources":["webpack:///src/usr/src/app/src/components/cart/cart-product-list.ts","webpack:///./src/components/cart/cart-product-list.html","webpack:///src/usr/src/app/src/components/cart/nested-cart-product-list.ts","webpack:///./src/components/cart/nested-cart-product-list.html","webpack:///src/usr/src/app/src/components/cart/transport-list.ts","webpack:///./src/components/cart/transport-list.html","webpack:///src/usr/src/app/src/components/general/accordion.ts","webpack:///./src/components/general/accordion.html","webpack:///src/usr/src/app/src/components/general/loading.ts","webpack:///./src/components/general/loading.html","webpack:///src/usr/src/app/src/components/general/pager.ts","webpack:///./src/components/general/pager.html","webpack:///src/usr/src/app/src/components/general/simple-tree.ts","webpack:///./src/components/general/simple-tree.html","webpack:///src/usr/src/app/src/components/general/toast.ts","webpack:///./src/components/general/toast.html","webpack:///src/usr/src/app/src/components/product/product-filter.ts","webpack:///./src/components/product/product-filter.html","webpack:///src/usr/src/app/src/components/product/product-list/add-to-cart.ts","webpack:///./src/components/product/product-list/add-to-cart.html","webpack:///src/usr/src/app/src/components/product/product-list/copy-to-clipboard.ts","webpack:///./src/components/product/product-list/copy-to-clipboard.html","webpack:///src/usr/src/app/src/components/product/product-list/extra-row.ts","webpack:///./src/components/product/product-list/extra-row.html","webpack:///src/usr/src/app/src/components/product/product-list/gallery.ts","webpack:///./src/components/product/product-list/gallery.html","webpack:///src/usr/src/app/src/components/product/product-list/price.ts","webpack:///./src/components/product/product-list/price.html","webpack:///src/usr/src/app/src/components/product/product-list/product-list.ts","webpack:///./src/components/product/product-list/product-list.html","webpack:///src/usr/src/app/src/components/product/product-list/report-button.ts","webpack:///./src/components/product/product-list/report-button.html","webpack:///src/usr/src/app/src/components/product/product-list/stock.ts","webpack:///./src/components/product/product-list/stock.html","webpack:///src/usr/src/app/src/components/product/search/categories.ts","webpack:///./src/components/product/search/categories.html","webpack:///src/usr/src/app/src/components/product/search/search-bar.ts","webpack:///./src/components/product/search/search-bar.html","webpack:///src/usr/src/app/src/components/sale/order/order-list.ts","webpack:///./src/components/sale/order/order-list.html","webpack:///src/usr/src/app/src/components/sale/order/order-search-bar.ts","webpack:///./src/components/sale/order/order-search-bar.html","webpack:///src/usr/src/app/src/components/sale/return/index.ts","webpack:///./src/components/sale/return/index.html","webpack:///src/usr/src/app/src/components/sale/return/list.ts","webpack:///./src/components/sale/return/list.html"],"names":[],"mappings":"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","file":"app~21833f8f.71ff2c0ad52d6c797d15.chunk.js","sourcesContent":["import { I18N } from \"aurelia-i18n\";\nimport { IWarehouse } from \"domain/Client/IWarehouse\";\nimport { WarehouseService } from \"services/client/warehouse-service\";\nimport { ICartProduct } from \"domain/Cart/ICartProduct\";\nimport { AppConfig } from \"app-config\";\nimport { Utils } from \"utils/helpers/utils\";\nimport { EventAggregator } from \"aurelia-event-aggregator\";\nimport { LogManager, autoinject, observable, bindable } from \"aurelia-framework\";\nimport { IProduct } from \"domain/Product/IProduct\";\nimport { CartProductService } from \"services/cart/cart-product-service\";\nimport { ProductService } from \"services/product/product-service\";\nimport { PriceHelper } from \"utils/helpers/price-helper\";\nimport { TKEvent } from \"utils/enums/TKEvent\";\nimport $ from \"jquery\";\nimport \"bootstrap\";\nimport { Modal, Popover } from \"bootstrap\";\n\nexport const log = LogManager.getLogger(\"app.components.product-list\");\n\n@autoinject\nexport class CartProductListCustomElement {\n  @bindable @observable products: ICartProduct[];\n  @bindable warehouses: IWarehouse[];\n\n  @bindable options = {\n    showImages: false,\n    showEan: false,\n    showStock: false,\n    showWarehouse: false,\n    showReason: false,\n    showDisplayPrice: false,\n    isReturnCart: false,\n  };\n\n  imagesLoaded = false;\n\n  constructor(\n    private cartProductService: CartProductService,\n    private productService: ProductService,\n    private warehouseService: WarehouseService,\n    private appConfig: AppConfig,\n    private eventAggregator: EventAggregator,\n    private i18n: I18N\n  ) {\n    this.eventAggregator.subscribeOnce(TKEvent.userSettingsLoaded, () => {\n      this.formatPrice();\n      this.tryLoadImages();\n    });\n    this.eventAggregator.subscribe(\n      TKEvent.cartProductsWarehouseChanged,\n      (product: ICartProduct) => {\n        this.updateProduct(product);\n      }\n    );\n  }\n\n  attached() {\n    // options are populated now\n    this.loadWarehouses();\n    this.tryLoadImages();\n  }\n\n  // #region MAIN\n\n  productsChanged() {\n    this.imagesLoaded = false;\n    this.processResult();\n  }\n\n  processResult() {\n    Utils.loadSortable();\n\n    this.formatPrice();\n    this.tryLoadImages();\n\n    this.products.forEach(product => {\n      this.loadExternalStock(product);\n    });\n  }\n\n  // #endregion\n\n  // #region LOAD\n\n  loadWarehouses() {\n    this.warehouseService\n      .getWarehouses()\n      .then(result => (this.warehouses = result))\n      .catch(() => Utils.showErrorToast(log, this.i18n.tr(\"components.warehouses.errors.load\")));\n  }\n\n  loadThumbnail(product: IProduct) {\n    product.imageLoadingCount = (product.imageLoadingCount ?? 0) + 1;\n\n    this.productService\n      .fetchThumbnail(product.id)\n      .then(result => {\n        product.thumbnail = result;\n\n        if (result == \"\") return;\n\n        // Large thumbnail when hovering\n        const thumbnailList = document.querySelector(`[data-image=\"${product.id}\"]`);\n        if (thumbnailList) {\n          new Popover(thumbnailList, {\n            content: `<img src=\"${product.thumbnail}\"></img>`,\n            trigger: \"hover focus\",\n            container: $(`[data-image=\"${product.id}\"]`).get(0),\n            html: true,\n          });\n        }\n      })\n      .finally(() => {\n        product.imageLoadingCount = Math.max((product.imageLoadingCount ?? 1) - 1, 0);\n      })\n      .catch(error => Utils.showErrorToast(log, Utils.getErrorMessage(error, this.i18n)));\n  }\n\n  loadImages(product: IProduct) {\n    product.imageLoadingCount = (product.imageLoadingCount ?? 0) + 1;\n\n    this.productService\n      .fetchImages(product.id)\n      .then(result => {\n        product.images = result;\n      })\n      .finally(() => {\n        product.imageLoadingCount = Math.max((product.imageLoadingCount ?? 1) - 1, 0);\n      })\n      .catch(error => Utils.showErrorToast(log, Utils.getErrorMessage(error, this.i18n)));\n  }\n\n  fillDefaultSelectedStock(product: ICartProduct) {\n    const warehouseId = product.warehouseId ?? 0;\n    const externalWarehouseId = product.externalWarehouseId ?? 0;\n    let selectedExternalStock: any = null;\n\n    if (product.externalWarehouseId) {\n      selectedExternalStock = product.externalStock.find(\n        x => x.warehouse.id === externalWarehouseId\n      );\n      if (!selectedExternalStock) {\n        selectedExternalStock =\n          product.externalStock.find(x => Number(x.warehouse.groupId) === 2) ||\n          product.externalStock.find(x => Number(x.warehouse.groupId) === 1) ||\n          product.externalStock[0];\n      }\n    }\n\n    if (selectedExternalStock) {\n      product.selectedStock = selectedExternalStock;\n    } else {\n      let stockItem = product.stock.find(x => x.warehouse.id == warehouseId);\n\n      if (!stockItem) {\n        stockItem = {\n          warehouse: this.warehouses.find(x => x.id == warehouseId)!,\n          quantity: \"0\",\n          prices: product?.prices ?? [],\n        };\n        PriceHelper.formatStockPrices([stockItem], this.appConfig.userSettings, this.i18n, true);\n      }\n\n      product.selectedStock = stockItem;\n    }\n    this.eventAggregator.publish(TKEvent.updateCartTotal);\n  }\n\n  loadExternalStock(product: ICartProduct) {\n    if (product && !product.id) {\n      product.externalStock = [];\n      return;\n    }\n    this.productService\n      .fetchExternalStock(product.id)\n      .then(result => {\n        if (Utils.isArrayEmpty(result)) result = [];\n        product.externalStock = result;\n\n        PriceHelper.formatStockPrices(\n          product.externalStock,\n          this.appConfig.userSettings,\n          this.i18n\n        );\n      })\n      .finally(() => {\n        this.fillDefaultSelectedStock(product);\n      });\n  }\n\n  // #endregion\n\n  // #region ACTIONS\n\n  showGallery(product: IProduct) {\n    $(() => {\n      // If there are no images to display\n      if ($(`[data-gallery=\"${product.id}\"]`).children(\".carousel-inner\").children().length == 0)\n        return;\n\n      const dataGallerySelector = document.querySelector(`[data-gallery-wrapper=\"${product.id}\"]`);\n      if (dataGallerySelector) new Modal(dataGallerySelector).toggle();\n    });\n  }\n\n  updateProduct(product: ICartProduct) {\n    const cartProduct = {\n      cartProductId: product.cartProductId ?? 0,\n      foundBy: product.foundBy,\n      code: product.code,\n      quantity: parseInt(product.quantity.toString()),\n      comment: product.comment,\n      warehouseId: product.selectedStock?.warehouse?.id ?? product.warehouseId ?? 0,\n      transportId: parseInt(product.transportId ?? \"0\"),\n    } as any;\n\n    if (product.selectedStock?.warehouse?.isExternal) {\n      cartProduct.warehouseId = 0;\n      cartProduct.externalWarehouseId = product.selectedStock?.warehouse?.id;\n    }\n\n    if (isNaN(cartProduct.quantity)) return;\n    if (cartProduct.quantity < 1) {\n      product.quantity = 1;\n      return;\n    }\n\n    this.cartProductService\n      .putExistingProduct(cartProduct)\n      .then(result => {\n        if (result && result.products && Array.isArray(result.products)) {\n          const updated = result.products.find(p => p.cartProductId === cartProduct.cartProductId);\n          const index = this.products.findIndex(p => p.cartProductId === updated?.cartProductId);\n\n          if (index !== -1) {\n            Object.assign(this.products[index], updated);\n          } else {\n            this.products = result.products;\n          }\n        }\n\n        if (this.options.isReturnCart)\n          this.eventAggregator.publish(TKEvent.returnCartChanged, result);\n\n        this.eventAggregator.publish(TKEvent.cartProductsChanged);\n      })\n      .catch(() => Utils.showErrorToast(log, this.i18n.tr(\"pages.cart.errors.update\")));\n\n    this.formatPrice();\n  }\n\n  removeFromCart(cartProductId: number) {\n    this.cartProductService\n      .delete(cartProductId)\n      .then(() => {\n        this.products.forEach((product, index) => {\n          if (product.cartProductId == cartProductId) {\n            this.products.splice(index, 1);\n            return;\n          }\n        });\n\n        this.eventAggregator.publish(TKEvent.cartProductsChanged);\n      })\n      .catch(() => Utils.showErrorToast(log, this.i18n.tr(\"pages.cart.errors.remove\")));\n  }\n\n  // #endregion\n\n  tryLoadImages() {\n    if (!this.products || !this.options.showImages || this.imagesLoaded) return;\n\n    this.imagesLoaded = true;\n    this.products.forEach(product => {\n      this.loadThumbnail(product);\n      this.loadImages(product);\n    });\n  }\n\n  formatPrice() {\n    if (!this.products || !this.appConfig.userSettings) return;\n\n    PriceHelper.formatProductsPrices(this.products, this.appConfig.userSettings, this.i18n, true);\n  }\n}\n","module.exports = \"<template>\\n  <require from=\\\"utils/classes/value-converters\\\"></require>\\n  <require from=\\\"components/product/product-list/gallery\\\"></require>\\n  <require from=\\\"components/product/product-list/stock\\\"></require>\\n  <require from=\\\"components/product/product-list/price\\\"></require>\\n  <require from=\\\"!style-loader!css-loader!bootstrap-sortable/Contents/bootstrap-sortable.css\\\">\\n  </require>\\n\\n  <table\\n    id=\\\"accordion\\\"\\n    class=\\\"table table-borderless table-sm table-responsive-md sortable w-100 accordion table-striped\\\">\\n    <thead>\\n      <tr id=\\\"product-list-header-row\\\">\\n        <th\\n          if.bind=\\\"appConfig.userSettings.imagesInProductPage && options.showImages\\\"\\n          class=\\\"text-center\\\"\\n          data-defaultsort=\\\"disabled\\\">\\n          ${'components.products.headers.thumbnail' & t}\\n        </th>\\n        <th data-defaultsign=\\\"nospan\\\">${'components.products.headers.code' & t}</th>\\n        <th data-defaultsign=\\\"nospan\\\">${'components.products.headers.name' & t}</th>\\n        <th if.bind=\\\"options.showEan\\\" class=\\\"text-center\\\" data-defaultsign=\\\"nospan\\\">\\n          ${'components.products.headers.ean' & t}\\n        </th>\\n        <th if.bind=\\\"options.showStock\\\" class=\\\"text-center\\\" data-defaultsign=\\\"nospan\\\">\\n          ${'components.products.headers.stock' & t}\\n        </th>\\n        <th if.bind=\\\"options.showReason\\\" class=\\\"text-center\\\" data-defaultsign=\\\"nospan\\\">\\n          ${'pages.returns.headers.reason' & t}\\n        </th>\\n        <th class=\\\"text-center\\\" data-defaultsign=\\\"nospan\\\">\\n          ${'components.products.headers.price' & t}\\n        </th>\\n        <th class=\\\"text-center\\\" data-defaultsign=\\\"nospan\\\">\\n          ${'components.products.headers.amount' & t}\\n        </th>\\n        <th class=\\\"text-center\\\" data-defaultsign=\\\"nospan\\\">\\n          ${'components.products.headers.total' & t}\\n        </th>\\n        <th data-defaultsort=\\\"disabled\\\"></th>\\n      </tr>\\n    </thead>\\n\\n    <tbody>\\n      <tr repeat.for=\\\"product of products\\\" class=\\\"product-row\\\">\\n        <td\\n          if.bind=\\\"appConfig.userSettings.imagesInProductPage && options.showImages\\\"\\n          class=\\\"product-image-wrapper\\\"\\n          click.trigger=\\\"showGallery(product)\\\"\\n          data-image.bind=\\\"product.id\\\">\\n          <span class=\\\"product-image-state\\\">\\n            <span\\n              if.bind=\\\"product.imageLoadingCount && !product.thumbnail\\\"\\n              class=\\\"product-image-loading\\\">\\n              <span class=\\\"spinner-border spinner-border-sm text-secondary\\\" role=\\\"status\\\"></span>\\n            </span>\\n            <img\\n              class=\\\"mx-auto product-image\\\"\\n              if.bind=\\\"product.thumbnail\\\"\\n              src.bind=\\\"product.thumbnail\\\" />\\n          </span>\\n        </td>\\n\\n        <td class=\\\"text-nowrap\\\"><span>${product.code}</span></td>\\n\\n        <td><span>${product.name}</span></td>\\n\\n        <td if.bind=\\\"options.showEan\\\" class=\\\"text-center text-nowrap\\\">\\n          <span>${product.ean}</span>\\n        </td>\\n\\n        <td\\n          if.bind=\\\"options.showStock\\\"\\n          class=\\\"text-center text-nowrap\\\"\\n          as-element=\\\"stock\\\"\\n          product.bind=\\\"product\\\"\\n          warehouses.bind=\\\"warehouses\\\"></td>\\n\\n        <td if.bind=\\\"options.showReason\\\" class=\\\"text-center text-nowrap\\\">\\n          <input\\n            type=\\\"text\\\"\\n            class=\\\"form-control form-control-sm mx-auto\\\"\\n            value.bind=\\\"product.comment\\\"\\n            change.trigger=\\\"updateProduct(product)\\\" />\\n        </td>\\n\\n        <td\\n          if.bind=\\\"options.showDisplayPrice\\\"\\n          class=\\\"text-end text-nowrap\\\"\\n          as-element=\\\"price\\\"\\n          prices.bind=\\\"product.selectedStock.prices\\\"\\n          display-price.bind=\\\"product.selectedStock.displayPrice\\\"></td>\\n        <td else class=\\\"text-end text-nowrap\\\" data-value.bind=\\\"product.finalPrice\\\">\\n          <span>${product.finalPrice | currencyFormat}</span>\\n        </td>\\n\\n        <td class=\\\"text-center text-nowrap\\\" data-value.bind=\\\"product.quantity\\\">\\n          <input\\n            type=\\\"number\\\"\\n            class=\\\"form-control form-control-sm mx-auto cart-product-amount\\\"\\n            min=\\\"1\\\"\\n            step=\\\"1\\\"\\n            value.bind=\\\"product.quantity\\\"\\n            input.trigger=\\\"updateProduct(product)\\\" />\\n        </td>\\n\\n        <td if.bind=\\\"options.showDisplayPrice\\\" class=\\\"text-end text-nowrap\\\">\\n          <span>${product.selectedStock.displayPrice * product.quantity | currencyFormat}</span>\\n        </td>\\n        <td else class=\\\"text-end text-nowrap\\\">\\n          <span>${product.finalPrice * product.quantity | currencyFormat}</span>\\n        </td>\\n\\n        <td class=\\\"clickable\\\">\\n          <button\\n            type=\\\"button\\\"\\n            class=\\\"btn btn-danger btn-sm text-nowrap float-end\\\"\\n            click.trigger=\\\"removeFromCart(product.cartProductId)\\\">\\n            ${'components.products.buttons.remove-from-cart' & t}\\n          </button>\\n        </td>\\n      </tr>\\n    </tbody>\\n  </table>\\n\\n  <gallery if.bind=\\\"appConfig.userSettings.imagesInProductPage\\\" products.bind=\\\"products\\\"></gallery>\\n</template>\\n\";","import { IRvsOrder } from \"domain/Sale/IRvsOrder\";\nimport { I18N } from \"aurelia-i18n\";\nimport { IProduct } from \"domain/Product/IProduct\";\nimport { SearchType } from \"utils/enums/SearchType\";\nimport { AppConfig } from \"app-config\";\nimport { Utils } from \"utils/helpers/utils\";\nimport { EventAggregator } from \"aurelia-event-aggregator\";\nimport { Router } from \"aurelia-router\";\nimport { LogManager, autoinject, observable, bindable } from \"aurelia-framework\";\nimport { TKEvent } from \"utils/enums/TKEvent\";\nimport { ICartProduct } from \"domain/Cart/ICartProduct\";\nimport $ from \"jquery\";\nimport { ReturnService } from \"services/sale/return-service\";\nimport { Modal } from \"bootstrap\";\n\nexport const log = LogManager.getLogger(\"app.components.nested-cart-product-list\");\n\n// Shown in template, order, invoice and return pages\n@autoinject\nexport class NestedCartProductListCustomElement {\n  @bindable @observable products: ICartProduct[];\n  @bindable rvsOrder: IRvsOrder | undefined;\n\n  @bindable options = {\n    showInvoiceId: false,\n    showWarehouse: false,\n    showTransport: false,\n    showAddToCart: true,\n    showAddToReturn: false,\n  };\n\n  constructor(\n    private returnService: ReturnService,\n    private appConfig: AppConfig,\n    private router: Router,\n    private eventAggregator: EventAggregator,\n    private i18n: I18N,\n  ) {\n    this.eventAggregator.subscribeOnce(TKEvent.warehousesLoaded, () => this.loadWarehouseNames());\n    this.eventAggregator.subscribeOnce(TKEvent.transportOptionsLoaded, () =>\n      this.loadTransportNames(),\n    );\n  }\n\n  // #region MAIN\n\n  productsChanged() {\n    this.processResult();\n    this.loadWarehouseNames();\n    this.loadTransportNames();\n  }\n\n  processResult() {\n    this.products.forEach(product => {\n      // Fill out the quantity in cart input\n      if (product.quantity === undefined) product.quantity = 1;\n\n      // Fill out the add-to-cart quantity input\n      if (product.toCartQuantity === undefined) product.toCartQuantity = \"1\";\n\n      // Fill out the return quantity input\n      if (product.returnQuantity === undefined) product.returnQuantity = \"1\";\n    });\n  }\n\n  loadWarehouseNames() {\n    this.products.forEach(product => {\n      if (product.externalWarehouseId) {\n        product.warehouseName = this.getExternalWarehouseName(product.externalWarehouseGroupId);\n        return;\n      }\n\n      product.warehouseName = this.getWarehouseName(product.warehouseId ?? 0);\n    });\n  }\n\n  loadTransportNames() {\n    if (!this.appConfig.transportOptions) return;\n\n    this.products.forEach(product => {\n      product.transportName = this.getTransportName(product.transportId ?? \"0\");\n    });\n  }\n\n  // #endregion\n\n  // #region ACTIONS\n\n  showGallery(product: ICartProduct) {\n    $(() => {\n      // If there are no images to display\n      if ($(`[data-gallery=\"${product.id}\"]`).children(\".carousel-inner\").children().length == 0)\n        return;\n\n      const dataGallerySelector = document.querySelectorAll(\n        `[data-gallery-wrapper=\"${product.id}\"]`,\n      );\n      Modal.getInstance([].slice.call(dataGallerySelector))?.show();\n    });\n  }\n\n  searchProduct(target: HTMLElement, product: IProduct) {\n    // Check if child element was clicked instead\n    if ($(target).prop(\"tagName\") != \"TD\" && $(target).prop(\"tagName\") != \"TR\") return;\n\n    this.router.navigateToRoute(\"searchResult\", {\n      query: Utils.encode(product.code),\n      page: 1,\n      type: SearchType.Precise,\n    });\n  }\n\n  searchInvoice(invoiceId: number) {\n    this.router.navigateToRoute(\"invoiceIndex\", {\n      page: 1,\n      query: invoiceId,\n    });\n  }\n\n  getUniqueProductId(product: ICartProduct) {\n    return `${product.code}-${product.cartProductId || product.quantity || 0}`;\n  }\n\n  returnProduct(product: ICartProduct) {\n    const returnButton = document.getElementById(\n      this.getUniqueProductId(product),\n    ) as HTMLButtonElement;\n    returnButton.disabled = true;\n\n    this.returnService\n      .returnProduct({\n        invoiceId: this.rvsOrder?.invoiceId ?? 0,\n        rvsOrderId: this.rvsOrder?.id ?? 0,\n        code: product.code,\n        amount: parseInt(product.returnQuantity ?? \"1\"),\n      })\n      .then(() => {\n        Utils.showSuccessToast(this.i18n.tr(\"components.products.messages.added-to-return\"));\n\n        this.eventAggregator.publish(TKEvent.cartProductsChanged);\n      })\n      .catch(() => {\n        Utils.showErrorToast(log, this.i18n.tr(\"components.products.errors.add-to-return\"));\n      })\n      .finally(() => {\n        returnButton.disabled = false;\n      });\n  }\n\n  // #endregion\n\n  // #region HELPERS\n\n  getWarehouseName(warehouseId: number): string {\n    if (this.appConfig.allowedWarehouses != undefined) {\n      for (const warehouse of this.appConfig.allowedWarehouses) {\n        if (warehouse.id == warehouseId) return warehouse.name;\n      }\n    }\n    return `ID: ${warehouseId}`;\n  }\n\n  getExternalWarehouseName(groupId: number | undefined): string {\n    if (!groupId) return this.i18n.tr(\"pages.cart.fields.external-warehouse\");\n\n    if (groupId === 2) return this.i18n.tr(\"components.products.headers.partner-warehouse\");\n\n    if (groupId === 1) return this.i18n.tr(\"components.products.headers.factory-warehouse\");\n\n    return this.i18n.tr(\"pages.cart.fields.external-warehouse\");\n  }\n  getTransportName(transportId: string | number): string {\n    // using `` to convert \"string | number\" to string\n    return this.appConfig.transportOptions.get(`${transportId}`) ?? `ID: ${transportId}`;\n  }\n\n  // #endregion\n}\n","module.exports = \"<template>\\n  <require from=\\\"utils/classes/value-converters\\\"></require>\\n  <require from=\\\"components/product/product-list/stock\\\"></require>\\n  <require from=\\\"components/product/product-list/price\\\"></require>\\n  <require from=\\\"components/product/product-list/add-to-cart\\\"></require>\\n  <require from=\\\"components/general/pager\\\"></require>\\n  <require from=\\\"!style-loader!css-loader!bootstrap-sortable/Contents/bootstrap-sortable.css\\\">\\n  </require>\\n\\n  <table class=\\\"table w-100\\\">\\n    <thead>\\n      <tr>\\n        <th if.bind=\\\"options.showInvoiceId\\\">${'pages.invoices.headers.number' & t}</th>\\n        <th>${'components.products.headers.code' & t}</th>\\n        <th>${'components.products.headers.name' & t}</th>\\n        <th class=\\\"text-end\\\">${'components.products.headers.price' & t}</th>\\n        <th class=\\\"text-end\\\">${'components.products.headers.amount' & t}</th>\\n        <th class=\\\"text-end\\\">${'components.products.headers.total' & t}</th>\\n        <th if.bind=\\\"options.showWarehouse\\\" class=\\\"text-center\\\">\\n          ${'components.products.headers.warehouse' & t}\\n        </th>\\n        <th if.bind=\\\"options.showTransport\\\" class=\\\"text-center\\\">\\n          ${'components.products.headers.transport' & t}\\n        </th>\\n        <th if.bind=\\\"options.showAddToCart\\\" class=\\\"text-center\\\">\\n          ${'components.products.headers.add-to-cart' & t}\\n        </th>\\n        <th if.bind=\\\"options.showAddToReturn\\\" class=\\\"text-end\\\">\\n          ${'components.products.headers.return' & t}\\n        </th>\\n      </tr>\\n    </thead>\\n\\n    <tbody>\\n      <tr\\n        repeat.for=\\\"product of products\\\"\\n        class=\\\"clickable hover\\\"\\n        click.delegate=\\\"searchProduct($event.target, product)\\\">\\n        <td\\n          if.bind=\\\"options.showInvoiceId\\\"\\n          class=\\\"text-center clickable\\\"\\n          click.delegate=\\\"searchInvoice(product.invoiceId)\\\">\\n          <span>${product.invoiceId}</span>\\n        </td>\\n\\n        <td class=\\\"text-nowrap\\\"><span>${product.code}</span></td>\\n\\n        <td><span>${product.name}</span></td>\\n\\n        <td class=\\\"text-end text-nowrap\\\">\\n          <span>${product.finalPrice | currencyFormat}</span>\\n        </td>\\n\\n        <td class=\\\"text-end text-nowrap\\\"><span>${product.quantity}</span></td>\\n\\n        <td class=\\\"text-end text-nowrap\\\">\\n          <span>${product.finalPrice * product.quantity | currencyFormat}</span>\\n        </td>\\n\\n        <td if.bind=\\\"options.showWarehouse\\\" class=\\\"text-center\\\">\\n          <span>\\n            ${product.warehouseName}\\n          </span>\\n        </td>\\n\\n        <td if.bind=\\\"options.showTransport\\\" class=\\\"text-center\\\">\\n          <span>${product.transportName}</span>\\n        </td>\\n\\n        <td if.bind=\\\"options.showAddToCart\\\" class=\\\"text-nowrap\\\">\\n          <add-to-cart product.bind=\\\"product\\\"></add-to-cart>\\n        </td>\\n\\n        <td if.bind=\\\"options.showAddToReturn\\\" class=\\\"text-nowrap\\\">\\n          <div if.bind=\\\"product.quantity > 0\\\" class=\\\"input-group ml-auto return-product-form\\\">\\n            <input\\n              type=\\\"number\\\"\\n              class=\\\"form-control form-control-sm\\\"\\n              min=\\\"1\\\"\\n              step=\\\"1\\\"\\n              max.bind=\\\"product.quantity\\\"\\n              value.bind=\\\"product.returnQuantity\\\" />\\n            <div class=\\\"input-group-append\\\">\\n              <button\\n                type=\\\"button\\\"\\n                id=\\\"${getUniqueProductId(product)}\\\"\\n                class=\\\"btn btn-warning btn-sm clickable-important\\\"\\n                click.trigger=\\\"returnProduct(product)\\\">\\n                ${'components.products.buttons.return' & t}\\n              </button>\\n            </div>\\n          </div>\\n        </td>\\n      </tr>\\n    </tbody>\\n  </table>\\n</template>\\n\";","import { I18N } from \"aurelia-i18n\";\nimport { IWarehouse } from \"domain/Client/IWarehouse\";\nimport { AppConfig } from \"app-config\";\nimport { Utils } from \"utils/helpers/utils\";\nimport { TKEvent } from \"utils/enums/TKEvent\";\nimport { EventAggregator } from \"aurelia-event-aggregator\";\nimport { LogManager, autoinject, bindable } from \"aurelia-framework\";\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 TransportListCustomElement {\n  @bindable allowedTransportOptions: Map<string, string>;\n  @bindable warehouses: IWarehouse[];\n  userSpecifiedAddresses: string[];\n  combinedWarehouses = [1, 3];\n\n  @bindable products: ICartProduct[];\n  error: string;\n\n  // map contents: (warehouseId; transportId)\n  selectedTransportsForWarehouses = new Map<number, 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 eventAggregator: EventAggregator,\n    private appConfig: AppConfig,\n    private i18n: I18N,\n  ) {\n    this.eventAggregator.subscribe(TKEvent.cartProductsChanged, () => {\n      this.updateSelectedTransports();\n    });\n    this.eventAggregator.subscribe(TKEvent.cartProductsWarehouseChanged, (product: IProduct) => {\n      this.updateCartProductWarehouseId(product);\n      this.updateSelectedTransports();\n    });\n\n    this.userSpecifiedAddresses = this.appConfig.contractSettings.otherTransportAddresses;\n  }\n\n  attached() {\n    this.updateSelectedTransports();\n  }\n\n  // #region OBSERVABLES, LISTENERS\n\n  changeTransportForWarehouse(warehouseId: number, newTransportId: string) {\n    this.selectedTransportsForWarehouses.set(warehouseId, newTransportId);\n\n    if (this.isWarehouseCombinationPresent() && this.isCombinedWarehouse(warehouseId)) {\n      this.selectedTransportsForWarehouses.set(\n        this.getOtherCombinedWarehouse(warehouseId),\n        newTransportId,\n      );\n    }\n\n    const productsToUpdate = this.products.filter(\n      product =>\n        (this.isExternalWarehouse(warehouseId) && product.externalWarehouseId) ||\n        product.warehouseId == warehouseId ||\n        product.warehouseId == this.getOtherCombinedWarehouse(warehouseId),\n    );\n    productsToUpdate.forEach(product => {\n      if (product.transportId == newTransportId) return;\n\n      product.transportId = newTransportId;\n      this.updateSelectedTransports();\n\n      // Send changed product to BE\n      const cartProduct = {\n        cartProductId: product.cartProductId ?? 0,\n        foundBy: product.foundBy,\n        code: product.code,\n        quantity: parseInt(product.quantity.toString()),\n        comment: product.comment,\n        warehouseId: product.selectedStock?.warehouse?.id ?? product.warehouseId ?? 0,\n        transportId: parseInt(product.transportId ?? \"0\"),\n      } as any;\n\n      if (product.selectedStock?.warehouse?.isExternal) {\n        cartProduct.warehouseId = 0;\n        cartProduct.externalWarehouseId = product.selectedStock?.warehouse?.id;\n      }\n\n      this.cartProductService\n        .putExistingProduct(cartProduct)\n        .catch(() => Utils.showErrorToast(log, this.i18n.tr(\"pages.cart.errors.update\")));\n    });\n  }\n\n  updateSelectedTransports() {\n    if (!this.products) return;\n\n    this.selectedTransportsForWarehouses = new Map<number, string>();\n\n    for (const p of this.products) {\n      if (p.externalWarehouseId) {\n        this.selectedTransportsForWarehouses.set(-1, p.transportId ?? \"0\");\n        continue;\n      }\n\n      this.selectedTransportsForWarehouses.set(p.warehouseId ?? 0, p.transportId ?? \"0\");\n    }\n  }\n\n  updateCartProductWarehouseId(product: IProduct) {\n    const cartProduct = this.products.find(p => p.id == product.id);\n    if (!cartProduct) return;\n\n    if (!product.selectedStock?.warehouse?.isExternal) {\n      cartProduct.externalWarehouseId = undefined;\n      cartProduct.warehouseId = product.selectedStock?.warehouse?.id;\n    } else {\n      cartProduct.externalWarehouseId = product.selectedStock?.warehouse?.id;\n      cartProduct.warehouseId = 0;\n    }\n\n    this.preselectOnlyTransportOption();\n  }\n\n  // #endregion\n\n  // #region HELPERS\n\n  getWarehouseName(warehouseId: number): string {\n    if (warehouseId == -1) return this.i18n.tr(\"pages.cart.fields.external-warehouse\");\n    if (this.isWarehouseCombinationPresent() && this.isCombinedWarehouse(warehouseId))\n      return this.i18n.tr(\"pages.cart.fields.combined-warehouse\");\n\n    if (this.warehouses != undefined)\n      for (const warehouse of this.warehouses)\n        if (warehouse.id == warehouseId) return warehouse.name;\n\n    return `ID: ${warehouseId}`;\n  }\n\n  getTransportName(transportId: string): string {\n    return this.allowedTransportOptions.get(transportId) ?? \"?\";\n  }\n\n  anyExternalWarehouseProducts() {\n    return this.products.some(x => !!x.externalWarehouseId);\n  }\n\n  preselectOnlyTransportOption() {\n    if (this.allowedTransportOptions.size != 1) return;\n\n    const transportId = this.allowedTransportOptions.keys().next().value;\n\n    this.products.forEach(product => {\n      if (product.transportId == transportId) return;\n\n      product.transportId = transportId;\n\n      if (!product.externalWarehouseId) {\n        this.selectedTransportsForWarehouses.set(\n          product.warehouseId ?? 0,\n          product.transportId ?? \"0\",\n        );\n      }\n    });\n  }\n\n  canChangeTransport(warehouseId: number): boolean {\n    return true; // TEMP: always allow until better solution is found\n    /* return (\n      this.isExternalWarehouse(warehouseId) ||\n      warehouseId == this.appConfig.userSettings.warehouseId ||\n      this.isCombinedWarehouse(warehouseId)\n    ); */\n  }\n\n  isWarehouseCombinationPresent() {\n    const hasFirstWarehouse = this.products.some(p => p.warehouseId === this.combinedWarehouses[0]);\n    const hasSecondWarehouse = this.products.some(\n      p => p.warehouseId === this.combinedWarehouses[1],\n    );\n\n    return hasFirstWarehouse && hasSecondWarehouse;\n  }\n\n  isCombinedWarehouse(warehouseId: number): boolean {\n    return this.combinedWarehouses.includes(warehouseId);\n  }\n\n  getMainCombinedWarehouse(): number {\n    return this.combinedWarehouses[0];\n  }\n\n  getOtherCombinedWarehouse(warehouseId: number): number {\n    if (!this.combinedWarehouses.includes(warehouseId)) return 0;\n    return this.combinedWarehouses.find(id => id !== warehouseId) ?? 0;\n  }\n\n  shouldDisplayInList(warehouseId: number): boolean {\n    return !(this.isWarehouseCombinationPresent() && warehouseId == this.combinedWarehouses[1]);\n  }\n\n  isExternalWarehouse(warehouseId: number): boolean {\n    return warehouseId === -1;\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\\n  <div class=\\\"row mt-3\\\" id=\\\"transport-list\\\">\\n    <div class=\\\"col border-right\\\">\\n      <h6>${'pages.cart.fields.transport-options' & t}</h6>\\n      <div\\n        repeat.for=\\\"[warehouseId, transportId] of selectedTransportsForWarehouses\\\"\\n        class=\\\"form-group row mt-1 align-items-center\\\">\\n        <template if.bind=\\\"shouldDisplayInList(warehouseId)\\\">\\n          <label for=\\\"${warehouseId}\\\" class=\\\"col-sm-6 col-form-label text-end\\\">\\n            ${getWarehouseName(warehouseId)}:\\n          </label>\\n          <div class=\\\"col-sm-6 ps-0\\\">\\n            <select\\n              if.bind=\\\"canChangeTransport(warehouseId)\\\"\\n              class=\\\"form-select form-select-sm\\\"\\n              value.bind=\\\"transportId\\\"\\n              change.delegate=\\\"changeTransportForWarehouse(warehouseId, transportId)\\\">\\n              <option value.bind=\\\"0\\\">${'pages.cart.fields.choose-transport' & t}</option>\\n              <option repeat.for=\\\"[key, value] of allowedTransportOptions\\\" value.bind=\\\"key\\\">\\n                ${value}\\n              </option>\\n            </select>\\n            <p class=\\\"mb-0\\\" else>${getTransportName(transportId)}</p>\\n          </div>\\n        </template>\\n      </div>\\n    </div>\\n\\n    <div class=\\\"col\\\">\\n      <h6>${'pages.cart.fields.transport-address' & t}</h6>\\n      <div class=\\\"form-group row mt-1\\\">\\n        <div class=\\\"col-auto\\\">\\n          <select class=\\\"form-select form-select-sm\\\" value.bind=\\\"selectedTransportAddress\\\">\\n            <option value=\\\"\\\">${'pages.cart.fields.choose-address' & t}</option>\\n            <option repeat.for=\\\"address of userSpecifiedAddresses\\\" value.bind=\\\"address\\\">\\n              ${address}\\n            </option>\\n          </select>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n</template>\\n\";","import { IParentItem } from 'domain/Base/IParentItem';\nimport { bindable } from 'aurelia-framework';\n\nexport class AccordionCustomElement {\n  @bindable list: IParentItem[];\n  @bindable parentId: number;\n  @bindable clickFunction: any;\n  @bindable filter: string | undefined;\n\n  click(item: IParentItem) {\n    this.clickFunction({ item: item });\n  }\n\n  getClass(item: IParentItem): string {\n    let classes = \"\";\n\n    if (!item.children || !item.children.length) {\n      classes += \"accordion-child\";\n\n      if (this.filter)\n        classes += \" matching-item\";\n    }\n\n    return classes;\n  }\n}\n","module.exports = \"<template>\\n\\n  <div class=\\\"accordion\\\" data-parent-id.bind=\\\"parentId\\\">\\n    <div class=\\\"accordion-item\\\" repeat.for=\\\"item of list\\\">\\n      <h2 class=\\\"accordion-header\\\">\\n        <button class=\\\"accordion-button collapsed ${getClass(item)}\\\" type=\\\"button\\\"\\n                data-bs-toggle=\\\"collapse\\\" data-item-id.bind=\\\"item.id\\\"\\n                data-bs-target=\\\"[data-child-id='${parentId + '_' + item.id}']\\\"\\n                click.delegate=\\\"!item.children.length && clickFunction({item: item})\\\">\\n          ${item.name}\\n        </button>\\n      </h2>\\n      <div if.bind=\\\"item.children.length\\\" class=\\\"accordion-collapse collapse\\\"\\n           data-bs-parent=\\\"[data-parent-id='${parentId}']\\\"\\n           data-child-id.bind=\\\"parentId + '_' + item.id\\\">\\n        <div class=\\\"accordion-body\\\">\\n          <accordion list.bind=\\\"item.children\\\" parent-id.bind=\\\"parentId + '_' + item.id\\\"\\n                     filter.bind=\\\"filter\\\" click-function.call=\\\"click(item)\\\"></accordion>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n\\n</template>\\n\";","import { bindable } from 'aurelia-framework';\n\nexport class LoadingCustomElement {\n  @bindable error: boolean;\n  @bindable errorTitle: string;\n  @bindable errorDetails: string;\n  @bindable errorDetailsClass: string;\n\n  @bindable notFound: boolean;\n  @bindable notFoundTitle: string;\n  @bindable notFoundDetails: string;\n  @bindable notFoundDetailsClass: string;\n}\n","module.exports = \"<template>\\n\\n  <div class=\\\"card border-danger w-100\\\" if.bind=\\\"error\\\">\\n    <div class=\\\"card-body text-danger\\\">\\n      <h5 class=\\\"card-title\\\">${errorTitle}</h5>\\n      <p class=\\\"card-text ${errorDetailsClass}\\\">${errorDetails}</p>\\n    </div>\\n  </div>\\n\\n  <template else>\\n    <div class=\\\"card border-primary\\\" if.bind=\\\"notFound\\\">\\n      <div class=\\\"card-body text-primary\\\">\\n        <h5 class=\\\"card-title\\\">${notFoundTitle}</h5>\\n        <p class=\\\"card-text ${notFoundDetailsClass}\\\">${notFoundDetails}</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  </template>\\n\\n</template>\\n\";","import { LogManager } from 'aurelia-framework';\nimport { bindable } from 'aurelia-framework';\n\nexport var log = LogManager.getLogger('app.components.pager');\n\nexport class PagerCustomElement {\n  @bindable currentPage: number = 1;\n  @bindable lastPage: number = 1;\n\n  // the number of first and last pages to be displayed\n  @bindable extremePagesLimit: number = 2;\n  // the number of pages that are displayed around the active page\n  @bindable nearbyPagesLimit: number = 2;\n}\n","module.exports = \"<template>\\n\\n  <nav if.bind=\\\"lastPage > 1\\\">\\n    <ul class=\\\"pagination justify-content-center\\\">\\n      <template if.bind=\\\"currentPage > 1\\\">\\n        <li class=\\\"page-item\\\">\\n          <a class=\\\"page-link\\\" href=\\\"\\\" click.delegate=\\\"currentPage = currentPage - 1\\\">&laquo;</a>\\n        </li>\\n\\n        <template repeat.for=\\\"i of (extremePagesLimit + 1)\\\">\\n          <li if.bind=\\\"i > 0 && i < currentPage - nearbyPagesLimit\\\" class=\\\"page-item\\\">\\n            <a class=\\\"page-link\\\" href=\\\"\\\" click.delegate=\\\"currentPage = i\\\">${i}</a>\\n          </li>\\n        </template>\\n\\n        <li if.bind=\\\"(extremePagesLimit + 1) < (currentPage - nearbyPagesLimit)\\\"\\n            class=\\\"page-item disabled\\\">\\n          <span class=\\\"page-link\\\">...</span>\\n        </li>\\n\\n        <template repeat.for=\\\"i of currentPage\\\">\\n          <li if.bind=\\\"i > 0 && i >= currentPage - nearbyPagesLimit\\\" class=\\\"page-item\\\">\\n            <a class=\\\"page-link\\\" href=\\\"\\\" click.delegate=\\\"currentPage = i\\\">${i}</a>\\n          </li>\\n        </template>\\n      </template>\\n      <li class=\\\"page-item disabled\\\" else><span class=\\\"page-link\\\">&laquo;</span></li>\\n\\n      <li class=\\\"page-item active\\\" aria-current=\\\"page\\\">\\n        <span class=\\\"page-link\\\">${currentPage}</span>\\n      </li>\\n\\n      <template if.bind=\\\"currentPage < lastPage\\\">\\n        <template repeat.for=\\\"i of (currentPage + nearbyPagesLimit + 1)\\\">\\n          <li if.bind=\\\"i > currentPage && i <= lastPage\\\" class=\\\"page-item\\\">\\n            <a class=\\\"page-link\\\" href=\\\"\\\" click.delegate=\\\"currentPage = i\\\">${i}</a>\\n          </li>\\n        </template>\\n\\n        <li if.bind=\\\"(lastPage - extremePagesLimit) > (currentPage + nearbyPagesLimit)\\\"\\n            class=\\\"page-item disabled\\\">\\n          <span class=\\\"page-link\\\"><span aria-hidden=\\\"true\\\">...</span></span>\\n        </li>\\n\\n        <template repeat.for=\\\"i of (lastPage + 1)\\\">\\n          <li class=\\\"page-item\\\"\\n              if.bind=\\\"i > (lastPage - extremePagesLimit) && i > (currentPage + nearbyPagesLimit)\\\">\\n            <a class=\\\"page-link\\\" href=\\\"\\\" click.delegate=\\\"currentPage = i\\\">${i}</a>\\n          </li>\\n        </template>\\n\\n        <li class=\\\"page-item\\\">\\n          <a class=\\\"page-link\\\" href=\\\"\\\" click.delegate=\\\"currentPage = currentPage + 1\\\">&raquo;</a>\\n        </li>\\n      </template>\\n      <template else>\\n        <li class=\\\"page-item disabled\\\"><span class=\\\"page-link\\\">&raquo;</span></li>\\n      </template>\\n    </ul>\\n  </nav>\\n\\n</template>\\n\";","import { IParentItem } from \"domain/Base/IParentItem\";\nimport { bindable } from \"aurelia-framework\";\n\nexport class SimpleTreeCustomElement {\n  @bindable list: IParentItem[];\n  @bindable depth: number = 0;\n  @bindable clickFunction: any;\n\n  handleToggleClick(event: Event, item: IParentItem) {\n    event.preventDefault();\n    event.stopPropagation();\n    this.toggle(item);\n  }\n\n  handleItemClick(event: Event, item: IParentItem) {\n    event.preventDefault();\n    event.stopPropagation();\n    this.click(item);\n  }\n\n  toggle(item: any) {\n    item._expanded = !item._expanded;\n  }\n\n  click(item: IParentItem) {\n    if (this.clickFunction) {\n      this.clickFunction({ item: item });\n    }\n  }\n}\n","module.exports = \"<template>\\n  <ul class=\\\"simple-tree list-unstyled mb-0\\\" css=\\\"padding-left: ${depth > 0 ? '1rem' : '0'}\\\">\\n    <li repeat.for=\\\"item of list\\\" class=\\\"text-muted\\\">\\n      <template if.bind=\\\"item.children && item.children.length\\\">\\n        <a\\n          href=\\\"\\\"\\n          click.delegate=\\\"handleToggleClick($event, item)\\\"\\n          class=\\\"text-decoration-none\\\">\\n          <i class=\\\"bi ${item._expanded ? 'bi-chevron-down' : 'bi-chevron-right'} me-1\\\"></i>\\n          <span>${item.name}</span>\\n        </a>\\n        <simple-tree\\n          if.bind=\\\"item._expanded\\\"\\n          list.bind=\\\"item.children\\\"\\n          depth.bind=\\\"depth + 1\\\"\\n          click-function.call=\\\"click(item)\\\">\\n        </simple-tree>\\n      </template>\\n      <template else>\\n        <a\\n          href=\\\"\\\"\\n          click.delegate=\\\"handleItemClick($event, item)\\\"\\n          class=\\\"ms-3\\\">\\n          ${item.name}\\n        </a>\\n      </template>\\n    </li>\\n  </ul>\\n</template>\\n\";","import { bindable } from 'aurelia-framework';\n\nexport class ToastCustomElement {\n  @bindable toastClass: string;\n  @bindable position: string;\n  @bindable messageClass: string;\n  @bindable message: string;\n}\n","module.exports = \"<template>\\n  <div\\n    class=\\\"toast ${toastClass} hide position-fixed ${position} m-5\\\"\\n    role=\\\"alert\\\"\\n    data-bs-delay=\\\"5000\\\">\\n    <div class=\\\"toast-header\\\">\\n      <strong class=\\\"me-auto ${messageClass}\\\">${message}</strong>\\n      <button type=\\\"button\\\" class=\\\"btn-close\\\" data-bs-dismiss=\\\"toast\\\"></button>\\n    </div>\\n    <div class=\\\"toast-body\\\"></div>\\n  </div>\\n</template>\\n\";","import { I18N } from 'aurelia-i18n';\nimport { observable } from 'aurelia-framework';\nimport { TKEvent } from 'utils/enums/TKEvent';\nimport { EventAggregator } from 'aurelia-event-aggregator';\nimport { autoinject, bindable } from 'aurelia-framework';\nimport noUiSlider, { PipsMode } from \"nouislider\";\nimport wNumb from 'wnumb';\nimport { Utils } from 'utils/helpers/utils';\n\n@autoinject\nexport class ProductFilterCustomElement {\n  @bindable @observable categoryId: number;\n  @bindable possibleFilters: any;\n  @bindable chosenFilters: any;\n\n  isChosenFiltersEmpty: boolean = true;\n\n  constructor(\n    private eventAggregator: EventAggregator,\n    private i18n: I18N\n  ) { }\n\n  attached() {\n    this.updateIsChosenFiltersEmpty();\n    this.sortPossibleFilters();\n    this.createSliders();\n    this.prefillFilters();\n  }\n\n  categoryIdChanged(newValue: number, oldValue: number) {\n    if (oldValue === undefined)\n      return;\n\n    this.resetChosenFilters();\n  }\n\n\n  sortPossibleFilters() {\n    let sortedPossibleFilters: any = {};\n\n    for (let key in this.possibleFilters) {\n      const filtersAreNumbers = this.areAllNumbers(this.possibleFilters[key]);\n\n      sortedPossibleFilters[key] = filtersAreNumbers\n        ? this.possibleFilters[key].sort((a: number, b: number) => a - b)\n        : this.possibleFilters[key].sort();\n    }\n\n    this.possibleFilters = sortedPossibleFilters;\n  }\n\n  areAllNumbers(array: []) {\n    return array.every((value: any) => !isNaN(value));\n  }\n\n  createSliders() {\n    const containers = document.querySelectorAll('.slider');\n    containers.forEach(container => {\n      const key = container.getAttribute('data-key')!;\n      const filterValues = this.possibleFilters[key];\n\n      const min = Math.min(...filterValues);\n      const max = Math.max(...filterValues);\n\n      this.createSlider(container, min, max);\n    });\n  }\n\n  createSlider(slider: any, min: number, max: number) {\n    noUiSlider.create(slider, {\n      start: [min, max],\n      range: { min, max },\n      connect: true,\n      tooltips: true,\n      direction: 'rtl',\n      orientation: 'vertical',\n      format: wNumb({ decimals: 0 }),\n      step: 1,\n      pips: {\n        mode: PipsMode.Positions as any,\n        values: [0, 25, 50, 75, 100],\n        stepped: true,\n        density: 5\n      }\n    }).on('change', () => {\n      this.chooseFilter(slider);\n    });\n  }\n\n  prefillFilters() {\n    if (this.possibleFilters === undefined || this.chosenFilters === undefined)\n      return;\n\n    this.clearFilterBadges();\n\n    Object.entries(this.chosenFilters).forEach(([key, values]: [string, string[]]) => this.prefillFilter(key, values));\n  }\n\n  prefillFilter(key: string, values: string[]) {\n    let temporaryPossibleFilters = this.possibleFilters;\n    this.possibleFilters = {}; // Clear previous filters\n    this.possibleFilters = temporaryPossibleFilters;\n\n    const sliders = document.querySelectorAll(`.slider[data-key=\"${key}\"]`);\n\n    if (sliders.length > 0)\n      this.prefillSliders(sliders.item(0), key, values);\n    else\n      this.addFilterBadge(key, (values as []).join(\", \"));\n  }\n\n  prefillSliders(target: Element, key: string, values: string[]) {\n    const slider = (target as any).noUiSlider;\n\n    const chosenMin = Math.min(...values as []);\n    const chosenMax = Math.max(...values as []);\n\n    const range = slider.options.range;\n    if (chosenMin != range.min || chosenMax != range.max)\n      this.addFilterBadge(key, `${chosenMin}...${chosenMax}`);\n\n    slider.set([chosenMin, chosenMax]);\n  }\n\n  isFilterValueChosen(key: string, value: any) {\n    if (!this.chosenFilters || !this.chosenFilters[key])\n      return false;\n\n    return (this.chosenFilters[key] as []).some((chosenValue) => this.areFilterValuesEqual(chosenValue, value));\n  }\n\n  areFilterValuesEqual(firstValue: any, secondValue: any) {\n    return `${firstValue}` === `${secondValue}`;\n  }\n\n  addFilterBadge(key: string, text: string) {\n    const filterBadge = this.getElementByKey(key);\n    const keyName = this.i18n.tr('pages.category.filters.' + this.categoryId + '.' + key);\n\n    filterBadge.innerText = `${keyName}: ${text}`;\n    filterBadge.style.display = \"block\";\n  }\n\n  clearFilterBadges() {\n    const element = document.getElementById(\"chosen-filters\");\n    if (!element) return;\n\n    for (let i = 0; i < element.children.length; i++) {\n      let child = element.children[i];\n      if (child.nodeName == \"SPAN\")\n        this.clearElement(child as HTMLSpanElement);\n    }\n  }\n\n  clearFilterBadge(key: string) {\n    const element = this.getElementByKey(key);\n    this.clearElement(element);\n  }\n\n  clearElement(element: HTMLElement) {\n    if (!element) return;\n    element.style.display = \"none\";\n    element.innerHTML = \"\";\n  }\n\n  chooseFilter(target: HTMLElement) {\n    let values: string[] = [];\n    let key = target.getAttribute('data-key')!;\n\n    this.clearFilterBadge(key);\n\n    if (target.classList.contains(\"slider\")) {\n      values = this.getSliderFilterValues(target, key);\n    } else {\n      values = this.getCheckboxFilterValues(key);\n    }\n\n    this.updateChosenFilters(values, key);\n  }\n\n  getSliderFilterValues(target: HTMLElement, key: string): string[] {\n    const values: string[] = [];\n\n    const chosenValues = (target as any).noUiSlider.get(true);\n    const chosenMin = parseInt(chosenValues[0]);\n    const chosenMax = parseInt(chosenValues[1]);\n\n    const range = (target as any).noUiSlider.options.range;\n    if (chosenMin == range.min && chosenMax == range.max)\n      return values;\n\n    this.addFilterBadge(key, `${chosenMin}...${chosenMax}`);\n\n    for (let value of this.possibleFilters[key]) {\n      value = Number(value);\n\n      if (value >= chosenMin && value <= chosenMax)\n        values.push(value);\n    }\n\n    return values;\n  }\n\n  getCheckboxFilterValues(key: string): string[] {\n    let values: string[] = [];\n    let checkedBoxes: NodeListOf<Element> = document.querySelectorAll(`input[data-key=\"${key}\"]:checked`);\n\n    if (checkedBoxes.length == 0)\n      return [];\n\n    checkedBoxes.forEach((elements: HTMLInputElement) => values.push(elements.value));\n    this.addFilterBadge(key, (values as []).join(\", \"));\n\n    return values;\n  }\n\n  updateChosenFilters(values: string[], key: string) {\n    if (this.chosenFilters == undefined)\n      this.chosenFilters = {};\n\n    if (values.length == 0)\n      delete this.chosenFilters[key];\n    else\n      this.chosenFilters[key] = values;\n\n    this.updateIsChosenFiltersEmpty();\n    this.publishChosenFiltersChanged();\n  }\n\n  getElementByKey(key: string) {\n    return document.querySelectorAll(`#chosen-filters span[data-key=\"${key}\"]`)[0] as HTMLSpanElement;\n  }\n\n  resetChosenFilters() {\n    this.chosenFilters = {};\n    this.clearFilterBadges();\n    this.removeSliders();\n    this.publishChosenFiltersChanged();\n    this.attached();\n  }\n\n  removeSliders() {\n    const sliders = document.getElementsByClassName(\"slider\");\n    for (var i = 0; i < sliders.length; i++)\n      (sliders.item(i) as any).noUiSlider.destroy();\n  }\n\n  publishChosenFiltersChanged() {\n    this.eventAggregator.publish(TKEvent.chosenFiltersChanged, {\n      categoryId: this.categoryId,\n      chosenFilters: this.chosenFilters\n    });\n  }\n\n  updateIsChosenFiltersEmpty() {\n    this.isChosenFiltersEmpty = Utils.isObjectEmpty(this.chosenFilters);\n  }\n}\n","module.exports = \"<template>\\n  <require from=\\\"utils/classes/value-converters\\\"></require>\\n  <require from=\\\"nouislider/dist/nouislider.css\\\"></require>\\n  <require from=\\\"/node_modules/bootstrap-icons/font/bootstrap-icons.css\\\"></require>\\n\\n  <div class=\\\"pt-1 pb-3 w-100\\\">\\n    <div class=\\\"input-group mx-auto\\\" id=\\\"product-filter\\\">\\n      <span class=\\\"input-group-text\\\">${'pages.category.filters.header' & t}</span>\\n\\n      <span class=\\\"input-group-text form-control\\\"></span>\\n\\n      <div repeat.for=\\\"key of possibleFilters | objectKeys\\\" class=\\\"dropdown\\\">\\n        <button class=\\\"btn btn-outline-primary dropdown-toggle\\\" type=\\\"button\\\" data-bs-toggle=\\\"dropdown\\\">\\n          ${('pages.category.filters.' + categoryId + '.' + key) & t}\\n        </button>\\n\\n        <ul class=\\\"dropdown-menu\\\">\\n          <let outer-index=\\\"${$index}\\\"></let>\\n          <li if.bind=\\\"possibleFilters[key].length > 25 && areAllNumbers(possibleFilters[key])\\\">\\n            <div type=\\\"input\\\" class=\\\"slider mx-auto mx-1 my-4\\\" change.delegate=\\\"chooseFilter($event.target)\\\"\\n              data-key=\\\"${key}\\\"></div>\\n          </li>\\n          <li else repeat.for=\\\"value of possibleFilters[key]\\\" class=\\\"dropdown-item\\\">\\n            <input class=\\\"form-check-input\\\" change.delegate=\\\"chooseFilter($event.target)\\\" type=\\\"checkbox\\\"\\n              id=\\\"value-${outerIndex}-${$index}\\\" data-key=\\\"${key}\\\" value=\\\"${value}\\\"\\n              checked.bind=\\\"isFilterValueChosen(key, value)\\\">${value}\\n          </li>\\n        </ul>\\n      </div>\\n    </div>\\n\\n    <div class=\\\"input-group pt-2\\\" id=\\\"chosen-filters\\\">\\n      <a if.bind=\\\"!isChosenFiltersEmpty\\\" href=\\\"#\\\" class=\\\"link-danger\\\" click.delegate=\\\"resetChosenFilters()\\\">\\n        <i class=\\\"bi bi-x-lg\\\"></i>\\n      </a>\\n      <span repeat.for=\\\"key of possibleFilters | objectKeys\\\" class=\\\"badge rounded-pill bg-primary ms-1\\\"\\n        style=\\\"display: none\\\" data-key.bind=\\\"key\\\"></span>\\n    </div>\\n  </div>\\n\\n</template>\";","import { autoinject, LogManager, bindable } from \"aurelia-framework\";\nimport { EventAggregator } from \"aurelia-event-aggregator\";\nimport { Router } from \"aurelia-router\";\nimport { I18N } from \"aurelia-i18n\";\nimport { Utils } from \"utils/helpers/utils\";\nimport { IProduct } from \"domain/Product/IProduct\";\nimport { CartProductService } from \"services/cart/cart-product-service\";\nimport { TKEvent } from \"utils/enums/TKEvent\";\nimport { AppConfig } from \"app-config\";\nimport { ICartProduct } from \"domain/Cart/ICartProduct\";\nimport { IStockItem } from \"domain/Product/IStockItem\";\n\nexport const log = LogManager.getLogger(\"app.components.add-to-cart\");\n\n@autoinject\nexport class AddToCartCustomElement {\n  @bindable product: IProduct;\n  productCode: string;\n\n  constructor(\n    private cartProductService: CartProductService,\n    private eventAggregator: EventAggregator,\n    private router: Router,\n    private appConfig: AppConfig,\n    private i18n: I18N,\n  ) {}\n\n  getUniqueProductId(product: ICartProduct) {\n    return `${product.code}-${product.cartProductId || product.quantity || 0}`;\n  }\n\n  addToCart(product: ICartProduct) {\n    const addToCartButton = document.getElementById(\n      \"addToCart-\" + this.getUniqueProductId(product),\n    ) as HTMLButtonElement;\n    addToCartButton.disabled = true;\n\n    this.cartProductService\n      .post(this.getRequestData(product))\n      .then(() => {\n        Utils.showSuccessToast(this.i18n.tr(\"components.products.messages.added-to-cart\"));\n\n        this.eventAggregator.publish(TKEvent.cartProductsChanged);\n      })\n      .catch(() => {\n        Utils.showErrorToast(log, this.i18n.tr(\"components.products.errors.add-to-cart\"));\n      })\n      .finally(() => {\n        addToCartButton.disabled = false;\n      });\n  }\n\n  getRequestData(product: ICartProduct): any {\n    const data = {\n      id: product.id,\n      foundBy: product.foundBy,\n      code: product.code,\n      quantity: parseInt(product.toCartQuantity ?? \"1\"),\n      warehouseId: product.selectedStock?.warehouse?.id ?? product.warehouseId ?? 0,\n    } as any;\n\n    if (product.selectedStock?.warehouse?.isExternal || product.externalWarehouseId) {\n      data.warehouseId = 0;\n      data.externalWarehouseId = product.selectedStock?.warehouse?.id ?? product.externalWarehouseId;\n    }\n\n    return data;\n  }\n\n  otherStockWarningNeeded(stockItem: IStockItem, warehouseId: number) {\n    if (!warehouseId) return false;\n    if (stockItem && stockItem.warehouse.isExternal) return true;\n\n    const userWarehouseId = this.appConfig.userSettings.warehouseId;\n    const isCentralWarehouse = warehouseId === 1;\n    const isMustamaeWarehouse = warehouseId === 3;\n\n    return warehouseId !== userWarehouseId && !isCentralWarehouse && !isMustamaeWarehouse;\n  }\n}\n","module.exports = \"<template>\\n  <div class=\\\"input-group mx-auto add-to-cart-form\\\">\\n    <input\\n      type=\\\"number\\\"\\n      class=\\\"form-control form-control-sm\\\"\\n      min=\\\"1\\\"\\n      step=\\\"1\\\"\\n      value.bind=\\\"product.toCartQuantity\\\" />\\n    <div class=\\\"input-group-append\\\">\\n      <button\\n        id=\\\"addToCart-${getUniqueProductId(product)}-warn\\\"\\n        type=\\\"button\\\"\\n        class=\\\"btn btn-success btn-sm clickable-important\\\"\\n        if.bind=\\\"otherStockWarningNeeded(product.selectedStock, product.selectedStock.warehouse.id || product.warehouseId)\\\"\\n        data-bs-toggle=\\\"modal\\\"\\n        data-bs-target=\\\"#confirmModal-${product.id}\\\">\\n        ${'components.products.buttons.add-to-cart' & t}\\n      </button>\\n      <button\\n        id=\\\"addToCart-${getUniqueProductId(product)}\\\"\\n        type=\\\"button\\\"\\n        class=\\\"btn btn-success btn-sm clickable-important\\\"\\n        click.trigger=\\\"addToCart(product)\\\"\\n        else>\\n        ${'components.products.buttons.add-to-cart' & t}\\n      </button>\\n    </div>\\n  </div>\\n\\n  <div\\n    class=\\\"modal fade text-wrap\\\"\\n    id=\\\"confirmModal-${product.id}\\\"\\n    tabindex=\\\"-1\\\"\\n    aria-hidden=\\\"true\\\">\\n    <div class=\\\"modal-dialog modal-dialog-centered\\\">\\n      <div class=\\\"modal-content\\\">\\n        <div class=\\\"modal-header d-flex text-center\\\">\\n          <h5\\n            class=\\\"modal-title inline\\\"\\n            innerhtml.bind=\\\"i18n.tr('components.products.tooltips.other-stock-warning.general')\\\"></h5>\\n          <button\\n            type=\\\"button\\\"\\n            class=\\\"btn-close clickable-important mt-0 mb-auto\\\"\\n            data-bs-dismiss=\\\"modal\\\"\\n            aria-label=\\\"Close\\\"></button>\\n        </div>\\n        <div class=\\\"modal-body text-center\\\">\\n          <p\\n            if.bind=\\\"product.selectedStock.warehouse.isExternal\\\"\\n            innerhtml.bind=\\\"i18n.tr('components.products.tooltips.other-stock-warning.external.' + (product.selectedStock.warehouse.groupId || 'default'))\\\"></p>\\n          <p\\n            else\\n            innerhtml.bind=\\\"i18n.tr('components.products.tooltips.other-stock-warning.warehouses.' + (product.selectedStock.warehouse.id || product.warehouseId))\\\"></p>\\n        </div>\\n        <div class=\\\"modal-footer d-flex align-items-center\\\">\\n          <button\\n            type=\\\"button\\\"\\n            class=\\\"btn btn-secondary clickable-important\\\"\\n            data-bs-dismiss=\\\"modal\\\">\\n            ${'components.report-modal.close-button' & t}\\n          </button>\\n          <button\\n            id=\\\"addToCart-${getUniqueProductId(product)}\\\"\\n            type=\\\"button\\\"\\n            class=\\\"btn btn-primary clickable-important\\\"\\n            click.trigger=\\\"addToCart(product)\\\"\\n            data-bs-dismiss=\\\"modal\\\">\\n            OK\\n          </button>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n</template>\\n\";","import { autoinject, bindable } from 'aurelia-framework';\nimport { I18N } from \"aurelia-i18n\";\nimport { Utils } from \"utils/helpers/utils\";\n\n@autoinject\nexport class CopyToClipboardCustomElement {\n  @bindable text: string;\n\n  constructor(\n    private i18n: I18N\n  ) {}\n  \n  copyToClipboard() {\n    navigator.clipboard.writeText(this.text)\n    Utils.showSuccessToast(this.i18n.tr('components.products.messages.code-copied-to-clipboard'));\n  }\n}\n","module.exports = \"<template>\\n\\n  <a class=\\\"icon-link icon-link-hover text-reset\\\" click.trigger=\\\"copyToClipboard()\\\">\\n    <i class=\\\"bi bi-copy clickable-important\\\"></i>\\n  </a>\\n\\n</template>\\n\";","import { SearchType } from 'utils/enums/SearchType';\nimport { IParentItem } from 'domain/Base/IParentItem';\nimport { Router } from 'aurelia-router';\nimport { AppConfig } from 'app-config';\nimport { autoinject, observable, LogManager, bindable, BindingEngine } from 'aurelia-framework';\nimport { IProduct } from 'domain/Product/IProduct';\nimport { Utils } from 'utils/helpers/utils';\n\nexport const log = LogManager.getLogger('app.components.extra-row');\n\ninterface IOeTreeItem extends IParentItem {\n  query?: string;\n}\n\n@autoinject\nexport class ExtraRowCustomElement {\n  @bindable @observable product: IProduct;\n  oeNumberTree: IOeTreeItem[] = [];\n  private oeNumbersSubscription: { dispose(): void } | null = null;\n\n  attached() {\n    this.subscribeToOeNumbers();\n    this.buildOeNumberTree();\n  }\n\n  detached() {\n    this.disposeOeNumbersSubscription();\n  }\n\n  productChanged() {\n    this.subscribeToOeNumbers();\n    this.buildOeNumberTree();\n  }\n\n  private subscribeToOeNumbers() {\n    this.disposeOeNumbersSubscription();\n\n    if (!this.product) {\n      return;\n    }\n\n    this.oeNumbersSubscription = this.bindingEngine\n      .propertyObserver(this.product, 'oeNumbers')\n      .subscribe(() => this.buildOeNumberTree());\n  }\n\n  private disposeOeNumbersSubscription() {\n    this.oeNumbersSubscription?.dispose();\n    this.oeNumbersSubscription = null;\n  }\n\n  private buildOeNumberTree() {\n    this.oeNumberTree = (this.product?.oeNumbers ?? []).map(([manufacturer, oeNumbers], manufacturerIndex) => ({\n      id: manufacturerIndex,\n      name: manufacturer,\n      children: oeNumbers.map((oeNumber, oeNumberIndex) => ({\n        id: manufacturerIndex * 1000 + oeNumberIndex,\n        name: oeNumber,\n        query: oeNumber,\n        children: []\n      }))\n    }));\n  }\n\n  constructor(\n    private appConfig: AppConfig,\n    private router: Router,\n    private bindingEngine: BindingEngine\n  ) { }\n\n  openDocument(productId: number, document: [string, string], index: number) {\n    const data = document[1];\n    let win: Window | null;\n\n    if (data && data.toLowerCase().startsWith(\"http\")) {\n      win = window.open(data, \"_blank\");\n    } else {\n      win = window.open(`${this.appConfig.apiUrl}/Product/${productId}/Document/${index}`, \"_blank\");\n    }\n\n    if (win != null)\n      win.focus();\n  }\n\n  showGallery(product: IProduct) {\n    Utils.showGallery(product);\n  }\n\n  loadVehicle(item: IParentItem) {\n    this.router.navigateToRoute('catalogueList', { vehicleId: item.id });\n  }\n\n  searchOeNumber(query: string) {\n    this.router.navigateToRoute('searchResult', {\n      query: Utils.encode(query),\n      page: 1,\n      type: SearchType.TecDoc\n    });\n  }\n\n  searchOeTreeItem(item: IOeTreeItem) {\n    if (item.query) {\n      this.searchOeNumber(item.query);\n    }\n  }\n}\n","module.exports = \"<template>\\n  <require from=\\\"components/general/simple-tree\\\"></require>\\n  <require from=\\\"components/product/product-list/stock\\\"></require>\\n  <require from=\\\"components/product/product-list/price\\\"></require>\\n  <require from=\\\"resources/style.css\\\"></require>\\n\\n  <div class=\\\"collapse\\\" data-bs-parent=\\\"#accordion\\\" data-extra.bind=\\\"product.id\\\">\\n    <p if.bind=\\\"!!product.description\\\" class=\\\"row p-2\\\" innerhtml.bind=\\\"product.description\\\"></p>\\n    <div class=\\\"row p-2\\\">\\n      <div class=\\\"col\\\">\\n        <div\\n          if.bind=\\\"!appConfig.userSettings.imagesInProductPage && product.thumbnail\\\"\\n          class=\\\"col product-image-wrapper\\\"\\n          click.trigger=\\\"showGallery(product)\\\"\\n          data-image.bind=\\\"product.id\\\">\\n          <span>\\n            <img class=\\\"mx-auto product-image\\\" src.bind=\\\"product.thumbnail\\\" />\\n          </span>\\n        </div>\\n\\n        <div>\\n          <span\\n            if.bind=\\\"!appConfig.userSettings.detailsInProductPage\\\"\\n            repeat.for=\\\"info of product.info\\\"\\n            class=\\\"text-muted small mx-1\\\">\\n            <b>${info[0]}</b>: ${info[1]}<br />\\n          </span>\\n          <span if.bind=\\\"product.ean\\\" class=\\\"text-muted small mx-1 d-lg-none\\\">\\n            ${'components.products.headers.ean' & t}:\\n            <b>${product.ean}</b> </span\\n          ><br />\\n          <span if.bind=\\\"product.inPackage\\\" class=\\\"text-muted small mx-1 d-lg-none\\\">\\n            ${'components.products.headers.in-package' & t}:\\n            <b>${product.inPackage}</b>\\n          </span>\\n        </div>\\n        <span\\n          if.bind=\\\"!appConfig.userSettings.detailsInProductPage && !appConfig.userSettings.imagesInProductPage\\\"\\n          class=\\\"text-muted small\\\"\\n          data-extra-not-found.bind=\\\"product.id\\\"></span>\\n\\n        <dl if.bind=\\\"product.documents !== undefined && product.documents.length != 0\\\" class=\\\"row\\\">\\n          <dt repeat.for=\\\"document of product.documents\\\" class=\\\"col-12\\\">\\n            <a click.delegate=\\\"openDocument(product.id, document, $index)\\\" href=\\\"\\\">\\n              ${document[0]}\\n            </a>\\n          </dt>\\n        </dl>\\n      </div>\\n\\n      <div class=\\\"col\\\" if.bind=\\\"product.oeNumbers !== undefined && product.oeNumbers.length != 0\\\">\\n        <strong class=\\\"d-block mb-2\\\">${'components.products.headers.oe-numbers' & t}</strong>\\n        <simple-tree\\n          list.bind=\\\"oeNumberTree\\\"\\n          depth.bind=\\\"0\\\"\\n          click-function.call=\\\"searchOeTreeItem(item)\\\">\\n        </simple-tree>\\n      </div>\\n\\n      <div class=\\\"col\\\">\\n        <!-- Loading state -->\\n        <template if.bind=\\\"product.cars === undefined\\\">\\n          <strong class=\\\"d-block mb-2\\\">${'components.products.headers.fits-cars' & t}</strong>\\n          <div class=\\\"text-muted\\\">\\n            <span class=\\\"spinner-border spinner-border-sm me-2\\\" role=\\\"status\\\"></span>\\n          </div>\\n        </template>\\n        <!-- Loaded state with cars -->\\n        <template if.bind=\\\"product.cars !== undefined && product.cars.length != 0\\\">\\n          <strong class=\\\"d-block mb-2\\\">${'components.products.headers.fits-cars' & t}</strong>\\n          <simple-tree\\n            list.bind=\\\"product.cars\\\"\\n            depth.bind=\\\"0\\\"\\n            click-function.call=\\\"loadVehicle(item)\\\">\\n          </simple-tree>\\n        </template>\\n      </div>\\n    </div>\\n  </div>\\n</template>\\n\";","import { IProduct } from 'domain/Product/IProduct';\nimport { observable } from 'aurelia-framework';\nimport { LogManager } from 'aurelia-framework';\nimport { bindable } from 'aurelia-framework';\n\nexport var log = LogManager.getLogger('app.components.gallery');\n\nexport class GalleryCustomElement {\n  @bindable @observable products: IProduct[];\n}\n","module.exports = \"<template>\\n\\n  <div repeat.for=\\\"product of products\\\" class=\\\"modal fade\\\" data-gallery-wrapper.bind=\\\"product.id\\\"\\n       tabindex=\\\"-1\\\">\\n    <div class=\\\"modal-dialog modal-lg\\\">\\n      <div class=\\\"modal-content\\\">\\n        <div data-gallery=\\\"${product.id}\\\" class=\\\"carousel slide\\\" data-bs-interval=\\\"false\\\">\\n          <ol class=\\\"carousel-indicators\\\">\\n            <li repeat.for=\\\"image of product.images\\\" class=\\\"${$index == 0 ? 'active' : ''}\\\"\\n                data-bs-target=\\\"[data-gallery='${product.id}']\\\" data-bs-slide-to=\\\"${$index}\\\"></li>\\n          </ol>\\n          <div class=\\\"carousel-inner\\\">\\n            <div repeat.for=\\\"image of product.images\\\"\\n                 class=\\\"carousel-item ${$index == 0 ? 'active' : ''}\\\">\\n              <img class=\\\"d-block mx-auto mw-100\\\" src=\\\"${image}\\\">\\n            </div>\\n          </div>\\n          <a class=\\\"carousel-control-prev\\\" href=\\\"#\\\" data-bs-target=\\\"[data-gallery='${product.id}']\\\"\\n             role=\\\"button\\\" data-bs-slide=\\\"prev\\\">\\n            <span class=\\\"carousel-control-prev-icon\\\"></span>\\n          </a>\\n          <a class=\\\"carousel-control-next\\\" href=\\\"#\\\" data-bs-target=\\\"[data-gallery='${product.id}']\\\"\\n             role=\\\"button\\\" data-bs-slide=\\\"next\\\">\\n            <span class=\\\"carousel-control-next-icon\\\"></span>\\n          </a>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n\\n</template>\\n\";","import { autoinject, observable, bindable, LogManager } from 'aurelia-framework';\nimport { I18N } from 'aurelia-i18n';\nimport { Utils } from 'utils/helpers/utils';\nimport { IPrice } from 'domain/Product/IPrice';\nimport { PriceType } from 'utils/enums/PriceType';\n\nexport const log = LogManager.getLogger('app.components.price');\n\n@autoinject\nexport class PriceCustomElement {\n  @bindable @observable prices: IPrice[];\n  @bindable displayPrice: number | null;\n\n  constructor(\n    private i18n: I18N\n  ) {}\n\n  // #region MAIN\n\n  pricesChanged() {\n    if (this.prices == null)\n      Utils.showErrorToast(log, this.i18n.tr('components.price.errors.load'));\n  }\n  \n  hasAmountDependentPrice(prices: IPrice[]) {\n    for (const price of prices) {\n        switch (price.type) {\n          case PriceType.AmountDiscount:\n            return true;\n          case PriceType.AmountDiscountList:\n            return true;\n        }\n    }\n    return false;\n  }\n\n  // #endregion\n}\n","module.exports = \"<template>\\n  <require from=\\\"utils/classes/value-converters\\\"></require>\\n  <require from=\\\"utils/classes/tooltip\\\"></require>\\n\\n  <span if.bind=\\\"displayPrice == null\\\">\\n    ${displayPrice | currencyFormat}\\n  </span>\\n  <span else tooltip=\\\"${prices | pricesToTooltip:i18n}\\\">\\n    <i if.bind=\\\"hasAmountDependentPrice(prices)\\\" class=\\\"bi bi-bar-chart\\\"></i>\\n    ${displayPrice | currencyFormat}\\n  </span>\\n\\n</template>\\n\";","import { I18N } from \"aurelia-i18n\";\nimport { AppConfig } from \"app-config\";\nimport { Utils } from \"utils/helpers/utils\";\nimport { EventAggregator } from \"aurelia-event-aggregator\";\nimport { LogManager, autoinject, observable, bindable } from \"aurelia-framework\";\nimport { IProduct } from \"domain/Product/IProduct\";\nimport { ProductService } from \"services/product/product-service\";\nimport { PriceHelper } from \"utils/helpers/price-helper\";\nimport { TKEvent } from \"utils/enums/TKEvent\";\nimport $ from \"jquery\";\nimport { Collapse, Popover } from \"bootstrap\";\nimport { SearchOrder } from \"utils/enums/SearchOrder\";\nimport { isEmpty } from \"lodash\";\nimport { WarehouseService } from \"services/client/warehouse-service\";\nimport { IWarehouse } from \"domain/Client/IWarehouse\";\n\nexport const log = LogManager.getLogger(\"app.components.product-list\");\n\n@autoinject\nexport class ProductListCustomElement {\n  @bindable @observable products: IProduct[];\n  @bindable currentPage = 1;\n  @bindable lastPage = 1;\n  @bindable query = \"\";\n  @bindable @observable vehicleId: number | undefined;\n  @bindable @observable categoryId: number | undefined;\n  @bindable orderBy = SearchOrder.Default;\n  @bindable orderReversed = false;\n  pageHasEan = false;\n  pageHasBrand = false;\n  pageHasInPackage = false;\n  @bindable extendedSearch: boolean;\n\n  colSpan = 9;\n  imageRowspan = 2;\n\n  @bindable options = {\n    showAmount: false,\n    showSum: false,\n    showAddToCart: false,\n  };\n\n  warehouses: IWarehouse[] = [];\n\n  // https://discourse.aurelia.io/t/have-access-to-the-values-of-an-enum-in-a-html-page/831\n  SearchOrder = SearchOrder;\n\n  constructor(\n    private productService: ProductService,\n    private warehouseService: WarehouseService,\n    private appConfig: AppConfig,\n    private eventAggregator: EventAggregator,\n    private i18n: I18N,\n  ) {\n    this.eventAggregator.subscribeOnce(TKEvent.userSettingsLoaded, () => {\n      this.formatPrice();\n    });\n  }\n\n  attached() {\n    $(() => {\n      this.colSpan = $(\"#product-list-header-row\").children().length;\n    });\n  }\n\n  // #region MAIN\n\n  productsChanged() {\n    this.processResult();\n  }\n\n  // When the result is processed for the first time, vehicleId is not available yet\n  // So we need to update it once when the vehicle id is loaded\n  vehicleIdChanged(newValue: string, oldValue: string) {\n    if (oldValue !== undefined) return;\n\n    this.products.forEach(product => {\n      this.loadInfo(product);\n    });\n  }\n\n  // When the result is processed for the first time, categoryId is not available yet\n  // So we need to update it once when the category id is loaded\n  categoryIdChanged(newValue: string, oldValue: string) {\n    if (oldValue !== undefined) return;\n\n    this.products.forEach(product => {\n      this.loadImagesWithCategory(product);\n      this.loadInfo(product);\n    });\n  }\n\n  processResult() {\n    this.loadSortables();\n    this.moveRowsListener();\n    this.formatPrice();\n\n    this.imageRowspan =\n      this.appConfig.userSettings.detailsInProductPage ||\n      this.appConfig.userSettings.imagesInProductPage\n        ? 2\n        : 1;\n\n    this.renderColumnsConditionally();\n    if (this.products) {\n      this.getWarehouses().finally(() => {\n        this.products.forEach(product => {\n          this.fillDefaultSelectedStock(product);\n          this.loadExternalStock(product);\n\n          // Fill out the cart amount input\n          if (!Utils.isPositive(product.toCartQuantity)) product.toCartQuantity = \"1\";\n\n          this.highlightSearchQuery(product);\n\n          this.loadThumbnail(product);\n          this.loadImages(product);\n          this.loadInfo(product);\n        });\n      });\n    }\n  }\n  // #endregion\n\n  // #region LOAD\n  loadSortables() {\n    $(() => {\n      const bsIconsClasses = \".bi-filter, .bi-sort-down, .bi-sort-up\";\n      $(\"th[data-sort]\").children(bsIconsClasses).remove();\n\n      const headers = $(\"th[data-sort]:not(:has(i))\");\n      headers.append(' <i class=\"bi-filter\"></i>');\n\n      const clickedElement = $(\"th[data-sort=\" + this.orderBy + \"]\").find(bsIconsClasses);\n      clickedElement.addClass(this.orderReversed ? \"bi-sort-up\" : \"bi-sort-down\");\n    });\n  }\n\n  getWarehouses(): Promise<IWarehouse[] | void> {\n    if (this.warehouses.length > 0) return new Promise(resolve => resolve(this.warehouses));\n\n    return this.warehouseService\n      .getWarehouses()\n      .then(result => {\n        this.warehouses = result;\n        log.debug(\"load warehouses\", this.warehouses);\n      })\n      .catch(() => Utils.showErrorToast(log, this.i18n.tr(\"components.warehouses.errors.load\")));\n  }\n\n  loadThumbnail(product: IProduct) {\n    product.imageLoadingCount = (product.imageLoadingCount ?? 0) + 1;\n\n    this.productService\n      .fetchThumbnail(product.id)\n      .then(result => {\n        if (result == \"\") return;\n\n        product.thumbnail = result;\n\n        // Large thumbnail when hovering\n        const thumbnailList = [].slice.call(\n          document.querySelectorAll(`[data-image=\"${product.id}\"]`),\n        );\n        thumbnailList.map(function (popoverTriggerEl: HTMLElement) {\n          return new Popover(popoverTriggerEl, {\n            // The thumbnail is a small resized image; prefer the first full-size\n            // image (loaded in parallel by loadImages) for the hover preview\n            content: () =>\n              `<img class=\"thumbnail-hover-image\" src=\"${product.images?.[0] ?? product.thumbnail}\"></img>`,\n            trigger: \"hover focus\",\n            container: $(`[data-image=\"${product.id}\"]`).get(0),\n            html: true,\n          });\n        });\n      })\n      .finally(() => {\n        product.imageLoadingCount = Math.max((product.imageLoadingCount ?? 1) - 1, 0);\n      })\n      .catch(error => Utils.showErrorToast(log, Utils.getErrorMessage(error, this.i18n)));\n  }\n\n  loadImages(product: IProduct) {\n    product.imageLoadingCount = (product.imageLoadingCount ?? 0) + 1;\n\n    this.productService\n      .fetchImages(product.id)\n      .then(result => {\n        product.images = result.concat(product.images ?? []);\n      })\n      .finally(() => {\n        product.imageLoadingCount = Math.max((product.imageLoadingCount ?? 1) - 1, 0);\n      })\n      .catch(error => Utils.showErrorToast(log, Utils.getErrorMessage(error, this.i18n)));\n  }\n\n  loadImagesWithCategory(product: IProduct) {\n    if (!this.categoryId) return;\n\n    product.imageLoadingCount = (product.imageLoadingCount ?? 0) + 1;\n\n    this.productService\n      .fetchImagesWithCategory(product.id, this.categoryId)\n      .then(result => {\n        product.images = result.concat(product.images ?? []);\n      })\n      .finally(() => {\n        product.imageLoadingCount = Math.max((product.imageLoadingCount ?? 1) - 1, 0);\n      })\n      .catch(error => Utils.showErrorToast(log, Utils.getErrorMessage(error, this.i18n)));\n  }\n\n  loadInfo(product: IProduct) {\n    const oldVehicleId = this.vehicleId;\n    const oldCategoryId = this.categoryId;\n\n    let fetch;\n    if (this.vehicleId) {\n      if (this.categoryId) {\n        fetch = this.productService.fetchInfoWithCategory(\n          product.id,\n          this.vehicleId,\n          this.categoryId,\n        );\n      } else {\n        fetch = this.productService.fetchInfoWithCar(product.id, this.vehicleId);\n      }\n    } else {\n      fetch = this.productService.fetchInfo(product.id);\n    }\n\n    fetch\n      .then(result => {\n        // Check if vehicleId/categoryId has showed up while waiting for response - if yes, then abort\n        if (this.vehicleId != oldVehicleId || this.categoryId != oldCategoryId) return;\n\n        if (Utils.isArrayEmpty(result)) result = [];\n\n        product.info = result;\n        this.extractEanFromInfo(product);\n      })\n      .catch(error => Utils.showErrorToast(log, Utils.getErrorMessage(error, this.i18n)));\n  }\n\n  loadDescription(product: IProduct) {\n    const oldCategoryId = this.categoryId;\n\n    const fetch = this.categoryId\n      ? this.productService.fetchDescriptionWithCategory(product.id, this.categoryId)\n      : this.productService.fetchDescription(product.id);\n\n    fetch\n      .then(result => {\n        // Check if categoryId has showed up while waiting for response - if yes, then abort\n        if (this.categoryId != oldCategoryId) return;\n\n        product.description = result ? result : null;\n      })\n      .catch(error => {\n        product.description = null;\n        Utils.showErrorToast(log, Utils.getErrorMessage(error, this.i18n));\n      })\n      .finally(() => {\n        this.afterLoading(product, \"loading-description\");\n      });\n  }\n\n  loadDocuments(product: IProduct) {\n    const oldCategoryId = this.categoryId;\n\n    const fetch = this.categoryId\n      ? this.productService.fetchDocumentsWithCategory(product.id, this.categoryId)\n      : this.productService.fetchDocuments(product.id);\n\n    fetch\n      .then(result => {\n        // Check if categoryId has showed up while waiting for response - if yes, then abort\n        if (this.categoryId != oldCategoryId) return;\n\n        product.documents = Utils.isArrayEmpty(result) ? [] : result;\n      })\n      .catch(error => {\n        product.documents = [];\n        Utils.showErrorToast(log, Utils.getErrorMessage(error, this.i18n));\n      })\n      .finally(() => {\n        this.afterLoading(product, \"loading-documents\");\n      });\n  }\n\n  loadOeNumbers(product: IProduct) {\n    this.productService\n      .fetchOeNumbers(product.id)\n      .then(result => {\n        if (Utils.isObjectEmpty(result)) result = {};\n\n        product.oeNumbers = Object.entries(result ?? {});\n      })\n      .catch(error => {\n        product.oeNumbers = [];\n        Utils.showErrorToast(log, Utils.getErrorMessage(error, this.i18n));\n      })\n      .finally(() => {\n        this.afterLoading(product, \"loading-oe-numbers\");\n      });\n  }\n\n  loadCars(product: IProduct) {\n    this.productService\n      .fetchCars(product.id)\n      .then(result => {\n        if (Utils.isArrayEmpty(result)) result = [];\n\n        product.cars = result;\n      })\n      .catch(error => {\n        product.cars = [];\n        Utils.showErrorToast(log, Utils.getErrorMessage(error, this.i18n));\n      })\n      .finally(() => {\n        this.afterLoading(product, \"loading-cars\");\n      });\n  }\n\n  loadExternalStock(product: IProduct) {\n    this.productService.fetchExternalStock(product.id).then(result => {\n      if (Utils.isArrayEmpty(result)) result = [];\n      product.externalStock = result;\n      PriceHelper.formatStockPrices(product.externalStock, this.appConfig.userSettings, this.i18n);\n      if (result.length > 0) this.fillDefaultSelectedStock(product);\n    });\n  }\n\n  fillDefaultSelectedStock(product: IProduct) {\n    let stockItem = product.stock.find(\n      x => x.warehouse.id == this.appConfig.userSettings.warehouseId,\n    );\n\n    if (!Utils.isInStock(stockItem)) {\n      var isNotInOurWarehouses = !product.stock.find(x => Utils.isInStock(x));\n      if (isNotInOurWarehouses && product.externalStock.length > 0) {\n        stockItem =\n          product.externalStock.find(s => Number(s.warehouse.groupId) === 2) ||\n          product.externalStock.find(s => Number(s.warehouse.groupId) === 1) ||\n          product.externalStock[0];\n      } else {\n        stockItem = this.getFallbackStock(product);\n      }\n      PriceHelper.formatStockPrices([stockItem], this.appConfig.userSettings, this.i18n);\n    }\n\n    product.selectedStock = stockItem;\n  }\n\n  getFallbackStock(product: IProduct) {\n    return {\n      warehouse:\n        this.warehouses.find(x => x.id == this.appConfig.userSettings.warehouseId) ??\n        this.warehouses.find(x => x.id == 0) ??\n        this.warehouses[0],\n      quantity: \"0\",\n      prices: product.prices ?? [],\n    };\n  }\n\n  extractEanFromInfo(product: IProduct) {\n    if (product.ean.length > 0) return;\n\n    const eanIndex = product.info?.findIndex(x => x[0] == \"EAN\") ?? -1;\n    if (eanIndex < 0) return;\n\n    const ean = product.info?.at(eanIndex)?.at(1);\n    if (!ean) return;\n\n    product.ean = ean;\n    product.info?.splice(eanIndex, 1);\n  }\n\n  // #endregion\n\n  // #region ACTIONS\n\n  changeOrder(clickedElement: Element) {\n    if (\n      !clickedElement.getAttribute(\"data-sort\") &&\n      !clickedElement.classList.contains(\"bi-filter\")\n    )\n      return;\n\n    // If clicked on sort icon, then use it's parent as base\n    if (clickedElement.classList.contains(\"bi-filter\"))\n      clickedElement = clickedElement.parentElement ?? clickedElement;\n\n    const orderBy = parseInt(clickedElement.getAttribute(\"data-sort\") ?? \"0\");\n    let orderReversed = !this.orderReversed;\n\n    // Reset orderReversed value to false if another column is being ordered\n    if (orderBy != this.orderBy) orderReversed = false;\n\n    this.orderReversed = orderReversed;\n    this.orderBy = orderBy;\n  }\n\n  toggleExtraRow(target: HTMLElement, product: IProduct) {\n    $(() => {\n      // Check if child element was clicked instead\n      if ($(target).prop(\"tagName\") != \"TD\" && $(target).prop(\"tagName\") != \"TR\") return;\n\n      const productWrappers = $(`.clickable[data-product-id=\"${product.id}\"]`);\n\n      // Start loading them if they aren't already loaded\n      if (!this.areExtrasLoaded(product)) {\n        // If the element has any of these classes, we're still waiting for the results\n        if (productWrappers.is(\".loading-description, .loading-documents, .loading-oe-numbers\"))\n          return;\n\n        productWrappers.addClass(\n          \"loading-description loading-documents loading-oe-numbers loading-cars\",\n        );\n\n        this.loadDescription(product);\n        this.loadDocuments(product);\n        this.loadOeNumbers(product);\n        this.loadCars(product);\n\n        return;\n      }\n\n      this.tryOpenExtraRow(product, productWrappers, true);\n    });\n  }\n\n  shouldExtraRowOpen(product: IProduct): boolean {\n    const showDetails = this.appConfig.userSettings.detailsInProductPage;\n    const showImages = this.appConfig.userSettings.imagesInProductPage;\n\n    // extra row must be opened, because otherwise we can't print out the message that nothing can be displayed\n    if (!showDetails && !showImages) return true;\n\n    return this.anyDataInExtraRow(product);\n  }\n\n  anyDataInExtraRow(product: IProduct): boolean {\n    const showDetails = this.appConfig.userSettings.detailsInProductPage;\n    const showImages = this.appConfig.userSettings.imagesInProductPage;\n    const isDataInTable = $(\"#d-lg-none\").is(\":hidden\");\n\n    // Also check if EAN or package count is hidden or doesn't exist\n    const noHiddenData = isDataInTable || (!product.ean && !product.inPackage);\n    const noHiddenDetails = showDetails || product.info === null || product.info.length == 0;\n    const noDescriptions = product.description === null || product.description === \"\";\n    const noHiddenImages =\n      showImages || product.thumbnail === null || product.thumbnail.length == 0;\n    const noExtras = !this.isAnyExtras(product);\n\n    return !(noHiddenData && noHiddenDetails && noDescriptions && noHiddenImages && noExtras);\n  }\n\n  showGallery(product: IProduct) {\n    Utils.showGallery(product);\n  }\n\n  // #endregion\n\n  // #region HELPERS\n\n  highlightSearchQuery(product: IProduct) {\n    // Highlight search query with <strong>\n    $(() => {\n      const target = $(\n        `[data-product-id=\"${product.id}\"] [data-highlight-query=\"${product.foundBy}\"]`,\n      );\n      if (target.length > 0) {\n        const regex = new RegExp(Utils.escapeRegex(this.query), \"gi\");\n        const code = target.html().replace(regex, \"<strong>$&</strong>\");\n        target.html(code);\n\n        if (!target.html().includes(\"<strong>\")) {\n          target.html(\"<strong>\" + target.html() + \"</strong>\");\n        }\n      }\n    });\n  }\n\n  isAnyExtras(product: IProduct) {\n    return (\n      product.cars?.length != 0 || product.documents?.length != 0 || product.oeNumbers?.length != 0\n    );\n  }\n\n  areExtrasLoaded(product: IProduct) {\n    // Don't wait for cars - they load separately and appear later\n    return product.documents !== undefined && product.oeNumbers !== undefined;\n  }\n\n  afterLoading(product: IProduct, classToRemove: string) {\n    const productWrappers = $(`.clickable[data-product-id=\"${product.id}\"]`);\n\n    productWrappers.removeClass(classToRemove);\n\n    // Don't wait for cars to load - open extra row when description, documents and oeNumbers are ready\n    // Cars will appear later when their request completes\n    if (productWrappers.is(\".loading-description, .loading-documents, .loading-oe-numbers\")) return;\n\n    this.tryOpenExtraRow(product, productWrappers);\n  }\n\n  tryOpenExtraRow(product: IProduct, productWrappers: JQuery<HTMLElement>, isUserToggle = false) {\n    $(() => {\n      if (!this.anyDataInExtraRow(product))\n        $(`[data-extra-not-found=\"${product.id}\"]`).html(\n          this.i18n.tr(\"components.products.errors.no-info-found\"),\n        );\n\n      if (this.shouldExtraRowOpen(product)) {\n        const extraRow = document.querySelector(`[data-extra=\"${product.id}\"]`);\n        // User click should always toggle, automatic open should not close an already open row\n        if (extraRow && (isUserToggle || !extraRow.classList.contains(\"show\"))) {\n          new Collapse(extraRow, { parent: \"#accordion\" }).toggle();\n        }\n      } else {\n        productWrappers.removeClass(\"clickable\");\n      }\n    });\n  }\n\n  // Move info and extra rows along with it's parent product row when sorted\n  moveRowsListener() {\n    $(() => {\n      $(\".sortable\").on(\"sorted\", function () {\n        $(this)\n          .find(\"[rowspan-value]\")\n          .each(function () {\n            $(this).attr(\"rowspan\", $(this).attr(\"rowspan-value\") || 2);\n          });\n\n        $(this)\n          .find(\"tr.info-row\")\n          .each(function () {\n            $(this).insertAfter(\n              `.product-row[data-product-id=\"${$(this).attr(\"data-product-id\")}\"]`,\n            );\n            $(this).children(\".product-image-wrapper\").remove();\n          });\n        $(this)\n          .find(\"tr.extra-row\")\n          .each(function () {\n            $(this).insertAfter(\n              $(`.info-row[data-product-id=\"${$(this).attr(\"data-product-id\")}\"]`),\n            );\n          });\n      });\n    });\n  }\n\n  formatPrice() {\n    if (!this.products || !this.appConfig.userSettings) return;\n\n    PriceHelper.formatProductsPrices(this.products, this.appConfig.userSettings, this.i18n);\n  }\n\n  pageHasEANChecker() {\n    for (const product of this.products) {\n      if (product.ean || !isEmpty(product.ean)) {\n        this.pageHasEan = true;\n        return;\n      }\n    }\n  }\n\n  pageHasBrandChecker() {\n    for (const product of this.products) {\n      if (product.brand || !isEmpty(product.brand)) {\n        this.pageHasBrand = true;\n        return;\n      }\n    }\n  }\n\n  pageHasInPackageChecker() {\n    for (const product of this.products) {\n      if (product.inPackage || product.inPackage > 0) {\n        this.pageHasInPackage = true;\n        return;\n      }\n    }\n  }\n\n  resetConditionalColumnRendering() {\n    this.pageHasEan = false;\n    this.pageHasBrand = false;\n    this.pageHasInPackage = false;\n  }\n\n  renderColumnsConditionally() {\n    this.resetConditionalColumnRendering();\n\n    if (!this.products || this.products.length == 0) return;\n\n    this.pageHasEANChecker();\n    this.pageHasBrandChecker();\n    this.pageHasInPackageChecker();\n  }\n\n  activateExtendedSearch() {\n    this.extendedSearch = true;\n  }\n\n  // #endregion\n}\n","module.exports = \"<template>\\n  <require from=\\\"utils/classes/value-converters\\\"></require>\\n  <require from=\\\"utils/classes/tooltip\\\"></require>\\n  <require from=\\\"components/product/product-list/add-to-cart\\\"></require>\\n  <require from=\\\"components/product/product-list/copy-to-clipboard\\\"></require>\\n  <require from=\\\"components/product/product-list/extra-row\\\"></require>\\n  <require from=\\\"components/product/product-list/gallery\\\"></require>\\n  <require from=\\\"components/product/product-list/stock\\\"></require>\\n  <require from=\\\"components/product/product-list/price\\\"></require>\\n  <require from=\\\"components/general/pager\\\"></require>\\n  <require from=\\\"components/product/product-list/report-button\\\"></require>\\n\\n  <!-- table-striped doesn't work, because every other row is hidden -->\\n  <!-- table-hover doesn't work, because we want to hover multiple rows at once (using .hover) -->\\n  <table\\n    id=\\\"accordion\\\"\\n    class=\\\"table table-borderless table-sm table-responsive-md w-100 accordion odd-row-darker-bg no-default-bg\\\">\\n    <thead>\\n      <tr id=\\\"product-list-header-row\\\" click.trigger=\\\"changeOrder($event.target)\\\">\\n        <th if.bind=\\\"appConfig.userSettings.imagesInProductPage\\\" class=\\\"text-center\\\">\\n          ${'components.products.headers.thumbnail' & t}\\n        </th>\\n        <th data-sort=\\\"1\\\">${'components.products.headers.code' & t}</th>\\n        <th data-sort=\\\"2\\\">${'components.products.headers.name' & t}</th>\\n        <th\\n          if.bind=\\\"pageHasEan || orderBy == SearchOrder.EAN\\\"\\n          data-sort=\\\"3\\\"\\n          class=\\\"text-center d-none d-lg-table-cell\\\">\\n          ${'components.products.headers.ean' & t}\\n        </th>\\n        <th if.bind=\\\"pageHasBrand || orderBy == SearchOrder.Brand\\\" data-sort=\\\"4\\\">\\n          ${'components.products.headers.brand' & t}\\n        </th>\\n        <th\\n          if.bind=\\\"pageHasInPackage || orderBy == SearchOrder.InPackage\\\"\\n          data-sort=\\\"5\\\"\\n          class=\\\"text-center d-none d-lg-table-cell\\\">\\n          ${'components.products.headers.in-package' & t}\\n        </th>\\n        <th class=\\\"text-center\\\">${'components.products.headers.stock' & t}</th>\\n        <th class=\\\"text-end\\\">${'components.products.headers.price' & t}</th>\\n        <th if.bind=\\\"options.showAmount\\\" class=\\\"text-center\\\">\\n          ${'components.products.headers.amount' & t}\\n        </th>\\n        <th if.bind=\\\"options.showSum\\\" class=\\\"text-center\\\">\\n          ${'components.products.headers.total' & t}\\n        </th>\\n        <th if.bind=\\\"options.showAddToCart\\\" class=\\\"text-center\\\">\\n          ${'components.products.headers.add-to-cart' & t}\\n        </th>\\n      </tr>\\n    </thead>\\n\\n    <tbody repeat.for=\\\"product of products\\\">\\n      <tr\\n        class=\\\"clickable product-row\\\"\\n        data-product-id.bind=\\\"product.id\\\"\\n        click.delegate=\\\"toggleExtraRow($event.target, product)\\\">\\n        <td\\n          rowspan.bind=\\\"imageRowspan\\\"\\n          if.bind=\\\"appConfig.userSettings.imagesInProductPage\\\"\\n          class=\\\"product-image-wrapper\\\"\\n          click.trigger=\\\"showGallery(product)\\\"\\n          data-image.bind=\\\"product.id\\\">\\n          <span class=\\\"product-image-state\\\">\\n            <span\\n              if.bind=\\\"product.imageLoadingCount && !product.thumbnail\\\"\\n              class=\\\"product-image-loading\\\">\\n              <span class=\\\"spinner-border spinner-border-sm text-secondary\\\" role=\\\"status\\\"></span>\\n            </span>\\n            <img\\n              class=\\\"mx-auto product-image\\\"\\n              if.bind=\\\"product.thumbnail\\\"\\n              src.bind=\\\"product.thumbnail\\\" />\\n          </span>\\n        </td>\\n\\n        <td\\n          if.bind=\\\"product.originalCode != product.code\\\"\\n          class=\\\"font-italic text-nowrap\\\"\\n          tooltip=\\\"${'components.products.fields.replacement' & t: {'originalCode': product.originalCode}}\\\">\\n          <span class=\\\"pe-none\\\" data-highlight-query=\\\"code\\\">${product.code}</span>\\n          <copy-to-clipboard text.bind=\\\"product.code\\\"></copy-to-clipboard>\\n          <report-button product.bind=\\\"product\\\"></report-button>\\n        </td>\\n\\n        <td else class=\\\"text-nowrap\\\">\\n          <span class=\\\"pe-none\\\" data-highlight-query=\\\"code\\\">${product.code}</span>\\n          <copy-to-clipboard text.bind=\\\"product.code\\\"></copy-to-clipboard>\\n          <report-button product.bind=\\\"product\\\"></report-button>\\n        </td>\\n\\n        <td><span data-highlight-query=\\\"name\\\">${product.name}</span></td>\\n\\n        <td\\n          if.bind=\\\"pageHasEan || orderBy == SearchOrder.EAN\\\"\\n          class=\\\"text-center text-nowrap d-none d-lg-table-cell\\\">\\n          <span data-highlight-query=\\\"ean\\\">${product.ean}</span>\\n        </td>\\n\\n        <td if.bind=\\\"pageHasBrand || orderBy == SearchOrder.Brand\\\">\\n          <span>${product.brand}</span>\\n        </td>\\n\\n        <td\\n          if.bind=\\\"pageHasInPackage || orderBy == SearchOrder.InPackage\\\"\\n          class=\\\"text-center text-nowrap d-none d-lg-table-cell\\\">\\n          <span>${product.inPackage > 0 ? product.inPackage : ''}</span>\\n        </td>\\n\\n        <td\\n          class=\\\"text-center clickable\\\"\\n          as-element=\\\"stock\\\"\\n          data-value.bind=\\\"product.selectedStock\\\"\\n          product.bind=\\\"product\\\"\\n          warehouses.bind=\\\"warehouses\\\"></td>\\n\\n        <td\\n          class=\\\"text-end text-nowrap\\\"\\n          as-element=\\\"price\\\"\\n          prices.bind=\\\"product.selectedStock.prices || product.prices\\\"\\n          display-price.bind=\\\"product.selectedStock.displayPrice\\\"></td>\\n\\n        <td if.bind=\\\"options.showAmount\\\" class=\\\"text-center text-nowrap\\\">\\n          <input\\n            type=\\\"number\\\"\\n            class=\\\"form-control form-control-sm mx-auto cart-product-amount\\\"\\n            min=\\\"1\\\"\\n            step=\\\"1\\\"\\n            value.bind=\\\"product.quantity\\\" />\\n        </td>\\n\\n        <td if.bind=\\\"options.showSum\\\" class=\\\"text-end text-nowrap\\\">\\n          <span>${product.selectedStock.displayPrice * product.quantity | currencyFormat}</span>\\n        </td>\\n\\n        <td if.bind=\\\"options.showAddToCart\\\" class=\\\"text-nowrap clickable\\\">\\n          <add-to-cart product.bind=\\\"product\\\"></add-to-cart>\\n        </td>\\n      </tr>\\n\\n      <tr\\n        if.bind=\\\"appConfig.userSettings.detailsInProductPage || appConfig.userSettings.imagesInProductPage\\\"\\n        class=\\\"clickable info-row\\\"\\n        data-disablesort=\\\"true\\\"\\n        data-product-id.bind=\\\"product.id\\\"\\n        click.delegate=\\\"toggleExtraRow($event.target, product)\\\">\\n        <td colspan.bind=\\\"colSpan\\\">\\n          <template if.bind=\\\"appConfig.userSettings.detailsInProductPage\\\">\\n            <span repeat.for=\\\"info of product.info\\\" class=\\\"text-muted small mx-1\\\">\\n              <b>${info[0]}:</b> ${info[1]}\\n            </span>\\n          </template>\\n          <span class=\\\"text-muted small mt-1\\\" data-extra-not-found.bind=\\\"product.id\\\"></span>\\n        </td>\\n      </tr>\\n\\n      <tr class=\\\"extra-row\\\" data-disablesort=\\\"true\\\" data-product-id.bind=\\\"product.id\\\">\\n        <td colspan.bind=\\\"colSpan\\\" class=\\\"p-0\\\">\\n          <extra-row product.bind=\\\"product\\\"></extra-row>\\n        </td>\\n      </tr>\\n    </tbody>\\n  </table>\\n\\n  <div if.bind=\\\"currentPage == lastPage && extendedSearch == false\\\" class=\\\"d-flex justify-content-center\\\">\\n    <button type=\\\"button\\\" class=\\\"btn btn-primary mb-3\\\" click.delegate=\\\"activateExtendedSearch()\\\">\\n      ${'components.products.buttons.load-more' & t}\\n    </button>\\n  </div>\\n\\n  <pager current-page.two-way=\\\"currentPage\\\" last-page.bind=\\\"lastPage\\\"></pager>\\n\\n  <gallery if.bind=\\\"appConfig.userSettings.imagesInProductPage\\\" products.bind=\\\"products\\\"></gallery>\\n\\n  <span id=\\\"d-lg-none\\\" class=\\\"d-lg-none\\\"></span>\\n</template>\\n\";","import { Utils } from \"utils/helpers/utils\";\nimport { LogManager, autoinject, bindable } from \"aurelia-framework\";\nimport { IProduct } from \"domain/Product/IProduct\";\nimport { ProductService } from \"services/product/product-service\";\nimport { I18N } from \"aurelia-i18n\";\n\nexport const log = LogManager.getLogger(\"app.components.report-button\");\n\n@autoinject\nexport class ReportButtonCustomElement {\n  @bindable product: IProduct;\n\n  constructor(private i18n: I18N, private productService: ProductService) {}\n\n  sendProductReport(product: IProduct, reportText: string) {\n    this.productService\n      .postReportError(product.code, reportText, product.id)\n      .then(() => {\n        Utils.showSuccessToast(this.i18n.tr(\"components.products.messages.error-reported\"));\n      })\n      .catch(() => {\n        Utils.showErrorToast(log, this.i18n.tr(\"components.products.errors.report-error\"));\n      });\n  }\n}\n","module.exports = \"<template>\\n  <require from=\\\"utils/classes/tooltip\\\"></require>\\n\\n  <a\\n    class=\\\"icon-link icon-link-hover text-reset\\\"\\n    data-bs-toggle=\\\"modal\\\"\\n    data-bs-target=\\\"#id${product.id}\\\">\\n    <i\\n      class=\\\"bi bi-exclamation-diamond clickable-important\\\"\\n      tooltip=\\\"${'components.products.tooltips.faulty-product' & t}\\\"></i>\\n  </a>\\n  <div class=\\\"modal fade\\\" id=\\\"id${product.id}\\\" tabindex=\\\"-1\\\" aria-hidden=\\\"true\\\">\\n    <div class=\\\"modal-dialog modal-dialog-centered\\\">\\n      <div class=\\\"modal-content\\\">\\n        <div class=\\\"modal-header\\\">\\n          <h1 class=\\\"modal-title fs-5\\\">\\n            ${product.code} ${'components.report-modal.report-faulty' & t}\\n          </h1>\\n          <button\\n            type=\\\"button\\\"\\n            class=\\\"btn-close clickable-important\\\"\\n            data-bs-dismiss=\\\"modal\\\"\\n            aria-label=\\\"Close\\\"></button>\\n        </div>\\n        <div class=\\\"modal-body\\\">\\n          <form>\\n            <div class=\\\"form-group\\\">\\n              <textarea\\n                class=\\\"form-control\\\"\\n                placeholder=\\\"${'components.report-modal.describe-fault' & t}\\\"\\n                value.bind=\\\"reportText\\\"></textarea>\\n            </div>\\n          </form>\\n        </div>\\n        <div class=\\\"modal-footer\\\">\\n          <button\\n            type=\\\"button\\\"\\n            class=\\\"btn btn-secondary clickable-important\\\"\\n            data-bs-dismiss=\\\"modal\\\">\\n            ${'components.report-modal.close-button' & t}\\n          </button>\\n          <button\\n            type=\\\"button\\\"\\n            class=\\\"btn btn-primary clickable-important\\\"\\n            click.trigger=\\\"sendProductReport(product, reportText)\\\">\\n            ${'components.report-modal.send-button' & t}\\n          </button>\\n        </div>\\n      </div>\\n    </div>\\n  </div>\\n</template>\\n\";","import { AppConfig } from \"app-config\";\nimport { ICartProduct } from \"domain/Cart/ICartProduct\";\nimport { EventAggregator } from \"aurelia-event-aggregator\";\nimport { ProductService } from \"services/product/product-service\";\nimport { autoinject, LogManager, bindable } from \"aurelia-framework\";\nimport { I18N } from \"aurelia-i18n\";\nimport { Utils } from \"utils/helpers/utils\";\nimport { IProduct } from \"domain/Product/IProduct\";\nimport { IStockItem } from \"domain/Product/IStockItem\";\nimport { TKEvent } from \"utils/enums/TKEvent\";\nimport { IWarehouse } from \"domain/Client/IWarehouse\";\nimport { PriceHelper } from \"utils/helpers/price-helper\";\n\nexport const log = LogManager.getLogger(\"app.components.stock\");\n\n@autoinject\nexport class StockCustomElement {\n  @bindable product: IProduct | ICartProduct;\n  @bindable warehouses: IWarehouse[];\n  isInStock = Utils.isInStock;\n\n  constructor(\n    private i18n: I18N,\n    private productService: ProductService,\n    private appConfig: AppConfig,\n    private eventAggregator: EventAggregator\n  ) {}\n\n  attached() {\n    if (this.product == null) {\n      Utils.showErrorToast(log, this.i18n.tr(\"components.stock.errors.load\"));\n      return;\n    }\n  }\n\n  getValue(stock: string): number {\n    switch (stock) {\n      case \"e\":\n        return 11;\n      case \"t\":\n        return -2;\n      case \"l\":\n        return -1;\n      default:\n        return Number(stock);\n    }\n  }\n\n  takeIntoStockUserWish(productCode: string, productId: number) {\n    const confirmation = confirm(\n      this.i18n.tr(\"components.products.messages.confirm-take-into-stock-wish\")\n    );\n\n    if (confirmation == false) return;\n\n    this.productService\n      .postProductStockRequest(productCode, productId)\n      .then(() => {\n        Utils.showSuccessToast(\n          this.i18n.tr(\"components.products.messages.take-into-stock-wish-received\")\n        );\n      })\n      .catch(() => {\n        Utils.showErrorToast(log, this.i18n.tr(\"components.products.errors.take-into-stock-wish\"));\n      });\n  }\n\n  getStockQuantity(warehouse: IWarehouse): string {\n    const stockItem = this.product.stock.find(x => x.warehouse.id === warehouse.id);\n    return stockItem?.quantity ?? \"0\";\n  }\n\n  updateStockFromWarehouse(warehouse: IWarehouse) {\n    let stockItem = this.product.stock.find(x => x.warehouse.id === warehouse.id);\n\n    if (!stockItem) {\n      stockItem = {\n        warehouse:\n          this.warehouses.find(x => x.id == warehouse.id) ??\n          this.warehouses.find(x => x.id == 0) ??\n          this.warehouses[0],\n        quantity: \"0\",\n        prices: this.product.prices ?? [],\n      };\n      PriceHelper.formatStockPrices([stockItem], this.appConfig.userSettings, this.i18n);\n    }\n\n    this.updateStock(stockItem);\n  }\n\n  updateStock(stockItem: IStockItem) {\n    if (!stockItem.warehouse.isAllowed) return;\n\n    this.product.selectedStock = stockItem;\n\n    if (\"cartProductId\" in this.product)\n      this.eventAggregator.publish(TKEvent.cartProductsWarehouseChanged, this.product); // TODO rethink this\n  }\n\n  allWarehousesNotAllowed() {\n    return this.product.stock.length > 0 && this.product.stock.every(x => !x.warehouse.isAllowed);\n  }\n\n  getNotAllowedStock() {\n    return this.product.stock.filter(x => !x.warehouse.isAllowed);\n  }\n\n  // External stock helpers: return external stock items grouped by warehouse.groupId\n  getExternalStockByGroup(groupId: number): IStockItem[] {\n    if (!this.product || !this.product.externalStock) return [];\n    return this.product.externalStock.filter(s => s.warehouse && s.warehouse.groupId === groupId);\n  }\n\n  otherStockWarningNeeded(warehouse: IWarehouse) {\n    if (!warehouse) return false;\n    if (warehouse.isExternal) return true;\n\n    const warehouseId = warehouse.id;\n    const userWarehouseId = this.appConfig.userSettings.warehouseId;\n    const isCentral = warehouseId === 1;\n    const isKadaka = warehouseId === 3;\n    const isTartu = warehouseId === 21;\n\n    return !(warehouseId === userWarehouseId || isCentral || isKadaka || isTartu);\n  }\n}\n","module.exports = \"<template>\\n  <require from=\\\"utils/classes/value-converters\\\"></require>\\n  <require from=\\\"utils/classes/tooltip\\\"></require>\\n\\n  <div class=\\\"d-flex justify-content-center align-items-center\\\">\\n    <div class=\\\"dropdown-center\\\">\\n      <button\\n        class=\\\"btn dropdown-toggle btn-outline-dark clickable-important jumping-icon-container\\\"\\n        type=\\\"button\\\"\\n        data-bs-toggle=\\\"dropdown\\\"\\n        aria-expanded=\\\"false\\\">\\n        <template if.bind=\\\"product.selectedStock.warehouse.isExternal\\\"\\n          >\\n          <template if.bind=\\\"product.selectedStock.warehouse.groupId === 2\\\">${'components.products.headers.partner-warehouse' & t}:</template>\\n          <template if.bind=\\\"product.selectedStock.warehouse.groupId === 1\\\">${'components.products.headers.factory-warehouse' & t}:</template>\\n        </template>\\n        <template else>${product.selectedStock.warehouse.name}:</template>\\n        ${ product.selectedStock.quantity | stockName:i18n}\\n\\n        <template if.bind=\\\"otherStockWarningNeeded(product.selectedStock.warehouse)\\\">\\n          <i\\n            if.bind=\\\"product.selectedStock.warehouse.isExternal == false\\\"\\n            class=\\\"jumping-icon bi bi-exclamation-triangle text-warning\\\"\\n            tooltip=\\\"${'components.products.tooltips.other-stock-warning.warehouses.' + product.selectedStock.warehouse.id & t}\\\"></i>\\n          <i\\n            else\\n            class=\\\"jumping-icon bi bi-exclamation-triangle text-warning\\\"\\n            tooltip=\\\"${'components.products.tooltips.other-stock-warning.external.' + product.selectedStock.warehouse.groupId & t}\\\"></i>\\n        </template>\\n      </button>\\n\\n      <ul class=\\\"dropdown-menu\\\">\\n        <li repeat.for=\\\"warehouse of warehouses\\\">\\n          <a\\n            class=\\\"dropdown-item jumping-icon-container\\\"\\n            click.delegate=\\\"updateStockFromWarehouse(warehouse)\\\">\\n            ${warehouse.name}: ${getStockQuantity(warehouse) | stockName:i18n }\\n            <i\\n              if.bind=\\\"otherStockWarningNeeded(warehouse)\\\"\\n              class=\\\"jumping-icon bi bi-exclamation-triangle text-warning\\\"\\n              tooltip=\\\"${'components.products.tooltips.other-stock-warning.warehouses.' + warehouse.id & t}\\\"></i>\\n          </a>\\n        </li>\\n\\n        <li repeat.for=\\\"stockItem of getNotAllowedStock()\\\" class=\\\"non-clickable\\\">\\n          <a class=\\\"dropdown-item disabled\\\">\\n            ${stockItem.warehouse.name}: ${stockItem.quantity | stockName:i18n }\\n          </a>\\n        </li>\\n\\n        <template if.bind=\\\"product.externalStock.length > 0\\\">\\n          <template if.bind=\\\"getExternalStockByGroup(2).length > 0\\\">\\n            <li><hr class=\\\"dropdown-divider\\\" /></li>\\n            <li>\\n              <h6 class=\\\"dropdown-header\\\">${'components.products.headers.partner-warehouse' & t}</h6>\\n            </li>\\n            <li repeat.for=\\\"stockItem of getExternalStockByGroup(2)\\\">\\n              <a\\n                class=\\\"dropdown-item clickable-important jumping-icon-container\\\"\\n                click.delegate=\\\"updateStock(stockItem)\\\">\\n                ${stockItem.quantity | stockName:i18n } - ${ stockItem.displayPrice | currencyFormat\\n                }/${'components.stock.type.pcs' & t}\\n                <i\\n                  class=\\\"jumping-icon bi bi-exclamation-triangle text-warning\\\"\\n                  tooltip=\\\"${'components.products.tooltips.other-stock-warning.external.' + stockItem.warehouse.groupId & t}\\\"></i>\\n              </a>\\n            </li>\\n          </template>\\n          <template if.bind=\\\"getExternalStockByGroup(1).length > 0\\\">\\n            <li><hr class=\\\"dropdown-divider\\\" /></li>\\n            <li>\\n              <h6 class=\\\"dropdown-header\\\">\\n                ${'components.products.headers.factory-warehouse' & t}\\n              </h6>\\n            </li>\\n            <li repeat.for=\\\"stockItem of getExternalStockByGroup(1)\\\">\\n              <a\\n                class=\\\"dropdown-item clickable-important jumping-icon-container\\\"\\n                click.delegate=\\\"updateStock(stockItem)\\\">\\n                ${stockItem.quantity | stockName:i18n } - ${ stockItem.displayPrice | currencyFormat\\n                }/${'components.stock.type.pcs' & t}\\n                <i\\n                  class=\\\"jumping-icon bi bi-exclamation-triangle text-warning\\\"\\n                  tooltip=\\\"${'components.products.tooltips.other-stock-warning.external.' + stockItem.warehouse.groupId & t}\\\"></i>\\n              </a>\\n            </li>\\n          </template>\\n        </template>\\n      </ul>\\n    </div>\\n\\n    <a\\n      if.bind=\\\"product.stock.length == 0 && product.externalStock.length == 0 || allWarehousesNotAllowed()\\\"\\n      class=\\\"icon-link icon-link-hover text-reset\\\"\\n      click.trigger=\\\"takeIntoStockUserWish(product.code, product.id)\\\">\\n      <i\\n        class=\\\"bi bi-bell clickable-important\\\"\\n        tooltip=\\\"${'components.products.tooltips.interested-take-into-stock' & t}\\\"></i>\\n    </a>\\n  </div>\\n</template>\\n\";","import { I18N } from \"aurelia-i18n\";\nimport { Utils } from \"utils/helpers/utils\";\nimport { EventAggregator } from \"aurelia-event-aggregator\";\nimport { CategoryService } from \"services/product/category-service\";\nimport { AppConfig } from \"app-config\";\nimport { Router, NavigationInstruction, PipelineResult } from \"aurelia-router\";\nimport { IParentItem } from \"domain/Base/IParentItem\";\nimport { LogManager, autoinject } from \"aurelia-framework\";\nimport $ from \"jquery\";\nimport \"bootstrap\";\n\nexport const log = LogManager.getLogger(\"app.search.categories\");\n\n@autoinject\nexport class Categories {\n  // Cache\n  categories: IParentItem[];\n\n  constructor(\n    private router: Router,\n    private eventAggregator: EventAggregator,\n    private appConfig: AppConfig, // used by HTML\n    private categoryService: CategoryService,\n    private i18n: I18N,\n  ) {}\n\n  // called only once: when the site is opened (and the user probably isn't logged in yet)\n  activate() {\n    // If user is already logged in, but refreshed the page\n    if (this.appConfig.isLoggedIn) this.loadCategoryMenu();\n\n    // attached() was too late, the \"router:navigation:success\" event had already been fired\n    this.eventAggregator.subscribe(\n      \"router:navigation:success\",\n      (event: { instruction: NavigationInstruction; result: PipelineResult }) => {\n        const currentRoute = event.instruction.config.name;\n        if (!currentRoute) return;\n\n        // Run only after successful login\n        if (this.appConfig.isLoggedIn && this.categories === undefined) this.loadCategoryMenu();\n      },\n    );\n  }\n\n  // #region LOAD\n\n  loadCategoryMenu() {\n    this.categoryService\n      .fetchCategories()\n      .then(result => {\n        this.categories = result;\n        this.positionSubmenu();\n      })\n      .catch(error => Utils.showErrorToast(log, Utils.getErrorMessage(error, this.i18n)));\n  }\n\n  // #endregion\n\n  // #region ACTIONS\n\n  openCategory(category: IParentItem) {\n    let id = category.id;\n\n    if (id == 6 || id == 7 || id == 8 || id == 10) {\n      // Car categories\n      this.router.navigateToRoute(\"categoryManufacturers\", { categoryId: category.id });\n      return;\n    }\n\n    if (id == 54)\n      // 54 is alias for 10\n      id = 10;\n\n    this.router.navigateToRoute(\"categoryProducts\", {\n      categoryId: id,\n      page: 1,\n    });\n  }\n\n  // #endregion\n\n  // #region HELPERS\n\n  positionSubmenu() {\n    $(() => {\n      function position(element: JQuery<HTMLElement>) {\n        if (element.css(\"top\") != \"0px\") return;\n\n        const parentTop = $(\"#level-1-menu\").offset()?.top ?? 0;\n        const currentTop = element.offset()?.top ?? 0;\n\n        const containerWidth = $(\".container\").first().width() ?? 0;\n        const parentWidth = $(\"#level-1-menu\").outerWidth() ?? 0;\n\n        const windowHeight = window.innerHeight ?? 0;\n        const parentHeight = $(\"#level-1-menu\").innerHeight() ?? 0;\n\n        element.css({\n          position: \"absolute\",\n          top: parentTop - currentTop + \"px\",\n          left: \"100%\",\n          width: containerWidth - parentWidth + \"px\",\n          \"min-height\": parentHeight + \"px\",\n          \"max-height\": windowHeight - parentTop + \"px\",\n          overflow: \"scroll\",\n        });\n      }\n\n      // Submenu click support - (c) https://stackoverflow.com/a/45755948\n      $(\".dropdown-menu a.dropdown-toggle\").on(\"click\", function () {\n        if (!$(this).next().hasClass(\"show\"))\n          $(this).parents(\".dropdown-menu\").first().find(\".show\").removeClass(\"show\");\n\n        const subMenu = $(this).next(\".dropdown-menu\");\n        subMenu.toggleClass(\"show\");\n        if (subMenu.hasClass(\"show\")) position(subMenu);\n\n        return false;\n      });\n\n      $(\".level-2-menu .dropdown-item\").on(\"click\", function () {\n        $(this).parents().removeClass(\"hover-show show\");\n      });\n\n      $(\".dropdown-menu a.dropdown-toggle\").on(\"mouseenter\", function () {\n        if ($(\"#level-1-menu\").find(\".show\").length > 0) return;\n\n        const menu = $(this).next();\n        if (!menu.hasClass(\"hover-show\")) {\n          menu.addClass(\"hover-show\");\n          position(menu);\n        }\n      });\n      $(\".dropdown-menu a.dropdown-toggle\").on(\"mouseleave\", function () {\n        if ($(this).next(\".dropdown-menu:hover\").length == 0)\n          $(this).next().removeClass(\"hover-show\");\n      });\n      $(\".level-2-menu\").on(\"mouseleave\", function () {\n        if ($(this).prev(\".dropdown-toggle:hover\").length == 0) $(this).removeClass(\"hover-show\");\n      });\n    });\n  }\n\n  // #endregion\n}\n","module.exports = \"<template>\\n\\n  <div class=\\\"dropdown\\\">\\n    <button type=\\\"button\\\" class=\\\"btn btn-outline-primary dropdown-toggle\\\" data-bs-toggle=\\\"dropdown\\\">\\n      ${'pages.category.button'& t}\\n    </button>\\n\\n    <div id=\\\"level-1-menu\\\" class=\\\"dropdown-menu\\\">\\n      <div repeat.for=\\\"category of categories\\\" class=\\\"btn-group dropdown-submenu dropend w-100\\\">\\n        <a if.bind=\\\"category.children.length < 1\\\" class=\\\"dropdown-item\\\" href=\\\"#\\\"\\n           click.delegate=\\\"openCategory(category)\\\">\\n          ${('pages.category.categories.' + category.id) & t: { 'defaultValue': category.name }}\\n        </a>\\n        <template else>\\n          <a class=\\\"dropdown-item dropdown-toggle\\\" role=\\\"button\\\" href=\\\"#\\\">\\n            ${('pages.category.categories.' + category.id) & t: { 'defaultValue': category.name }}\\n          </a>\\n\\n          <div class=\\\"dropdown-menu level-2-menu col-sm\\\">\\n            <div repeat.for=\\\"subcategory of category.children\\\">\\n              <a if.bind=\\\"subcategory.children.length < 1\\\"\\n                 class=\\\"dropdown-item dropdown-header font-weight-bold text-primary\\\" href=\\\"#\\\"\\n                 click.delegate=\\\"openCategory(subcategory)\\\">\\n                ${('pages.category.categories.' + subcategory.id) & t: { 'defaultValue':\\n                subcategory.name }}\\n              </a>\\n              <template else>\\n                <h6 class=\\\"dropdown-header text-primary\\\">\\n                  ${('pages.category.categories.' + subcategory.id) & t: { 'defaultValue':\\n                  subcategory.name }}\\n                </h6>\\n\\n                <a repeat.for=\\\"subcategory2 of subcategory.children\\\" class=\\\"dropdown-item\\\"\\n                   click.delegate=\\\"openCategory(subcategory2)\\\" href=\\\"#\\\">\\n                  ${('pages.category.categories.' + subcategory2.id) & t: { 'defaultValue':\\n                  subcategory2.name }}\\n                </a>\\n              </template>\\n            </div>\\n          </div>\\n        </template>\\n      </div>\\n    </div>\\n  </div>\\n\\n</template>\\n\";","import { TKEvent } from \"utils/enums/TKEvent\";\nimport { SearchType } from \"utils/enums/SearchType\";\nimport { EventAggregator } from \"aurelia-event-aggregator\";\nimport { AppConfig } from \"app-config\";\nimport { Router, NavigationInstruction, PipelineResult } from \"aurelia-router\";\nimport { LogManager, autoinject, observable } from \"aurelia-framework\";\nimport { Utils } from \"utils/helpers/utils\";\n\nexport const log = LogManager.getLogger(\"app.search.search-bar\");\n\n@autoinject\nexport class SearchBar {\n  // Main variables\n  @observable query: string;\n  @observable type: SearchType;\n  page = 1;\n  extendedSearch = false;\n\n  // Search delay variables\n  searchDelayMilliseconds = 500;\n  searchTimer: NodeJS.Timeout;\n\n  // Other variables\n  hasFocus = true;\n\n  constructor(\n    private router: Router,\n    private eventAggregator: EventAggregator,\n    private appConfig: AppConfig\n  ) {\n    this.eventAggregator.subscribeOnce(TKEvent.userSettingsLoaded, () => {\n      if (this.type === undefined)\n        this.type = this.appConfig.userSettings.defaultSearchLimitation;\n    });\n    this.eventAggregator.subscribe(\n      \"router:navigation:success\",\n      (event: {\n        instruction: NavigationInstruction;\n        result: PipelineResult;\n      }) => {\n        const currentRoute = event.instruction.config.name;\n        const currentParams = event.instruction.params;\n\n        this.updateFromRoute(currentRoute, currentParams);\n      }\n    );\n  }\n\n  activate() {\n    const instruction = this.router.currentInstruction.getAllInstructions()[0];\n    this.updateFromRoute(instruction.config.name, instruction.params);\n  }\n\n  // #region Observables\n\n  queryChanged(newQuery: string, oldQuery: string) {\n    // value is set from undefined to something for the first time\n    if (oldQuery === undefined)\n      return;\n\n    const query = newQuery.trim();\n    clearTimeout(this.searchTimer);\n\n    if (query.length == 0) {\n      if (this.router.currentInstruction.config.name == \"searchResult\")\n        this.router.navigateToRoute(\"home\");\n\n      return;\n    }\n\n    if (query.length < 3)\n      return;\n\n    this.page = 1; // if the query changes, we want to make sure the page is reset\n    this.delayedSearch(query, this.page, this.type, this.extendedSearch);\n  }\n\n  typeChanged(newType: SearchType, oldType: SearchType) {\n    if (oldType === undefined)\n      return;\n\n    this.delayedSearch(this.query, this.page, newType,  this.extendedSearch);\n  }\n\n  // #endregion\n\n  // #region ACTIONS\n\n  delayedSearch(query: string, page: number, type: SearchType, extendedSearch: boolean) {\n    if (query.length < 3) return;\n\n    // eslint-disable-next-line @typescript-eslint/no-this-alias\n    const that = this;\n    clearTimeout(this.searchTimer);\n    this.searchTimer = setTimeout(function () {\n      that.search(query, page, type, extendedSearch);\n    }, this.searchDelayMilliseconds);\n  }\n\n  search(query: string, page: number, type: SearchType, extendedSearch:  boolean) {\n    this.router.navigateToRoute(\"searchResult\", {\n      query: Utils.encode(query),\n      page: page,\n      type: type,\n      extendedSearch: extendedSearch,\n    });\n  }\n\n  // #endregion\n\n  // #region HELPERS\n\n  updateFromRoute(currentRoute: string | undefined, currentParams: any) {\n    if (!currentRoute)\n      return;\n\n    if (currentRoute == \"searchResult\" || currentRoute == \"carVehiclesQuery\") {\n      this.query = decodeURIComponent(currentParams.query);\n      // make sure these are numbers\n      this.page = parseInt(currentParams.page ?? \"1\");\n      this.type = parseInt(currentParams.type ?? SearchType.All);\n    } else {\n      this.query = \"\";\n\n      if (currentRoute == \"home\") this.hasFocus = true;\n    }\n  }\n\n  // #endregion\n}\n","module.exports = \"<template>\\n  <div class=\\\"input-group sticky-top search-box py-1\\\">\\n    <compose view-model=\\\"components/product/search/categories\\\"></compose>\\n\\n    <i class=\\\"bi-search input-group-text\\\"></i>\\n    <input\\n      id=\\\"search-bar\\\"\\n      focus.bind=\\\"hasFocus\\\"\\n      type=\\\"search\\\"\\n      minlength=\\\"3\\\"\\n      class=\\\"form-control w-50\\\"\\n      placeholder=\\\"${'components.search-bar.hint' & t}\\\"\\n      value.bind=\\\"query\\\" />\\n\\n    <select class=\\\"form-select\\\" value.bind=\\\"type\\\">\\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\\n    <!--If this breaks, add width-inital to style.css (input.group.fix)-->\\n    <compose view-model=\\\"components/car/car-tree\\\"></compose>\\n  </div>\\n</template>\\n\";","import { I18N } from \"aurelia-i18n\";\nimport { Router } from \"aurelia-router\";\nimport { IRvsOrder } from \"domain/Sale/IRvsOrder\";\nimport { LogManager, autoinject, bindable } from \"aurelia-framework\";\nimport $ from \"jquery\";\nimport \"bootstrap\";\nimport { OrderService } from \"services/sale/order-service\";\nimport { Utils } from \"utils/helpers/utils\";\nimport { EventAggregator } from \"aurelia-event-aggregator\";\nimport { TKEvent } from \"utils/enums/TKEvent\";\nimport { Collapse } from \"bootstrap\";\n\nexport const log = LogManager.getLogger(\"app.components.order-list\");\n\n@autoinject\nexport class OrderListCustomElement {\n  @bindable orders: IRvsOrder[];\n\n  options = {\n    showInvoiceId: false,\n    showWarehouse: false,\n    showTransport: false,\n    showAddToCart: true,\n    showAddToReturn: true,\n    showConvertToCart: true,\n  };\n\n  constructor(\n    private orderService: OrderService,\n    private eventAggregator: EventAggregator,\n    private router: Router,\n    private i18n: I18N\n  ) {}\n\n  attached() {\n    this.orders.forEach((order) => {\n      order.originalId = order.originalId.replace(\"*INTERNET*\", \"\");\n    });\n  }\n\n  convertToCart(order: IRvsOrder) {\n    this.orderService\n      .convertRvsOrderToCart(order.id)\n      .then(() => {\n        this.eventAggregator.publish(TKEvent.cartProductsChanged);\n        Utils.showSuccessToast(\n          this.i18n.tr(\"pages.orders.messages.convert-to-cart\")\n        );\n      })\n      .catch((error) =>\n        Utils.showErrorToast(\n          log,\n          Utils.getErrorMessage(error, this.i18n)\n        )\n      );\n  }\n\n  toggleProductList(target: HTMLElement, order: IRvsOrder) {\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 productListElement = document.querySelector(\n        `[data-product-list=\"${order.id}\"]`\n      );\n      if (productListElement)\n        new Collapse(productListElement, {\n          parent: \"#accordion-order\",\n        }).toggle();\n    });\n  }\n\n  canConvertToCart(order: IRvsOrder): boolean {\n    return order.products.some((p) => Number(p.amount) > 0);\n  }\n}\n","module.exports = \"<template>\\n  <require from=\\\"utils/classes/value-converters\\\"></require>\\n  <require from=\\\"components/cart/nested-cart-product-list\\\"></require>\\n\\n  <table id=\\\"accordion-order\\\" class=\\\"table w-100\\\">\\n    <thead>\\n      <tr>\\n        <th>${'pages.orders.headers.number' & t}</th>\\n        <th>${'pages.orders.headers.original-number' & t}</th>\\n        <th>${'pages.orders.headers.comments' & t}</th>\\n        <th class=\\\"text-end\\\">${'pages.orders.headers.total' & t}</th>\\n        <th class=\\\"text-end\\\" if.bind=\\\"options.showConvertToCart\\\">\\n          ${'components.products.headers.add-to-cart' & t}\\n        </th>\\n      </tr>\\n    </thead>\\n\\n    <tbody repeat.for=\\\"order of orders\\\" class=\\\"hover\\\">\\n      <tr class=\\\"clickable\\\" click.delegate=\\\"toggleProductList($event.target, order)\\\">\\n        <td><span>${order.id}</span></td>\\n        <td><span>${order.originalId}</span></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-end clickable\\\" if.bind=\\\"options.showConvertToCart\\\">\\n          <button\\n            if.bind=\\\"canConvertToCart(order)\\\"\\n            type=\\\"button\\\"\\n            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\\n            class=\\\"collapse px-5\\\"\\n            data-product-list.bind=\\\"order.id\\\"\\n            data-bs-parent=\\\"#accordion-order\\\">\\n            <nested-cart-product-list\\n              products.bind=\\\"order.products\\\"\\n              rvs-order.bind=\\\"order\\\"\\n              options.bind=\\\"options\\\">\\n            </nested-cart-product-list>\\n          </div>\\n        </td>\\n      </tr>\\n    </tbody>\\n  </table>\\n</template>\\n\";","import { bindable } from 'aurelia-framework';\n\nexport class OrderSearchBarCustomElement {\n  @bindable searchIcon: string;\n  @bindable searchPlaceholder: string;\n\n  @bindable searchText: string;\n  @bindable searchDateFrom: string;\n  @bindable searchDateTo: string;\n\n  hasFocus = true;\n}\n","module.exports = \"<template>\\n  <div class=\\\"input-group mb-2\\\">\\n    <i class='bi-search input-group-text'></i>\\n    <i class='bi-${searchIcon} input-group-text'></i>\\n\\n    <input focus.bind=\\\"hasFocus\\\" type=\\\"text\\\" class=\\\"form-control\\\"\\n           placeholder.bind=\\\"searchPlaceholder\\\" value.two-way=\\\"searchText\\\">\\n\\n    <i class='bi-calendar-range input-group-text'></i>\\n    <input type=\\\"date\\\" class=\\\"form-control\\\" value.two-way=\\\"searchDateFrom\\\" placeholder=\\\"yyyy-mm-dd\\\"\\n           pattern=\\\"^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9])$\\\">\\n\\n    <i class='bi-three-dots input-group-text'></i>\\n    <input type=\\\"date\\\" class=\\\"form-control\\\" value.two-way=\\\"searchDateTo\\\" placeholder=\\\"yyyy-mm-dd\\\"\\n           pattern=\\\"^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9])$\\\">\\n  </div>\\n</template>\\n\";","import { I18N } from \"aurelia-i18n\";\nimport { IWarehouse } from \"domain/Client/IWarehouse\";\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, observable } from \"aurelia-framework\";\nimport { ICart } from \"domain/Cart/ICart\";\nimport { ReturnService } from \"services/sale/return-service\";\nimport printJS from \"print-js\";\n\nexport const log = LogManager.getLogger(\"app.components.return.index\");\n\n@autoinject\nexport class ReturnIndexCustomElement {\n  warehouses: IWarehouse[];\n\n  returnCart: ICart;\n  error: string;\n\n  @observable({ changeHandler: \"queryChanged\" }) searchText = \"\";\n  @observable({ changeHandler: \"queryChanged\" }) searchDateFrom = \"\";\n  @observable({ changeHandler: \"queryChanged\" }) searchDateTo = \"\";\n\n  @bindable comment = \"\";\n\n  totalWithoutVat = 0;\n  totalVat = 0;\n  totalWithVat = 0;\n\n  options = {\n    showImages: false,\n    showEan: false,\n    showStock: false,\n    showWarehouse: false,\n    showReason: true,\n    showDisplayPrice: false,\n    isReturnCart: true,\n  };\n\n  constructor(\n    private returnService: ReturnService,\n    private router: Router,\n    private eventAggregator: EventAggregator,\n    private appConfig: AppConfig,\n    private i18n: I18N\n  ) {\n    this.eventAggregator.subscribe(TKEvent.cartProductsChanged, () => {\n      this.updateTotal();\n    });\n    this.eventAggregator.subscribe(TKEvent.returnCartChanged, (cart: ICart) => {\n      this.returnCart = cart;\n    });\n    this.eventAggregator.subscribeOnce(TKEvent.userSettingsLoaded, () => {\n      this.loadReturn();\n    });\n  }\n\n  attached() {\n    if (this.appConfig.userSettings) this.loadReturn();\n  }\n\n  // #region LISTENERS, OBSERVABLES\n\n  updateTotal() {\n    if (this.returnCart == undefined || this.returnCart.products == undefined) return;\n\n    this.totalWithoutVat = 0;\n\n    this.returnCart.products.forEach(p => {\n      if (p.finalPrice != null) this.totalWithoutVat += p.finalPrice * 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  queryChanged(newValue: string, oldValue: 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\n    if (this.searchDateFrom && !this.searchDateFrom.match(dateRegex)) return;\n\n    if (this.searchDateTo && !this.searchDateTo.match(dateRegex)) return;\n\n    const params = {\n      page: 1,\n    } as any;\n\n    if (this.searchText != \"\") params.query = Utils.encode(this.searchText);\n\n    if (this.searchDateFrom != \"\") params.dateFrom = Utils.encode(this.searchDateFrom);\n\n    if (this.searchDateTo != \"\") params.dateTo = Utils.encode(this.searchDateTo);\n\n    this.router.navigateToRoute(\"invoiceIndex\", params);\n  }\n\n  // #endregion\n\n  // #region LOAD\n\n  loadReturn() {\n    this.returnService\n      .fetchCurrent()\n      .then(result => {\n        this.returnCart = result;\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  sendReturn() {\n    let cancel = false;\n    this.returnCart.products.forEach(product => {\n      if (cancel) return;\n\n      if (!product.comment || !product.comment.trim()) cancel = true;\n    });\n\n    if (cancel) {\n      Utils.showErrorToast(log, this.i18n.tr(\"pages.returns.errors.cart.product-reason-missing\"));\n      return;\n    }\n\n    this.returnService\n      .sendReturn(this.comment)\n      .then(updatedCart => {\n        const returnId = this.returnCart.id;\n\n        this.returnCart = updatedCart;\n        this.updateTotal();\n        this.eventAggregator.publish(TKEvent.returnCartChanged, updatedCart);\n        this.eventAggregator.publish(TKEvent.cartProductsChanged);\n        this.eventAggregator.publish(TKEvent.returnSent);\n\n        if (confirm(this.i18n.tr(\"pages.returns.messages.print-message\")))\n          this.printMessage(returnId);\n      })\n      .catch(() => Utils.showErrorToast(log, this.i18n.tr(\"pages.returns.errors.cart.send\")));\n  }\n\n  clearReturn() {\n    if (!confirm(this.i18n.tr(\"pages.returns.messages.confirm-clear\"))) return;\n\n    this.returnService.clearReturnCart().then(() => {\n      this.loadReturn();\n      this.eventAggregator.publish(TKEvent.cartProductsChanged);\n    });\n  }\n\n  // #endregion\n\n  // #region HELPERS\n\n  printMessage(id: number) {\n    this.returnService.fetchReturnText(id).then(result => {\n      printJS({ printable: result, type: \"raw-html\" });\n    });\n  }\n\n  // #endregion\n}\n","module.exports = \"<template>\\n  <require from=\\\"components/cart/cart-product-list\\\"></require>\\n  <require from=\\\"components/sale/order/order-search-bar\\\"></require>\\n  <require from=\\\"components/general/loading\\\"></require>\\n  <require from=\\\"utils/classes/value-converters\\\"></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=\\\"returnCart.products !== undefined && returnCart.products.length !== 0\\\">\\n    <cart-product-list products.bind=\\\"returnCart.products\\\" options.bind=\\\"options\\\">\\n    </cart-product-list>\\n\\n    <div class=\\\"input-group mt-3\\\">\\n      <div class=\\\"input-group-prepend\\\">\\n        <button type=\\\"button\\\" class=\\\"btn btn-danger\\\" click.trigger=\\\"clearReturn()\\\">\\n          ${'pages.returns.buttons.clear' & t}\\n        </button>\\n      </div>\\n\\n      <span class=\\\"input-group-text form-control\\\"></span>\\n\\n      <div class=\\\"input-group-append\\\">\\n        <span class=\\\"input-group-text text-end\\\">\\n          </b>${'pages.returns.fields.total' & t} ${totalWithVat | currencyFormat}</b>\\n        </span>\\n      </div>\\n    </div>\\n\\n    <div class=\\\"input-group mt-0\\\">\\n      <textarea class=\\\"form-control\\\" rows=\\\"1\\\" value.bind=\\\"comment\\\"\\n                placeholder=\\\"${'pages.returns.fields.comment-hint' & t}\\\"></textarea>\\n\\n      <div class=\\\"input-group-append\\\">\\n        <button type=\\\"button\\\" class=\\\"btn btn-success\\\" click.trigger=\\\"sendReturn()\\\">\\n          ${'pages.returns.buttons.submit' & t}\\n        </button>\\n      </div>\\n    </div>\\n  </template>\\n\\n  <div else class=\\\"mt-3\\\">\\n    <loading error.bind=\\\"error\\\" error-title=\\\"${'pages.returns.errors.cart.load' & t}\\\"\\n             error-details-class=\\\"font-italic\\\" error-details.bind=\\\"error\\\"\\n             not-found.bind=\\\"returnCart.products !== undefined && returnCart.products.length == 0\\\"\\n             not-found-title=\\\"${'pages.returns.errors.cart.not-found.title' & t}\\\"\\n             not-found-details=\\\"${'pages.returns.errors.cart.not-found.details' & t}\\\">\\n    </loading>\\n  </div>\\n\\n</template>\\n\";","import { EventAggregator } from \"aurelia-event-aggregator\";\nimport { TKEvent } from \"utils/enums/TKEvent\";\nimport { ReturnService } from \"services/sale/return-service\";\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 { 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.components.return.list\");\n\n@autoinject\nexport class ReturnListCustomElement {\n  returns: ICart[] | undefined;\n  error: string;\n\n  @observable({ changeHandler: \"queryChanged\" }) currentPage = 1;\n  lastPage = 1;\n\n  options = {\n    showInvoiceId: true,\n    showWarehouse: false,\n    showTransport: false,\n    showAddToCart: false,\n    showAddToReturn: false,\n  };\n\n  constructor(\n    private returnService: ReturnService,\n    private router: Router,\n    private appConfig: AppConfig, // used by html\n    private eventAggregator: EventAggregator,\n    private i18n: I18N\n  ) {\n    this.eventAggregator.subscribeOnce(TKEvent.userSettingsLoaded, () => {\n      this.loadReturns();\n    });\n    this.eventAggregator.subscribe(TKEvent.returnSent, () => {\n      this.loadReturns();\n    });\n  }\n\n  attached() {\n    if (this.appConfig.userSettings) this.loadReturns();\n  }\n\n  queryChanged(newValue: number | string, oldValue: number | string) {\n    // Required value haven't been set yet\n    if (oldValue === undefined) return;\n\n    // Clear the old result so the loading icon could activate again\n    this.returns = undefined;\n\n    // Since navigating to the same route doesn't actually refresh the page\n    if (this.appConfig.userSettings) this.loadReturns();\n  }\n\n  // #region LOAD\n\n  loadReturns() {\n    this.returnService\n      .fetchReturns(this.currentPage)\n      .then((result) => {\n        this.returns = result.items;\n        this.currentPage = result.currentPage;\n        this.lastPage = result.lastPage;\n\n        this.returns.forEach((returnCart) => {\n          // make it UTC ISO8601\n          returnCart.closedDateTime = new Date(returnCart.closedDateTime + \"Z\");\n\n          returnCart.total = 0;\n          returnCart.products.forEach(\n            (product) =>\n              (returnCart.total += (product.finalPrice ?? 0) * product.quantity)\n          );\n        });\n\n        this.sortedListener();\n        Utils.loadSortable();\n      })\n      .catch((error) => (this.error = Utils.getErrorMessage(error, this.i18n)));\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, returnCart: 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 collapseElement = document.querySelector(\n        `[data-product-list=\"${returnCart.id}\"]`\n      );\n\n      if (collapseElement)\n        return new Collapse(collapseElement, {\n          parent: \"#accordion-invoice\",\n        }).toggle();\n    });\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              $(`.return-row[data-return=\"${$(this).attr(\"data-return\")}\"]`)\n            );\n          });\n      });\n    });\n  }\n\n  printMessage(returnCart: ICart) {\n    returnCart.loading = true;\n    this.returnService\n      .fetchReturnText(returnCart.id)\n      .then((result) => {\n        printJS({ printable: result, type: \"raw-html\" });\n      })\n      .finally(() => (returnCart.loading = false));\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=\\\"utils/classes/value-converters\\\"></require>\\n  <require from=\\\"!style-loader!css-loader!bootstrap-sortable/Contents/bootstrap-sortable.css\\\">\\n  </require>\\n\\n  <template if.bind=\\\"returns !== undefined && returns.length > 0\\\">\\n    <table id=\\\"accordion-invoice\\\"\\n           class=\\\"table table-borderless table-sm table-responsive-md sortable accordion\\\">\\n      <thead>\\n        <tr>\\n          <th data-defaultsign=\\\"nospan\\\">${'pages.returns.headers.number' & t}</th>\\n          <th data-defaultsign=\\\"nospan\\\">${'pages.returns.headers.creator' & t}</th>\\n          <th data-defaultsign=\\\"nospan\\\">${'pages.returns.headers.created' & t}</th>\\n          <th data-defaultsign=\\\"nospan\\\">${'pages.returns.headers.comments' & t}</th>\\n          <th data-defaultsign=\\\"nospan\\\" class=\\\"text-end\\\">${'pages.returns.headers.total' & t}</th>\\n          <th data-defaultsort=\\\"disabled\\\"></th>\\n        </tr>\\n      </thead>\\n      ​\\n      <tbody repeat.for=\\\"returnCart of returns\\\" class=\\\"hover\\\">\\n        <tr class=\\\"return-row clickable\\\" data-order.bind=\\\"returnCart.id\\\"\\n            click.delegate=\\\"toggleProductList($event.target, returnCart)\\\">\\n          <td><span>${returnCart.id}</span></td>\\n          <td><span>${returnCart.creator}</span></td>\\n          <td data-dateformat=\\\"${appConfig.datetimeFormat}\\\">\\n            <span>${returnCart.closedDateTime | datetimeFormat}</span>\\n          </td>\\n          <td><span>${returnCart.comment}</span></td>\\n          <td class=\\\"text-end\\\" data-value.bind=\\\"returnCart.total\\\">\\n            <span>${returnCart.total | currencyFormat}</span>\\n          </td>\\n          <td class=\\\"text-end ${returnCart.loading ? 'loading' : ''}\\\">\\n            <a href=\\\"#\\\" type=\\\"button\\\" click.trigger=\\\"printMessage(returnCart)\\\">\\n              ${'pages.returns.buttons.print' & t}\\n            </a>\\n          </td>\\n        </tr>\\n\\n        <tr class=\\\"product-list-row hover\\\" data-disablesort=\\\"true\\\" data-order.bind=\\\"returnCart.id\\\">\\n          <td colspan=\\\"6\\\" class=\\\"p-0\\\">\\n            <div class=\\\"collapse px-5\\\" data-bs-parent=\\\"#accordion-invoice\\\"\\n                 data-product-list.bind=\\\"returnCart.id\\\">\\n              <nested-cart-product-list products.bind=\\\"returnCart.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.returns.errors.history.load' & t}\\\"\\n           error-details.bind=\\\"error\\\" not-found.bind=\\\"returns !== undefined && returns.length == 0\\\"\\n           not-found-title=\\\"${'pages.returns.errors.history.not-found.title' & t}\\\"\\n           not-found-details=\\\"${'pages.returns.errors.history.not-found.details' & t}\\\">\\n  </loading>\\n\\n</template>\\n\";"],"sourceRoot":""}