{"version":3,"sources":["webpack:///src/var/www/virtualhost/client.tk.salome.ee/www/staging/src/app-config.ts","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///src/var/www/virtualhost/client.tk.salome.ee/www/staging/src/components/car/car-category-menu.ts","webpack:///./src/components/car/car-category-menu.html","webpack:///src/var/www/virtualhost/client.tk.salome.ee/www/staging/src/components/car/car-menu.ts","webpack:///./src/components/car/car-menu.html","webpack:///src/var/www/virtualhost/client.tk.salome.ee/www/staging/src/components/car/car-tree.ts","webpack:///./src/components/car/car-tree.html"],"names":["getLogger","config","eventAggregator","isLoggedIn","cars","this","getAllCars","apiUrl","get","setToken","localStorage","getItem","isDebugEnabled","setLevel","logLevel","debug","initSentry","AppConfig","datetimeFormat","dateFormat","sentryOptions","dsn","release","environment","integrations","ignoreResourceSpans","enableLongAnimationFrame","levels","networkDetailAllowUrls","maskAllText","maskAllInputs","blockAllMedia","types","enableLogs","attachStacktrace","tracesSampleRate","ignoreSpans","name","tracePropagationTargets","replaysSessionSampleRate","replaysOnErrorSampleRate","beforeSend","getEncodedJWT","encodedJwt","token","rememberMe","decodedJwt","undefined","isTokenExpired","removeToken","setItem","updateEmail","email","removeItem","publish","sessionEnded","isSessionExpired","Error","now","Date","valueOf","exp","setSettings","settings","userSettings","contractSettings","vatRate","userSettingsLoaded","setAllowedWarehouses","warehouses","allowedWarehouses","warehousesLoaded","setTransportOptions","transportOptions","transportOptionsLoaded","addCar","car","sameCarIndex","findIndex","x","id","splice","unshift","JSON","stringify","getSelectedCar","length","storedCars","parse","map","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","code","keys","Object","resolve","module","exports","log","router","i18n","hasFocus","bind","level","Manufacturers","filterPlaceholder","tr","Models","Vehicles","openManufacturers","navigateToRoute","categoryId","openModels","manufacturer","model","encode","openVehicles","openProducts","page","vehicleId","goBack","Products","CarCategoryMenuCustomElement","carDetailProperties","fullName","licencePlate","vin","capacityCcm","powerKw","motorCodes","constructionType","color","fuel","gearbox","registeredDate","originCountry","nextInspectionDate","drivingAxles","attached","carDetails","document","getElementById","filterValue","toggle","manuId","modelId","openCatalogues","parameters","query","filterText","catalogueId","openTires","tire","decoded","decodeTireString","filters","width","height","diameter","type","isValidTireString","CarMenuCustomElement","appConfig","categorizeCars","carButtonClicked","currentInstruction","getAllInstructions","find","instruction","navigateBack","loadCatalogueFor","carsToday","carsThisWeek","carsLastWeek","carsOlder","startOfToday","setHours","startOfThisWeek","getDay","startOfLastWeek","oneDay","filter","timeAddedToSearch","carCategories","label","list","CarTree"],"mappings":"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","file":"app~d0ae3f07.ed5ed2f6e5e631b535fa.chunk.js","sourcesContent":["import { IWarehouse } from \"domain/Client/IWarehouse\";\nimport { TKEvent } from \"utils/enums/TKEvent\";\nimport { EventAggregator } from \"aurelia-event-aggregator\";\nimport { IUserSettings } from \"domain/Settings/IUserSettings\";\nimport { ICar } from \"domain/Car/ICar\";\nimport { LogManager, autoinject } from \"aurelia-framework\";\nimport { AureliaConfiguration } from \"aurelia-configuration\";\nimport { jwtDecode, JwtPayload } from \"jwt-decode\";\nimport { IContractSettings } from \"domain/Settings/IContractSettings\";\nimport { ISettings } from \"domain/Settings/ISettings\";\nimport * as Sentry from \"@sentry/browser\";\nimport { sentryBeforeSendFilter, sentryEnvironment } from \"utils/helpers/sentry-helper\";\n\nexport const log = LogManager.getLogger(\"app.config\");\n\n@autoinject\nexport class AppConfig {\n  // Configure stuff\n  public static vatRate: number | undefined = undefined;\n  public static datetimeFormat = \"DD.MM.YYYY HH:mm\";\n  public static dateFormat = \"DD.MM.YYYY\";\n\n  // Instance mirrors for template bindings (templates read appConfig.dateFormat etc.)\n  get datetimeFormat() {\n    return AppConfig.datetimeFormat;\n  }\n  get dateFormat() {\n    return AppConfig.dateFormat;\n  }\n\n  // API and user stuff\n  public apiUrl: string;\n  private encodedJwt?: string;\n  private decodedJwt?: JwtPayload;\n  public isLoggedIn = false;\n  public email?: string;\n\n  // Remember stuff\n  public cars: ICar[] = this.getAllCars();\n\n  public userSettings: IUserSettings;\n  public contractSettings: IContractSettings;\n\n  public transportOptions: Map<string, string>;\n  public allowedWarehouses: IWarehouse[];\n\n  // Cannot use services here, because they depend on AppConfig\n  constructor(\n    config: AureliaConfiguration,\n    private eventAggregator: EventAggregator,\n  ) {\n    this.apiUrl = config.get(\"apiUrl\");\n\n    this.setToken(localStorage.getItem(\"token\"), false);\n\n    const isDebugEnabled = !!config.get(\"debug\");\n\n    if (isDebugEnabled) LogManager.setLevel(LogManager.logLevel.debug);\n\n    this.initSentry(config, isDebugEnabled);\n  }\n\n  initSentry(config: AureliaConfiguration, isDebugEnabled: boolean) {\n    const sentryOptions = {\n      dsn: \"https://0e2d00fc00294b329ea3a78a1da7bfd3@o403173.ingest.sentry.io/5265383\",\n      release: \"ac91362e79b2bbe077ad29307215ef368223f329\",\n      environment: sentryEnvironment(\"Staging\"),\n      integrations: [\n        Sentry.browserTracingIntegration({\n          // Every pageload emitted one span per static chunk — around 20 of them, and by far\n          // the largest single source of span volume. The filenames are content-hashed, so\n          // they tell us nothing we cannot get from the build.\n          ignoreResourceSpans: [\n            \"resource.script\",\n            \"resource.css\",\n            \"resource.img\",\n            \"resource.link\",\n            \"resource.other\",\n          ],\n          // \"Main UI thread blocked\", with no attribution to the code that blocked it.\n          enableLongAnimationFrame: false,\n        }),\n        Sentry.captureConsoleIntegration({\n          levels: [\"error\"],\n        }),\n        Sentry.extraErrorDataIntegration(),\n        Sentry.httpClientIntegration(),\n        Sentry.replayCanvasIntegration(),\n        Sentry.replayIntegration({\n          networkDetailAllowUrls: [/.*/],\n          maskAllText: false,\n          maskAllInputs: false,\n          blockAllMedia: false,\n        }),\n        Sentry.reportingObserverIntegration({\n          types: [\"crash\", \"intervention\"],\n        }),\n      ],\n      enableLogs: true,\n      debug: isDebugEnabled,\n      attachStacktrace: true,\n      // Tracing every single pageload produced millions of spans a month. A twentieth of\n      // them is still thousands of traces a day, which is ample for spotting regressions.\n      tracesSampleRate: 0.05,\n      // Third-party beacons we do not own and cannot act on.\n      ignoreSpans: [{ name: /google-analytics\\.com/ }, { name: /googletagmanager\\.com/ }],\n      tracePropagationTargets: [\"localhost\", this.apiUrl],\n      replaysSessionSampleRate: 0.1,\n      replaysOnErrorSampleRate: 1.0,\n      beforeSend: sentryBeforeSendFilter,\n    };\n\n    Sentry.init(sentryOptions as Sentry.BrowserOptions);\n    Sentry.setTag(\"version\", \"ac91362e79b2bbe077ad29307215ef368223f329\");\n  }\n\n  getEncodedJWT() {\n    return this.encodedJwt;\n  }\n\n  setToken(token: string | null, rememberMe: boolean): void {\n    const decodedJwt = token ? jwtDecode<JwtPayload>(token) : undefined;\n    if (!decodedJwt || this.isTokenExpired(decodedJwt)) return this.removeToken();\n\n    this.encodedJwt = token!;\n    this.decodedJwt = decodedJwt;\n    this.isLoggedIn = true;\n\n    if (rememberMe) localStorage.setItem(\"token\", this.encodedJwt);\n\n    this.updateEmail();\n  }\n\n  removeToken(): void {\n    this.encodedJwt = undefined;\n    this.decodedJwt = undefined;\n    this.isLoggedIn = false;\n    this.email = undefined;\n\n    localStorage.removeItem(\"token\");\n    Sentry.setUser(null);\n    this.eventAggregator.publish(TKEvent.sessionEnded);\n  }\n\n  isSessionExpired() {\n    return this.decodedJwt && this.isTokenExpired(this.decodedJwt);\n  }\n\n  private isTokenExpired(token: JwtPayload) {\n    if (!token) throw new Error(\"No token to check expiration for\");\n\n    const now = Date.now().valueOf() / 1000;\n\n    // Consider token expired if it expires within the next 10 seconds\n    return token.exp! < now + 10;\n  }\n\n  updateEmail() {\n    if (!this.isLoggedIn) return;\n\n    this.email = (this.decodedJwt as any)[\n      \"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name\"\n    ];\n\n    Sentry.setUser({ email: this.email });\n  }\n\n  setSettings(settings: ISettings) {\n    this.userSettings = settings.userSettings;\n    this.contractSettings = settings.contractSettings;\n\n    // Saving settings calls this with a locally built object that has no rate in it,\n    // so only overwrite when one was actually returned\n    if (settings.vatRate != null) AppConfig.vatRate = settings.vatRate;\n\n    this.eventAggregator.publish(TKEvent.userSettingsLoaded);\n  }\n\n  setAllowedWarehouses(warehouses: IWarehouse[]) {\n    this.allowedWarehouses = warehouses;\n    this.eventAggregator.publish(TKEvent.warehousesLoaded);\n  }\n\n  setTransportOptions(transportOptions: Map<string, string>) {\n    this.transportOptions = transportOptions;\n    this.eventAggregator.publish(TKEvent.transportOptionsLoaded);\n  }\n\n  addCar(car: ICar) {\n    // Remove the same car if it has been previously searched\n    const sameCarIndex = this.cars.findIndex(x => x.id == car.id);\n    if (sameCarIndex >= 0) this.cars.splice(sameCarIndex, 1);\n\n    this.cars.unshift(car);\n\n    localStorage.setItem(\"cars\", JSON.stringify(this.cars));\n  }\n\n  getSelectedCar(): ICar | null {\n    return this.cars.length == 0 ? null : this.cars[0];\n  }\n\n  getAllCars(): ICar[] {\n    const storedCars = localStorage.getItem(\"cars\");\n\n    if (!storedCars) {\n      return [];\n    }\n\n    return JSON.parse(storedCars) as ICar[];\n  }\n}\n","var map = {\n\t\"./af\": \"K/tc\",\n\t\"./af.js\": \"K/tc\",\n\t\"./ar\": \"jnO4\",\n\t\"./ar-dz\": \"o1bE\",\n\t\"./ar-dz.js\": \"o1bE\",\n\t\"./ar-kw\": \"Qj4J\",\n\t\"./ar-kw.js\": \"Qj4J\",\n\t\"./ar-ly\": \"HP3h\",\n\t\"./ar-ly.js\": \"HP3h\",\n\t\"./ar-ma\": \"CoRJ\",\n\t\"./ar-ma.js\": \"CoRJ\",\n\t\"./ar-ps\": \"TJgH\",\n\t\"./ar-ps.js\": \"TJgH\",\n\t\"./ar-sa\": \"gjCT\",\n\t\"./ar-sa.js\": \"gjCT\",\n\t\"./ar-tn\": \"bYM6\",\n\t\"./ar-tn.js\": \"bYM6\",\n\t\"./ar.js\": \"jnO4\",\n\t\"./az\": \"SFxW\",\n\t\"./az.js\": \"SFxW\",\n\t\"./be\": \"H8ED\",\n\t\"./be.js\": \"H8ED\",\n\t\"./bg\": \"hKrs\",\n\t\"./bg.js\": \"hKrs\",\n\t\"./bm\": \"p/rL\",\n\t\"./bm.js\": \"p/rL\",\n\t\"./bn\": \"kEOa\",\n\t\"./bn-bd\": \"loYQ\",\n\t\"./bn-bd.js\": \"loYQ\",\n\t\"./bn.js\": \"kEOa\",\n\t\"./bo\": \"0mo+\",\n\t\"./bo.js\": \"0mo+\",\n\t\"./br\": \"aIdf\",\n\t\"./br.js\": \"aIdf\",\n\t\"./bs\": \"JVSJ\",\n\t\"./bs.js\": \"JVSJ\",\n\t\"./ca\": \"1xZ4\",\n\t\"./ca.js\": \"1xZ4\",\n\t\"./cs\": \"PA2r\",\n\t\"./cs.js\": \"PA2r\",\n\t\"./cv\": \"A+xa\",\n\t\"./cv.js\": \"A+xa\",\n\t\"./cy\": \"l5ep\",\n\t\"./cy.js\": \"l5ep\",\n\t\"./da\": \"DxQv\",\n\t\"./da.js\": \"DxQv\",\n\t\"./de\": \"tGlX\",\n\t\"./de-at\": \"s+uk\",\n\t\"./de-at.js\": \"s+uk\",\n\t\"./de-ch\": \"u3GI\",\n\t\"./de-ch.js\": \"u3GI\",\n\t\"./de.js\": \"tGlX\",\n\t\"./dv\": \"WYrj\",\n\t\"./dv.js\": \"WYrj\",\n\t\"./el\": \"jUeY\",\n\t\"./el.js\": \"jUeY\",\n\t\"./en-au\": \"Dmvi\",\n\t\"./en-au.js\": \"Dmvi\",\n\t\"./en-ca\": \"OIYi\",\n\t\"./en-ca.js\": \"OIYi\",\n\t\"./en-gb\": \"Oaa7\",\n\t\"./en-gb.js\": \"Oaa7\",\n\t\"./en-ie\": \"4dOw\",\n\t\"./en-ie.js\": \"4dOw\",\n\t\"./en-il\": \"czMo\",\n\t\"./en-il.js\": \"czMo\",\n\t\"./en-in\": \"7C5Q\",\n\t\"./en-in.js\": \"7C5Q\",\n\t\"./en-nz\": \"b1Dy\",\n\t\"./en-nz.js\": \"b1Dy\",\n\t\"./en-sg\": \"t+mt\",\n\t\"./en-sg.js\": \"t+mt\",\n\t\"./eo\": \"Zduo\",\n\t\"./eo.js\": \"Zduo\",\n\t\"./es\": \"iYuL\",\n\t\"./es-do\": \"CjzT\",\n\t\"./es-do.js\": \"CjzT\",\n\t\"./es-mx\": \"tbfe\",\n\t\"./es-mx.js\": \"tbfe\",\n\t\"./es-us\": \"Vclq\",\n\t\"./es-us.js\": \"Vclq\",\n\t\"./es.js\": \"iYuL\",\n\t\"./et\": \"7BjC\",\n\t\"./et.js\": \"7BjC\",\n\t\"./eu\": \"D/JM\",\n\t\"./eu.js\": \"D/JM\",\n\t\"./fa\": \"jfSC\",\n\t\"./fa.js\": \"jfSC\",\n\t\"./fi\": \"gekB\",\n\t\"./fi.js\": \"gekB\",\n\t\"./fil\": \"1ppg\",\n\t\"./fil.js\": \"1ppg\",\n\t\"./fo\": \"ByF4\",\n\t\"./fo.js\": \"ByF4\",\n\t\"./fr\": \"nyYc\",\n\t\"./fr-ca\": \"2fjn\",\n\t\"./fr-ca.js\": \"2fjn\",\n\t\"./fr-ch\": \"Dkky\",\n\t\"./fr-ch.js\": \"Dkky\",\n\t\"./fr.js\": \"nyYc\",\n\t\"./fy\": \"cRix\",\n\t\"./fy.js\": \"cRix\",\n\t\"./ga\": \"USCx\",\n\t\"./ga.js\": \"USCx\",\n\t\"./gd\": \"9rRi\",\n\t\"./gd.js\": \"9rRi\",\n\t\"./gl\": \"iEDd\",\n\t\"./gl.js\": \"iEDd\",\n\t\"./gom-deva\": \"qvJo\",\n\t\"./gom-deva.js\": \"qvJo\",\n\t\"./gom-latn\": \"DKr+\",\n\t\"./gom-latn.js\": \"DKr+\",\n\t\"./gu\": \"4MV3\",\n\t\"./gu.js\": \"4MV3\",\n\t\"./he\": \"x6pH\",\n\t\"./he.js\": \"x6pH\",\n\t\"./hi\": \"3E1r\",\n\t\"./hi.js\": \"3E1r\",\n\t\"./hr\": \"S6ln\",\n\t\"./hr.js\": \"S6ln\",\n\t\"./hu\": \"WxRl\",\n\t\"./hu.js\": \"WxRl\",\n\t\"./hy-am\": \"1rYy\",\n\t\"./hy-am.js\": \"1rYy\",\n\t\"./id\": \"UDhR\",\n\t\"./id.js\": \"UDhR\",\n\t\"./is\": \"BVg3\",\n\t\"./is.js\": \"BVg3\",\n\t\"./it\": \"bpih\",\n\t\"./it-ch\": \"bxKX\",\n\t\"./it-ch.js\": \"bxKX\",\n\t\"./it.js\": \"bpih\",\n\t\"./ja\": \"B55N\",\n\t\"./ja.js\": \"B55N\",\n\t\"./jv\": \"tUCv\",\n\t\"./jv.js\": \"tUCv\",\n\t\"./ka\": \"IBtZ\",\n\t\"./ka.js\": \"IBtZ\",\n\t\"./kk\": \"bXm7\",\n\t\"./kk.js\": \"bXm7\",\n\t\"./km\": \"6B0Y\",\n\t\"./km.js\": \"6B0Y\",\n\t\"./kn\": \"PpIw\",\n\t\"./kn.js\": \"PpIw\",\n\t\"./ko\": \"Ivi+\",\n\t\"./ko.js\": \"Ivi+\",\n\t\"./ku\": \"JCF/\",\n\t\"./ku-kmr\": \"dVgr\",\n\t\"./ku-kmr.js\": \"dVgr\",\n\t\"./ku.js\": \"JCF/\",\n\t\"./ky\": \"lgnt\",\n\t\"./ky.js\": \"lgnt\",\n\t\"./lb\": \"RAwQ\",\n\t\"./lb.js\": \"RAwQ\",\n\t\"./lo\": \"sp3z\",\n\t\"./lo.js\": \"sp3z\",\n\t\"./lt\": \"JvlW\",\n\t\"./lt.js\": \"JvlW\",\n\t\"./lv\": \"uXwI\",\n\t\"./lv.js\": \"uXwI\",\n\t\"./me\": \"KTz0\",\n\t\"./me.js\": \"KTz0\",\n\t\"./mi\": \"aIsn\",\n\t\"./mi.js\": \"aIsn\",\n\t\"./mk\": \"aQkU\",\n\t\"./mk.js\": \"aQkU\",\n\t\"./ml\": \"AvvY\",\n\t\"./ml.js\": \"AvvY\",\n\t\"./mn\": \"lYtQ\",\n\t\"./mn.js\": \"lYtQ\",\n\t\"./mr\": \"Ob0Z\",\n\t\"./mr.js\": \"Ob0Z\",\n\t\"./ms\": \"6+QB\",\n\t\"./ms-my\": \"ZAMP\",\n\t\"./ms-my.js\": \"ZAMP\",\n\t\"./ms.js\": \"6+QB\",\n\t\"./mt\": \"G0Uy\",\n\t\"./mt.js\": \"G0Uy\",\n\t\"./my\": \"honF\",\n\t\"./my.js\": \"honF\",\n\t\"./nb\": \"bOMt\",\n\t\"./nb.js\": \"bOMt\",\n\t\"./ne\": \"OjkT\",\n\t\"./ne.js\": \"OjkT\",\n\t\"./nl\": \"+s0g\",\n\t\"./nl-be\": \"2ykv\",\n\t\"./nl-be.js\": \"2ykv\",\n\t\"./nl.js\": \"+s0g\",\n\t\"./nn\": \"uEye\",\n\t\"./nn.js\": \"uEye\",\n\t\"./oc-lnc\": \"Fnuy\",\n\t\"./oc-lnc.js\": \"Fnuy\",\n\t\"./pa-in\": \"8/+R\",\n\t\"./pa-in.js\": \"8/+R\",\n\t\"./pl\": \"jVdC\",\n\t\"./pl.js\": \"jVdC\",\n\t\"./pt\": \"8mBD\",\n\t\"./pt-br\": \"0tRk\",\n\t\"./pt-br.js\": \"0tRk\",\n\t\"./pt.js\": \"8mBD\",\n\t\"./ro\": \"lyxo\",\n\t\"./ro.js\": \"lyxo\",\n\t\"./ru\": \"lXzo\",\n\t\"./ru.js\": \"lXzo\",\n\t\"./sd\": \"Z4QM\",\n\t\"./sd.js\": \"Z4QM\",\n\t\"./se\": \"//9w\",\n\t\"./se.js\": \"//9w\",\n\t\"./si\": \"7aV9\",\n\t\"./si.js\": \"7aV9\",\n\t\"./sk\": \"e+ae\",\n\t\"./sk.js\": \"e+ae\",\n\t\"./sl\": \"gVVK\",\n\t\"./sl.js\": \"gVVK\",\n\t\"./sq\": \"yPMs\",\n\t\"./sq.js\": \"yPMs\",\n\t\"./sr\": \"zx6S\",\n\t\"./sr-cyrl\": \"E+lV\",\n\t\"./sr-cyrl.js\": \"E+lV\",\n\t\"./sr.js\": \"zx6S\",\n\t\"./ss\": \"Ur1D\",\n\t\"./ss.js\": \"Ur1D\",\n\t\"./sv\": \"X709\",\n\t\"./sv.js\": \"X709\",\n\t\"./sw\": \"dNwA\",\n\t\"./sw.js\": \"dNwA\",\n\t\"./ta\": \"PeUW\",\n\t\"./ta.js\": \"PeUW\",\n\t\"./te\": \"XLvN\",\n\t\"./te.js\": \"XLvN\",\n\t\"./tet\": \"V2x9\",\n\t\"./tet.js\": \"V2x9\",\n\t\"./tg\": \"Oxv6\",\n\t\"./tg.js\": \"Oxv6\",\n\t\"./th\": \"EOgW\",\n\t\"./th.js\": \"EOgW\",\n\t\"./tk\": \"Wv91\",\n\t\"./tk.js\": \"Wv91\",\n\t\"./tl-ph\": \"Dzi0\",\n\t\"./tl-ph.js\": \"Dzi0\",\n\t\"./tlh\": \"z3Vd\",\n\t\"./tlh.js\": \"z3Vd\",\n\t\"./tr\": \"DoHr\",\n\t\"./tr.js\": \"DoHr\",\n\t\"./tzl\": \"z1FC\",\n\t\"./tzl.js\": \"z1FC\",\n\t\"./tzm\": \"wQk9\",\n\t\"./tzm-latn\": \"tT3J\",\n\t\"./tzm-latn.js\": \"tT3J\",\n\t\"./tzm.js\": \"wQk9\",\n\t\"./ug-cn\": \"YRex\",\n\t\"./ug-cn.js\": \"YRex\",\n\t\"./uk\": \"raLr\",\n\t\"./uk.js\": \"raLr\",\n\t\"./ur\": \"UpQW\",\n\t\"./ur.js\": \"UpQW\",\n\t\"./uz\": \"Loxo\",\n\t\"./uz-latn\": \"AQ68\",\n\t\"./uz-latn.js\": \"AQ68\",\n\t\"./uz.js\": \"Loxo\",\n\t\"./vi\": \"KSF8\",\n\t\"./vi.js\": \"KSF8\",\n\t\"./x-pseudo\": \"/X5v\",\n\t\"./x-pseudo.js\": \"/X5v\",\n\t\"./yo\": \"fzPg\",\n\t\"./yo.js\": \"fzPg\",\n\t\"./zh-cn\": \"XDpg\",\n\t\"./zh-cn.js\": \"XDpg\",\n\t\"./zh-hk\": \"SatO\",\n\t\"./zh-hk.js\": \"SatO\",\n\t\"./zh-mo\": \"OmwH\",\n\t\"./zh-mo.js\": \"OmwH\",\n\t\"./zh-tw\": \"kOpN\",\n\t\"./zh-tw.js\": \"kOpN\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"RnhZ\";","import { I18N } from 'aurelia-i18n';\nimport { Utils } from 'utils/helpers/utils';\nimport { Router } from 'aurelia-router';\nimport { bindable, autoinject, LogManager } from 'aurelia-framework';\nimport { CarMenuLevel } from 'utils/enums/CarMenuLevel';\nimport { IBaseVehicle } from 'domain/Car/IBaseVehicle';\n\nexport const log = LogManager.getLogger('app.components.car-category-menu');\n\n@autoinject\nexport class CarCategoryMenuCustomElement {\n  @bindable categoryId: number;\n  @bindable categoryName: string;\n\n  @bindable car: IBaseVehicle;\n  @bindable level: CarMenuLevel;\n\n  filterPlaceholder: string;\n  @bindable filterValue: string;\n\n  hasFocus = true;\n\n  constructor(\n    private router: Router,\n    private i18n: I18N\n  ) { }\n\n  bind() {\n    switch (this.level) {\n      case CarMenuLevel.Manufacturers:\n        this.filterPlaceholder = this.i18n.tr('pages.manufacturers.hint');\n        break;\n      case CarMenuLevel.Models:\n        this.filterPlaceholder = this.i18n.tr('pages.models.hint');\n        break;\n      case CarMenuLevel.Vehicles:\n        this.filterPlaceholder = this.i18n.tr('pages.vehicles.hint');\n        break;\n    }\n  }\n\n  // #region ACTIONS\n\n  openManufacturers() {\n    this.router.navigateToRoute('categoryManufacturers', { categoryId: this.categoryId });\n  }\n\n  openModels() {\n    this.router.navigateToRoute('categoryModels', {\n      categoryId: this.categoryId,\n      manufacturer: this.car.model.manufacturer.id != 0\n        ? this.car.model.manufacturer.id\n        : Utils.encode(this.car.model.manufacturer.name)\n    });\n  }\n\n  openVehicles() {\n    this.router.navigateToRoute('categoryVehicles', {\n      categoryId: this.categoryId,\n      manufacturer: this.car.model.manufacturer.id != 0\n        ? this.car.model.manufacturer.id\n        : Utils.encode(this.car.model.manufacturer.name),\n      model: Utils.encode(this.car.model.name)\n    });\n  }\n\n  openProducts() {\n    this.router.navigateToRoute('categoryProducts', {\n      categoryId: this.categoryId,\n      page: 1,\n      vehicleId: this.car.id\n    });\n  }\n\n  goBack() {\n    switch (this.level) {\n      case CarMenuLevel.Models:\n        this.openManufacturers();\n        break;\n      case CarMenuLevel.Vehicles:\n        this.openModels();\n        break;\n      case CarMenuLevel.Products:\n        this.openVehicles();\n        break;\n    }\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  <div class=\\\"input-group pt-1 mx-auto pb-3\\\">\\n    <button type=\\\"button\\\" class=\\\"btn btn-outline-primary\\\"\\n            tooltip=\\\"${'pages.car.tooltips.back' & t}\\\" click.trigger=\\\"goBack()\\\">\\n      ${'pages.car.buttons.back' & t}\\n    </button>\\n\\n    <input if.bind=\\\"level <= 2\\\" focus.bind=\\\"hasFocus\\\" type=\\\"text\\\" class=\\\"form-control\\\"\\n           placeholder.bind=\\\"filterPlaceholder\\\" value.bind=\\\"filterValue\\\">\\n    <span else class=\\\"input-group-text form-control\\\"></span>\\n\\n    <button if.bind=\\\"level >= 1\\\" type=\\\"button\\\" class=\\\"btn btn-outline-primary\\\"\\n            tooltip=\\\"${'pages.car.tooltips.manufacturer' & t}\\\" click.trigger=\\\"openManufacturers()\\\">\\n      ${car.model.manufacturer.name}\\n    </button>\\n    <button if.bind=\\\"level >= 2\\\" type=\\\"button\\\" class=\\\"btn btn-outline-primary\\\"\\n            tooltip=\\\"${'pages.car.tooltips.model' & t}\\\" click.trigger=\\\"openModels()\\\">\\n      ${car.model.name}\\n    </button>\\n    <button if.bind=\\\"level >= 3\\\" type=\\\"button\\\" class=\\\"btn btn-outline-primary\\\"\\n            tooltip=\\\"${'pages.car.tooltips.vehicle' & t}\\\" click.trigger=\\\"openVehicles()\\\">\\n      ${car.name}\\n    </button>\\n\\n    <template if.bind=\\\"level >= 3 && car && vehicleInfo\\\">\\n      <button type=\\\"button\\\" class=\\\"btn btn-outline-primary rotating-arrow\\\" data-bs-toggle=\\\"collapse\\\"\\n              data-bs-target=\\\"#car-details\\\">\\n        ${'pages.car.buttons.car-info' & t}\\n        <i class=\\\"float-end bi-chevron-down\\\"></i>\\n      </button>\\n    </template>\\n\\n    <template if.bind=\\\"level >= 3 && car && vehicleInfo\\\">\\n      <p repeat.for=\\\"info of vehicleInfo\\\">${info}</p>\\n    </template>\\n  </div>\\n\\n</template>\\n\";","import { I18N } from 'aurelia-i18n';\nimport { Utils } from 'utils/helpers/utils';\nimport { ICar } from 'domain/Car/ICar';\nimport { Router } from 'aurelia-router';\nimport { bindable, autoinject, LogManager } from 'aurelia-framework';\nimport { Collapse } from 'bootstrap';\nimport { CarHelper } from 'utils/helpers/car-helper';\n\nexport const log = LogManager.getLogger('app.components.car-menu');\n\n@autoinject\nexport class CarMenuCustomElement {\n  @bindable car: ICar;\n  carDetailProperties = {};\n\n  @bindable catalogueId: number;\n  @bindable catalogueName: string;\n  @bindable level: number;\n\n  @bindable filterPlaceholder: string;\n  @bindable filterValue: string;\n\n  hasFocus = true;\n\n  constructor(\n    private router: Router,\n    private i18n: I18N\n  ) {\n    this.carDetailProperties = {\n      fullName: this.i18n.tr('pages.car.car-info.full-name'),\n      licencePlate: this.i18n.tr('pages.car.car-info.licence-plate'),\n      vin: this.i18n.tr('pages.car.car-info.vin'),\n      capacityCcm: this.i18n.tr('pages.car.car-info.capacity-ccm'),\n      powerKw: this.i18n.tr('pages.car.car-info.power-kw'),\n      motorCodes: this.i18n.tr('pages.car.car-info.motor-codes'),\n      constructionType: this.i18n.tr('pages.car.car-info.construction'),\n      color: this.i18n.tr('pages.car.car-info.color'),\n      fuel: this.i18n.tr('pages.car.car-info.fuel'),\n      gearbox: this.i18n.tr('pages.car.car-info.gearbox'),\n      registeredDate: this.i18n.tr('pages.car.car-info.registered'),\n      originCountry: this.i18n.tr('pages.car.car-info.origin-country'),\n      nextInspectionDate: this.i18n.tr('pages.car.car-info.next-inspection'),\n      drivingAxles: this.i18n.tr('pages.car.car-info.driving-axles')\n    };\n  }\n\n  attached() {\n    const carDetails = document.getElementById('car-details');\n\n    if (this.car.vin && this.level == 3 && !this.filterValue && carDetails)\n      new Collapse(carDetails).toggle();\n  }\n\n  // #region ACTIONS\n\n  openManufacturers() {\n    this.router.navigateToRoute('carManufacturers');\n  }\n\n  openModels() {\n    this.router.navigateToRoute('carModels', {\n      id: this.car.model.manufacturer.id,\n      name: Utils.encode(this.car.model.manufacturer.name)\n    });\n  }\n\n  openVehicles() {\n    this.router.navigateToRoute('carVehicles', {\n      manuId: this.car.model.manufacturer.id,\n      modelId: this.car.model.id\n    });\n  }\n\n  openCatalogues() {\n    const parameters: any = {\n      vehicleId: this.car.id\n    };\n    const query = this.car.licencePlate || this.car.vin;\n    if (query)\n      parameters.query = Utils.encode(query, true);\n    if (this.filterValue)\n      parameters.filterText = Utils.encode(this.filterValue, true);\n    if (this.catalogueId)\n      parameters.catalogueId = Utils.encode(this.catalogueId, true);\n\n    this.router.navigateToRoute('catalogueList', parameters);\n  }\n\n  openTires(tire: string) {\n    const decoded = CarHelper.decodeTireString(tire);\n    const [width, height, diameter, type] = decoded;\n\n    const filters: Record<string, string[]> = {\n      width: [width],\n      height: [height],\n      diameter: [diameter]\n    };\n    // SAL-212/SAL-250: bare C after diameter preselects filter key `type` (not van).\n    if (type === 'C') {\n      filters.type = ['C'];\n    }\n\n    this.router.navigateToRoute('categoryProducts', {\n      categoryId: 10,\n      page: 1,\n      filters: Utils.encode(JSON.stringify(filters), true)\n    });\n  }\n\n  isValidTireString(tire: string) {\n    return CarHelper.isValidTireString(tire);\n  }\n\n  goBack() {\n    switch (this.level) {\n      case 1:\n        this.openManufacturers();\n        break;\n      case 2:\n        this.openModels();\n        break;\n      case 3:\n        this.openVehicles();\n        break;\n      case 4:\n        this.openCatalogues();\n        break;\n    }\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  <div class=\\\"input-group pt-1 mx-auto pb-3 car-menu-bar\\\">\\n    <button type=\\\"button\\\" class=\\\"btn btn-outline-primary\\\" tooltip=\\\"${'pages.car.tooltips.back' & t}\\\"\\n            click.trigger=\\\"goBack()\\\">\\n      ${'pages.car.buttons.back' & t}\\n    </button>\\n\\n    <input focus.bind=\\\"hasFocus\\\" type=\\\"text\\\" class=\\\"form-control\\\"\\n           placeholder.bind=\\\"filterPlaceholder\\\" value.bind=\\\"filterValue\\\">\\n\\n    <button type=\\\"button\\\" class=\\\"btn btn-outline-primary\\\" tooltip=\\\"${'pages.car.tooltips.manufacturer' & t}\\\"\\n            click.trigger=\\\"openManufacturers()\\\">\\n      ${car.model.manufacturer.name}\\n    </button>\\n    <button if.bind=\\\"level >= 2\\\" type=\\\"button\\\" class=\\\"btn btn-outline-primary\\\"\\n            tooltip=\\\"${'pages.car.tooltips.model' & t}\\\" click.trigger=\\\"openModels()\\\">\\n      ${car.model.name}\\n    </button>\\n    <button if.bind=\\\"level >= 3\\\" type=\\\"button\\\" class=\\\"btn btn-outline-primary\\\"\\n            tooltip=\\\"${'pages.car.tooltips.vehicle' & t}\\\" click.trigger=\\\"openVehicles()\\\">\\n      ${car.name}\\n    </button>\\n    <button if.bind=\\\"level >= 4\\\" type=\\\"button\\\" class=\\\"btn btn-outline-primary\\\"\\n            tooltip=\\\"${'pages.car.tooltips.catalogue' & t}\\\" click.trigger=\\\"openCatalogues()\\\">\\n      ${catalogueName}\\n    </button>\\n\\n    <template if.bind=\\\"level >= 1 && car && car.vin\\\">\\n      <button type=\\\"button\\\" class=\\\"btn btn-outline-primary rotating-arrow\\\" data-bs-toggle=\\\"collapse\\\"\\n              data-bs-target=\\\"#car-details\\\">\\n        ${'pages.car.buttons.car-info' & t}\\n        <i class=\\\"float-end bi-chevron-down\\\"></i>\\n      </button>\\n    </template>\\n\\n    <template if.bind=\\\"level >= 1 && car && car.vin\\\">\\n      <div class=\\\"collapse w-100\\\" id=\\\"car-details\\\">\\n        <dl class=\\\"row text-start pt-3\\\">\\n          <template repeat.for=\\\"key of carDetailProperties | objectKeys\\\">\\n            <template if.bind=\\\"car[key]\\\">\\n              <dt class=\\\"col-6 text-end\\\">${carDetailProperties[key]}</dt>\\n              <dd class=\\\"col-6 text-start\\\">${car[key]}</dd>\\n            </template>\\n          </template>\\n\\n          <template if.bind=\\\"car.extraTire || car.tires\\\">\\n            <dt class=\\\"col-6 text-end\\\">${'pages.car.car-info.tires' & t}</dt>\\n            <dd class=\\\"col-6 text-start\\\">\\n              <p>${car.extraTire}</p>\\n              <dl class=\\\"row\\\">\\n                <template repeat.for=\\\"obj of car.tires\\\">\\n                  <dt class=\\\"col-2 text-end\\\">\\n                    ${'pages.car.car-info.axis' & t: {'index': $index + 1}}\\n                  </dt>\\n                  <dd class=\\\"col-10 text-start\\\">\\n                    <dl class=\\\"row\\\">\\n                      <template repeat.for=\\\"key of obj | objectKeys\\\">\\n                        <dt class=\\\"col-1 text-end\\\">${key}</dt>\\n                        <dd class=\\\"col-11 text-start\\\">\\n                          <a if.bind=\\\"isValidTireString(obj[key])\\\" href=\\\"\\\"\\n                             click.delegate=\\\"openTires(obj[key])\\\">${obj[key]}</a>\\n                          <span else>${obj[key]}</span>\\n                        </dd>\\n                      </template>\\n                    </dl>\\n                  </dd>\\n                </template>\\n              </dl>\\n            </dd>\\n          </template>\\n        </dl>\\n      </div>\\n    </template>\\n  </div>\\n\\n</template>\\n\";","import { ICar } from 'domain/Car/ICar';\nimport { AppConfig } from 'app-config';\nimport { Router } from 'aurelia-router';\nimport { LogManager, autoinject } from 'aurelia-framework';\nimport { Utils } from 'utils/helpers/utils';\n\nexport var log = LogManager.getLogger('app.components.car-tree');\n\n@autoinject\nexport class CarTree {\n  carCategories: { label: string; list: ICar[] }[];\n  constructor(\n    private router: Router,\n    private appConfig: AppConfig, // used by HTML\n  ) {}\n\n  // #region ACTIONS\n\n  attached() {\n    this.categorizeCars();\n  }\n\n  carButtonClicked() {\n    if (\n      this.router.currentInstruction\n        .getAllInstructions()\n        .find(instruction => instruction.config.name == \"carManufacturers\")\n    ) {\n      this.router.navigateBack();\n    } else {\n      this.router.navigateToRoute(\"carManufacturers\");\n    }\n  }\n\n  loadCatalogueFor(car: ICar) {\n    let query = car.licencePlate || car.vin;\n\n    this.router.navigateToRoute(\"catalogueList\", {\n      vehicleId: car.id,\n      query: Utils.encode(query),\n    });\n  }\n\n  categorizeCars() {\n    const now = Date.now();\n    const oneDay = 86400000;\n    const oneWeek = oneDay * 7;\n    const startOfToday = new Date().setHours(0, 0, 0, 0);\n    const startOfThisWeek = startOfToday - new Date().getDay() * oneDay;\n    const startOfLastWeek = startOfThisWeek - oneWeek;\n\n    let carsToday: ICar[];\n    let carsThisWeek: ICar[];\n    let carsLastWeek: ICar[];\n    let carsOlder: ICar[];\n\n    // Ensure every car has a valid timestamp, defaulting to 0 (treated as \"Older\")\n    carsToday = this.appConfig.cars.filter(\n      car => (car.timeAddedToSearch ?? 0) >= startOfToday,\n    );\n\n    carsThisWeek = this.appConfig.cars.filter(\n      car =>\n        (car.timeAddedToSearch ?? 0) >= startOfThisWeek &&\n        (car.timeAddedToSearch ?? 0) < startOfToday,\n    );\n\n    carsLastWeek = this.appConfig.cars.filter(\n      car =>\n        (car.timeAddedToSearch ?? 0) >= startOfLastWeek &&\n        (car.timeAddedToSearch ?? 0) < startOfThisWeek,\n    );\n\n    carsOlder = this.appConfig.cars.filter(\n      car => (car.timeAddedToSearch ?? 0) < startOfLastWeek,\n    );\n\n    this.carCategories = [\n      { label: \"menu.car-search-history.today\", list: carsToday },\n      { label: \"menu.car-search-history.this-week\", list: carsThisWeek },\n      { label: \"menu.car-search-history.last-week\", list: carsLastWeek },\n      { label: \"menu.car-search-history.older\", list: carsOlder },\n    ];\n  }\n\n  // #endregion\n}\n","module.exports = \"<template>\\n  <div class=\\\"text-nowrap\\\">\\n    <button\\n      type=\\\"button\\\"\\n      class=\\\"btn text-nowrap btn-outline-primary\\\"\\n      click.trigger=\\\"carButtonClicked()\\\">\\n      ${'pages.manufacturers.button' & t}\\n    </button>\\n\\n    <!-- \\\"car-tree-margin-fix\\\" is a workaround of a visual glitch -->\\n    <button\\n      if.bind=\\\"appConfig.cars.length > 0\\\"\\n      type=\\\"button\\\"\\n      data-bs-toggle=\\\"dropdown\\\"\\n      class=\\\"btn btn-outline-primary dropdown-toggle dropdown-toggle-split car-tree-margin-fix\\\"\\n      click.trigger=\\\"categorizeCars()\\\"></button>\\n    <div class=\\\"dropdown-menu dropdown-menu-end\\\">\\n      <template repeat.for=\\\"category of carCategories\\\">\\n        <h6 class=\\\"dropdown-header\\\" if.bind=\\\"category.list.length\\\">${category.label & t}</h6>\\n        <a\\n          class=\\\"dropdown-item\\\"\\n          href=\\\"\\\"\\n          repeat.for=\\\"prevCar of category.list\\\"\\n          click.delegate=\\\"loadCatalogueFor(prevCar)\\\">\\n          <strong>${prevCar.licencePlate}</strong> ${prevCar.model.manufacturer.name}\\n          ${prevCar.model.name} ${prevCar.powerKw}kW\\n        </a>\\n      </template>\\n    </div>\\n  </div>\\n</template>\\n\";"],"sourceRoot":""}