{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./ClientApp/ts/scripts/components/cookies-message.ts","webpack:///./ClientApp/ts/bootstraper.ts","webpack:///./ClientApp/ts/scripts/product.page.ts","webpack:///./ClientApp/ts/scripts/application-sidenav.ts","webpack:///./ClientApp/ts/scripts/full-screen-image.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","CookiesMessage","_this","this","monthUnixTime","cookiesMessageElement","document","querySelector","cookiesConfirmDate","localStorage","getItem","Number","Date","now","classList","add","addEventListener","confirmButtonClick","setItem","String","remove","__webpack_exports__","bootstraper_Bootstraper","Bootstraper","bootsrtapOnWindowLoaded","page","window","ProductPage","_bootstraper__WEBPACK_IMPORTED_MODULE_0__","_application_sidenav__WEBPACK_IMPORTED_MODULE_1__","_full_screen_image__WEBPACK_IMPORTED_MODULE_2__","applicationSidenav","fullImage","setLinkToApps","appLinks","querySelectorAll","currentUrl","URL","location","href","forEach","link","id","getAttribute","newUrl","pathname","searchParams","history","pushState","checkOpenSidenav","ApplicationSidenav","appList","createRequest","url","options","fetch","headers","Headers","Accept","Content-Type","method","then","response","status","json","createSideNav","currentAppId","openSidenav","loadAppData","closeSideNav","getAppList","applicationsTable","getElementById","applicationsList","JSON","parse","setPrevAndNextApp","length","changeButtonsVisibility","currentAppPosition","indexOf","prevAppId","nextAppId","isHidden","sideNavButtons","sideNav","sideNavOverlay","documentElement","style","setProperty","body","preloader","sideNavContent","goToNextApp","fillSideNavContent","content","createSimpleElement","title","businessLine","section","description","fillSideNavErrorContent","error","className","parent","element","createElement","innerHTML","appendChild","appId","isLoading","changeUrl","hash","isNeedChangeUrl","changePreloaderState","isActive","catch","err","FullImage","imageId","initImage","imageContainer","children","isOpen","openImage","exitElement","closeImage"],"mappings":"aACA,IAAAA,EAAA,GAGA,SAAAC,EAAAC,GAGA,GAAAF,EAAAE,GACA,OAAAF,EAAAE,GAAAC,QAGA,IAAAC,EAAAJ,EAAAE,GAAA,CACAG,EAAAH,EACAI,GAAA,EACAH,QAAA,IAUA,OANAI,EAAAL,GAAAM,KAAAJ,EAAAD,QAAAC,IAAAD,QAAAF,GAGAG,EAAAE,GAAA,EAGAF,EAAAD,QAKAF,EAAAQ,EAAAF,EAGAN,EAAAS,EAAAV,EAGAC,EAAAU,EAAA,SAAAR,EAAAS,EAAAC,GACAZ,EAAAa,EAAAX,EAAAS,IACAG,OAAAC,eAAAb,EAAAS,EAAA,CAA0CK,YAAA,EAAAC,IAAAL,KAK1CZ,EAAAkB,EAAA,SAAAhB,GACA,oBAAAiB,eAAAC,aACAN,OAAAC,eAAAb,EAAAiB,OAAAC,YAAA,CAAwDC,MAAA,WAExDP,OAAAC,eAAAb,EAAA,cAAiDmB,OAAA,KAQjDrB,EAAAsB,EAAA,SAAAD,EAAAE,GAEA,GADA,EAAAA,IAAAF,EAAArB,EAAAqB,IACA,EAAAE,EAAA,OAAAF,EACA,KAAAE,GAAA,iBAAAF,QAAAG,WAAA,OAAAH,EACA,IAAAI,EAAAX,OAAAY,OAAA,MAGA,GAFA1B,EAAAkB,EAAAO,GACAX,OAAAC,eAAAU,EAAA,WAAyCT,YAAA,EAAAK,UACzC,EAAAE,GAAA,iBAAAF,EAAA,QAAAM,KAAAN,EAAArB,EAAAU,EAAAe,EAAAE,EAAA,SAAAA,GAAgH,OAAAN,EAAAM,IAAqBC,KAAA,KAAAD,IACrI,OAAAF,GAIAzB,EAAA6B,EAAA,SAAA1B,GACA,IAAAS,EAAAT,KAAAqB,WACA,WAA2B,OAAArB,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAH,EAAAU,EAAAE,EAAA,IAAAA,GACAA,GAIAZ,EAAAa,EAAA,SAAAiB,EAAAC,GAAsD,OAAAjB,OAAAkB,UAAAC,eAAA1B,KAAAuB,EAAAC,IAGtD/B,EAAAkC,EAAA,GAIAlC,IAAAmC,EAAA,qCClFA,IAAAC,EAAA,WAKI,SAAAA,IAAA,IAAAC,EAAAC,KAJiBA,KAAAC,cAAwB,QAKrCD,KAAKE,sBAAwBC,SAASC,cAAc,oBACpD,IAAMC,EAA6BC,aAAaC,QAAQ,wBACnDF,GAAsBG,OAAOH,GAA2C,EAArBL,KAAKC,cAAoBQ,KAAKC,MAAQ,MAC1FV,KAAKE,sBAAsBS,UAAUC,IAAI,WAEJT,SAASC,cAAc,4BAClDS,iBAAiB,QAAS,WAAY,OAAAd,EAAKe,uBAOjE,OAJYhB,EAAAJ,UAAAoB,mBAAR,WACIR,aAAaS,QAAQ,qBAAsBC,OAAOP,KAAKC,MAAQ,MAC/DV,KAAKE,sBAAsBS,UAAUM,OAAO,YAEpDnB,EAnBA,GCAApC,EAAAU,EAAA8C,EAAA,sBAAAC,IAEA,IAAAA,EAAA,oBAAAC,KAOA,OANkBA,EAAAC,wBAAd,SAAsCC,GAClCC,OAAOV,iBAAiB,OAAQ,WAC5B,IAAIS,EACJ,IAAIxB,KAGhBsB,EAPA,oCCFA1D,EAAAkB,EAAAsC,GAAAxD,EAAAU,EAAA8C,EAAA,gCAAAM,IAAA,IAAAC,EAAA/D,EAAA,GAAAgE,EAAAhE,EAAA,GAAAiE,EAAAjE,EAAA,GAIA8D,EAAA,WAKI,SAAAA,IACIxB,KAAK4B,mBAAqB,IAAIF,EAAA,mBAC9B1B,KAAK6B,UAAY,IAAIF,EAAA,UAAU,gBAE/B3B,KAAK8B,gBAeb,OAZYN,EAAA9B,UAAAoC,cAAR,eAAA/B,EAAAC,KACU+B,EAAW5B,SAAS6B,iBAAiB,2BACrCC,EAAa,IAAIC,IAAIX,OAAOY,SAASC,MAC3CL,EAASM,QAAQ,SAAAC,GACbA,EAAKzB,iBAAiB,QAAS,WAC3B,IAAM0B,EAAKD,EAAKE,aAAa,MACvBC,EAAYR,EAAWS,SAAQ,SAAST,EAAWU,aAAahE,IAAI,QAAO,UAAU4D,EAAE,WAC7FK,QAAQC,UAAUJ,EAAQ,GAAIA,GAC9B1C,EAAK6B,mBAAmBkB,wBAIxCtB,EAxBA,GA0BAC,EAAA,EAAYJ,wBAAwBG,mCC9BpC9D,EAAAkB,EAAAsC,GAAAxD,EAAAU,EAAA8C,EAAA,uCAAA6B,IAAA,IAAAA,EAAA,WAeI,SAAAA,IAAA,IAAAhD,EAAAC,KAPQA,KAAAgD,QAAoB,GA0JpBhD,KAAAiD,cAAgB,SAACC,EAAKC,GAC1B,OAAO5B,OAAO6B,MAAMF,EAAK,CACvBG,QAAS,IAAIC,QAAQ,CACnBC,OAAQ,mBACRC,eAAgB,qBAElBC,OAAQN,EAAQM,QAAU,QACzBC,KAAK,SAAAC,GACN,GAAwB,MAApBA,EAASC,OACX,OAAOD,EAASE,OAEhB,MAAMF,EAASC,UA7JnB5D,KAAK8D,gBACLvC,OAAOV,iBAAiB,WAAY,WAChCd,EAAK+C,qBA+JjB,OA3JWC,EAAArD,UAAAoD,iBAAP,WACI,IAAMb,EAAa,IAAIC,IAAIX,OAAOY,SAASC,MACf,+BAAxBH,EAAWS,UAA6CT,EAAWU,aAAahE,IAAI,SAAWsD,EAAWU,aAAahE,IAAI,UAC3HqB,KAAK+D,aAAe9B,EAAWU,aAAahE,IAAI,SAChDqB,KAAKgE,cACLhE,KAAKiE,eAELjE,KAAKkE,cAAa,IAIlBnB,EAAArD,UAAAyE,WAAR,WACI,IAAMC,EAAoBjE,SAASkE,eAAe,oBAClD,GAAKD,EAAL,CAGA,IAAME,EAAmBF,EAAkB5B,aAAa,iBACpD8B,IACAtE,KAAKgD,QAAUuB,KAAKC,MAAMF,GAC1BtE,KAAKyE,uBAIL1B,EAAArD,UAAA+E,kBAAR,WACI,GAAIzE,KAAKgD,QAAQ0B,OAAS,EACtB1E,KAAK2E,yBAAwB,OADjC,CAKA3E,KAAK2E,0BACL,IAAMC,EAAqB5E,KAAKgD,QAAQ6B,QAAQ7E,KAAK+D,cACrD/D,KAAK8E,UAAmC,IAAvBF,EAA2B5E,KAAKgD,QAAQhD,KAAKgD,QAAQ0B,OAAS,GAAK1E,KAAKgD,QAAQ4B,EAAqB,GACtH5E,KAAK+E,UAAYH,IAAuB5E,KAAKgD,QAAQ0B,OAAS,EAAI1E,KAAKgD,QAAQ,GAAKhD,KAAKgD,QAAQ4B,EAAqB,KAGlH7B,EAAArD,UAAAiF,wBAAR,SAAgCK,QAAA,IAAAA,OAAA,GACxBA,EACAhF,KAAKiF,eAAetE,UAAUC,IAAI,sCAElCZ,KAAKiF,eAAetE,UAAUM,OAAO,uCAIrC8B,EAAArD,UAAAsE,YAAR,WACIhE,KAAKkF,QAAQvE,UAAUC,IAAI,6BAC3BZ,KAAKmF,eAAexE,UAAUC,IAAI,4BAClCT,SAASiF,gBAAgBC,MAAMC,YAAY,WAAY,UACvDnF,SAASoF,KAAKF,MAAMC,YAAY,WAAY,WAGxCvC,EAAArD,UAAAoE,cAAR,eAAA/D,EAAAC,KACIA,KAAKkF,QAAU/E,SAASkE,eAAe,WACvCrE,KAAKmF,eAAiBhF,SAASkE,eAAe,kBAC9CrE,KAAKwF,UAAYrF,SAASkE,eAAe,oBACzCrE,KAAKyF,eAAiBtF,SAASkE,eAAe,kBAC9CrE,KAAKiF,eAAiB9E,SAASkE,eAAe,kBAE9CrE,KAAKmF,eAAetE,iBAAiB,QAAS,WAAQd,EAAKmE,cAAa,KACxE/D,SAASkE,eAAe,qBAAqBxD,iBAAiB,QAAS,WAAQd,EAAK2F,YAAY3F,EAAK+E,aACrG3E,SAASkE,eAAe,sBAAsBxD,iBAAiB,QAAS,WAAQd,EAAK2F,YAAY3F,EAAKgF,aACtG5E,SAASkE,eAAe,eAAexD,iBAAiB,QAAS,WAAQd,EAAKmE,cAAa,KAE3FlE,KAAKmE,aACLnE,KAAK8C,oBAGDC,EAAArD,UAAAiG,mBAAR,SAA2BC,GACvB5F,KAAK6F,oBAAoB,yBAA0B7F,KAAKyF,eAAgBG,EAAQE,OAChF9F,KAAK6F,oBAAoB,iCAAkC7F,KAAKyF,eAAgBG,EAAQG,cACxF/F,KAAK6F,oBAAoB,2BAA4B7F,KAAKyF,eAAgBG,EAAQI,SAClFhG,KAAK6F,oBAAoB,+BAAgC7F,KAAKyF,eAAgBG,EAAQK,aACtFjG,KAAK6F,oBAAoB,sCAAuC7F,KAAKyF,eAAgBG,EAAQA,UAGzF7C,EAAArD,UAAAwG,wBAAR,SAAgCC,GAC5BnG,KAAK6F,oBAAoB,yBAA0B7F,KAAKyF,eAAgB,QAAQU,EAAK,eAGjFpD,EAAArD,UAAAmG,oBAAR,SAA4BO,EAAmBC,EAAiBT,QAAA,IAAAA,MAAA,IAC5D,IAAIU,EAAUnG,SAASoG,cAAc,OACrCD,EAAQF,UAAYA,EACpBE,EAAQE,UAAYZ,EACpBS,EAAOI,YAAYH,IAGfvD,EAAArD,UAAAgG,YAAR,SAAoBgB,GACZ1G,KAAK2G,YAIT3G,KAAK+D,aAAe2C,EACpB1G,KAAKiE,cACLjE,KAAK4G,cAGD7D,EAAArD,UAAAkH,UAAR,WACI,IAAM3E,EAAa,IAAIC,IAAIX,OAAOY,SAASC,MACvCK,EAAYR,EAAWS,SAAQ,SAAST,EAAWU,aAAahE,IAAI,QACxE8D,GAAUzC,KAAK+D,aAAe,UAAU/D,KAAK+D,aAAe9B,EAAW4E,KAAS5E,EAAW4E,KAC3FjE,QAAQC,UAAUJ,EAAQ,GAAIA,IAG1BM,EAAArD,UAAAwE,aAAR,SAAqB4C,GACjB9G,KAAK+D,aAAe,KACpB/D,KAAKyF,eAAee,UAAY,GAC5BM,GACA9G,KAAK4G,YAET5G,KAAKkF,QAAQvE,UAAUM,OAAO,6BAC9BjB,KAAKmF,eAAexE,UAAUM,OAAO,4BACrCd,SAASiF,gBAAgBC,MAAMC,YAAY,WAAY,QACvDnF,SAASoF,KAAKF,MAAMC,YAAY,WAAY,SAGxCvC,EAAArD,UAAAqH,qBAAR,SAA6BC,QAAA,IAAAA,OAAA,GACrBA,EACAhH,KAAKwF,UAAU7E,UAAUC,IAAI,wCAE7BZ,KAAKwF,UAAU7E,UAAUM,OAAO,yCAIhC8B,EAAArD,UAAAuE,YAAR,eAAAlE,EAAAC,KACIA,KAAK+G,sBAAqB,GAC1B/G,KAAK2G,WAAY,EACjB3G,KAAKyF,eAAee,UAAY,GAChCxG,KAAKiD,cAAc,4BAA4BjD,KAAK+D,aAAgB,CAAEN,OAAQ,QACzEC,KAAK,SAAAC,GACF5D,EAAK0E,oBACL1E,EAAK4F,mBAAmBhC,GACxB5D,EAAKgH,uBACLhH,EAAK4G,WAAY,IAEpBM,MAAM,SAAAC,GACHnH,EAAKgH,uBACLhH,EAAKmG,wBAAwBgB,GAC7BnH,EAAK4G,WAAY,KAmBjC5D,EAjLA,mCCAArF,EAAAkB,EAAAsC,GAAAxD,EAAAU,EAAA8C,EAAA,8BAAAiG,IAAA,IAAAA,EAAA,WAKI,SAAAA,EAAYC,GACRpH,KAAKqH,UAAUD,GA0BvB,OAvBYD,EAAAzH,UAAA2H,UAAR,SAAkBD,GAAlB,IAAArH,EAAAC,KAEI,GADAA,KAAKsH,eAAiBnH,SAASkE,eAAe+C,GAC1CpH,KAAKsH,eAAgB,CACrBtH,KAAKsH,eAAeC,SAAS,GAAG1G,iBAAiB,QAAS,WAAM,OAACd,EAAKyH,QAAUzH,EAAK0H,cAErF,IAAMC,EAAcvH,SAASoG,cAAc,OAC3CmB,EAAYtB,UAAY,OACxBsB,EAAYlB,UAAY,oGACxBkB,EAAY7G,iBAAiB,QAAS,WAAM,OAAAd,EAAK4H,eACjD3H,KAAKsH,eAAeb,YAAYiB,KAIhCP,EAAAzH,UAAA+H,UAAR,WACIzH,KAAKsH,eAAe3G,UAAUC,IAAI,QAClCZ,KAAKwH,QAAS,GAGVL,EAAAzH,UAAAiI,WAAR,WACI3H,KAAKsH,eAAe3G,UAAUM,OAAO,QACrCjB,KAAKwH,QAAS,GAGtBL,EAhCA","file":"js/product.page.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 21);\n","export class CookiesMessage {\r\n private readonly monthUnixTime: number = 2629743;\r\n\r\n private readonly cookiesMessageElement: HTMLDivElement;\r\n\r\n constructor() {\r\n this.cookiesMessageElement = document.querySelector('.cookies-message');\r\n const cookiesConfirmDate: string = localStorage.getItem('cookiesConfirmDate');\r\n if (!cookiesConfirmDate || Number(cookiesConfirmDate) + this.monthUnixTime * 2 < Date.now() / 1000.0) {\r\n this.cookiesMessageElement.classList.add('visible');\r\n }\r\n const confirmButton: HTMLButtonElement = document.querySelector('.cookies-message__button');\r\n confirmButton.addEventListener('click', (): void => this.confirmButtonClick());\r\n }\r\n\r\n private confirmButtonClick(): void {\r\n localStorage.setItem('cookiesConfirmDate', String(Date.now() / 1000.0));\r\n this.cookiesMessageElement.classList.remove('visible');\r\n }\r\n}\r\n","import { CookiesMessage } from \"./scripts/components/cookies-message\";\r\n\r\nexport class Bootstraper {\r\n public static bootsrtapOnWindowLoaded(page): void {\r\n window.addEventListener('load', function() {\r\n new page();\r\n new CookiesMessage();\r\n });\r\n }\r\n}\r\n","import { Bootstraper } from '../bootstraper';\r\nimport { ApplicationSidenav } from './application-sidenav';\r\nimport { FullImage } from './full-screen-image';\r\n\r\nexport class ProductPage {\r\n \r\n private applicationSidenav: ApplicationSidenav;\r\n private fullImage: FullImage;\r\n \r\n constructor() { \r\n this.applicationSidenav = new ApplicationSidenav();\r\n this.fullImage = new FullImage('productImage');\r\n\r\n this.setLinkToApps();\r\n }\r\n\r\n private setLinkToApps(): void {\r\n const appLinks = document.querySelectorAll('.content-table__row_app');\r\n const currentUrl = new URL(window.location.href);\r\n appLinks.forEach(link => {\r\n link.addEventListener('click', () => {\r\n const id = link.getAttribute('id'); \r\n const newUrl = `${currentUrl.pathname}?code=${currentUrl.searchParams.get('code')}&appid=${id}#catalog`;\r\n history.pushState(newUrl, '', newUrl);\r\n this.applicationSidenav.checkOpenSidenav();\r\n });\r\n });\r\n }\r\n}\r\n\r\nBootstraper.bootsrtapOnWindowLoaded(ProductPage);\r\n","export class ApplicationSidenav {\r\n\r\n private sideNav: Element;\r\n private sideNavContent: Element;\r\n private sideNavOverlay: Element;\r\n private preloader: Element;\r\n private sideNavButtons: Element;\r\n\r\n private appList: string[] = [];\r\n\r\n private currentAppId: string;\r\n private nextAppId: string;\r\n private prevAppId: string;\r\n private isLoading: boolean;\r\n \r\n constructor() {\r\n this.createSideNav();\r\n window.addEventListener('popstate', () => {\r\n this.checkOpenSidenav();\r\n });\r\n }\r\n\r\n public checkOpenSidenav(): void {\r\n const currentUrl = new URL(window.location.href);\r\n if (currentUrl.pathname === '/services/software/product' && currentUrl.searchParams.get('code') && currentUrl.searchParams.get('appid')) { \r\n this.currentAppId = currentUrl.searchParams.get('appid');\r\n this.openSidenav();\r\n this.loadAppData();\r\n } else {\r\n this.closeSideNav(false);\r\n }\r\n }\r\n\r\n private getAppList(): void {\r\n const applicationsTable = document.getElementById('applicationsList');\r\n if (!applicationsTable) {\r\n return;\r\n }\r\n const applicationsList = applicationsTable.getAttribute('data-app-list');\r\n if (applicationsList) {\r\n this.appList = JSON.parse(applicationsList);\r\n this.setPrevAndNextApp();\r\n }\r\n }\r\n\r\n private setPrevAndNextApp(): void {\r\n if (this.appList.length < 2) {\r\n this.changeButtonsVisibility(true);\r\n return;\r\n }\r\n\r\n this.changeButtonsVisibility();\r\n const currentAppPosition = this.appList.indexOf(this.currentAppId);\r\n this.prevAppId = currentAppPosition === 0 ? this.appList[this.appList.length - 1] : this.appList[currentAppPosition - 1];\r\n this.nextAppId = currentAppPosition === this.appList.length - 1 ? this.appList[0] : this.appList[currentAppPosition + 1];\r\n }\r\n\r\n private changeButtonsVisibility(isHidden: boolean = false): void {\r\n if (isHidden) {\r\n this.sideNavButtons.classList.add('app-description__buttons_is-hidden');\r\n } else {\r\n this.sideNavButtons.classList.remove('app-description__buttons_is-hidden');\r\n }\r\n }\r\n\r\n private openSidenav(): void {\r\n this.sideNav.classList.add('app-description_is-opened');\r\n this.sideNavOverlay.classList.add('side-nav-overlay_is-open');\r\n document.documentElement.style.setProperty('overflow', `hidden`);\r\n document.body.style.setProperty('overflow', `hidden`);\r\n }\r\n\r\n private createSideNav(): void {\r\n this.sideNav = document.getElementById('sideNav');\r\n this.sideNavOverlay = document.getElementById('sideNavOverlay');\r\n this.preloader = document.getElementById('sideNavPreloader');\r\n this.sideNavContent = document.getElementById('sideNavContent');\r\n this.sideNavButtons = document.getElementById('sideNavButtons');\r\n\r\n this.sideNavOverlay.addEventListener('click', () => { this.closeSideNav(true); });\r\n document.getElementById('sideNavButtonLeft').addEventListener('click', () => { this.goToNextApp(this.prevAppId); });\r\n document.getElementById('sideNavButtonRight').addEventListener('click', () => { this.goToNextApp(this.nextAppId); });\r\n document.getElementById('sideNavExit').addEventListener('click', () => { this.closeSideNav(true); });\r\n\r\n this.getAppList();\r\n this.checkOpenSidenav();\r\n }\r\n\r\n private fillSideNavContent(content) {\r\n this.createSimpleElement('app-description__title', this.sideNavContent, content.title);\r\n this.createSimpleElement('app-description__business-line', this.sideNavContent, content.businessLine);\r\n this.createSimpleElement('app-description__section', this.sideNavContent, content.section);\r\n this.createSimpleElement('app-description__description', this.sideNavContent, content.description);\r\n this.createSimpleElement('content-block app-description__text', this.sideNavContent, content.content);\r\n }\r\n\r\n private fillSideNavErrorContent(error): void {\r\n this.createSimpleElement('app-description__error', this.sideNavContent, `Упс, ${error} ошибочка(`);\r\n }\r\n\r\n private createSimpleElement(className: string, parent: Element, content: string = ''): void {\r\n let element = document.createElement('div');\r\n element.className = className;\r\n element.innerHTML = content;\r\n parent.appendChild(element);\r\n }\r\n\r\n private goToNextApp(appId: string): void {\r\n if (this.isLoading) {\r\n return;\r\n }\r\n \r\n this.currentAppId = appId;\r\n this.loadAppData();\r\n this.changeUrl();\r\n }\r\n\r\n private changeUrl(): void {\r\n const currentUrl = new URL(window.location.href);\r\n let newUrl = `${currentUrl.pathname}?code=${currentUrl.searchParams.get('code')}`;\r\n newUrl += this.currentAppId ? `&appid=${this.currentAppId}${currentUrl.hash}` : currentUrl.hash;\r\n history.pushState(newUrl, '', newUrl);\r\n }\r\n\r\n private closeSideNav(isNeedChangeUrl: boolean): void {\r\n this.currentAppId = null;\r\n this.sideNavContent.innerHTML = '';\r\n if (isNeedChangeUrl) {\r\n this.changeUrl();\r\n }\r\n this.sideNav.classList.remove('app-description_is-opened');\r\n this.sideNavOverlay.classList.remove('side-nav-overlay_is-open');\r\n document.documentElement.style.setProperty('overflow', `auto`);\r\n document.body.style.setProperty('overflow', `auto`);\r\n }\r\n\r\n private changePreloaderState(isActive: boolean = false): void {\r\n if (isActive) {\r\n this.preloader.classList.add('app-description__preloader_is-active');\r\n } else {\r\n this.preloader.classList.remove('app-description__preloader_is-active');\r\n }\r\n }\r\n\r\n private loadAppData(): void {\r\n this.changePreloaderState(true);\r\n this.isLoading = true;\r\n this.sideNavContent.innerHTML = '';\r\n this.createRequest(`/api/v1/application?code=${this.currentAppId}`, { method: 'GET' })\r\n .then(response => {\r\n this.setPrevAndNextApp();\r\n this.fillSideNavContent(response);\r\n this.changePreloaderState();\r\n this.isLoading = false;\r\n })\r\n .catch(err => {\r\n this.changePreloaderState();\r\n this.fillSideNavErrorContent(err);\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n private createRequest = (url, options) => {\r\n return window.fetch(url, {\r\n headers: new Headers({\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\"\r\n }),\r\n method: options.method || \"GET\",\r\n }).then(response => {\r\n if (response.status === 200) {\r\n return response.json();\r\n } else {\r\n throw response.status;\r\n }\r\n });\r\n };\r\n}\r\n","export class FullImage {\r\n\r\n private imageContainer: HTMLElement;\r\n private isOpen: boolean;\r\n\r\n constructor(imageId) {\r\n this.initImage(imageId);\r\n }\r\n\r\n private initImage(imageId: string): void {\r\n this.imageContainer = document.getElementById(imageId);\r\n if (this.imageContainer) {\r\n this.imageContainer.children[0].addEventListener('click', () => !this.isOpen && this.openImage());\r\n\r\n const exitElement = document.createElement('div');\r\n exitElement.className = 'exit';\r\n exitElement.innerHTML = '';\r\n exitElement.addEventListener('click', () => this.closeImage());\r\n this.imageContainer.appendChild(exitElement); \r\n } \r\n }\r\n\r\n private openImage(): void {\r\n this.imageContainer.classList.add('full');\r\n this.isOpen = true;\r\n }\r\n\r\n private closeImage(): void {\r\n this.imageContainer.classList.remove('full');\r\n this.isOpen = false;\r\n }\r\n\r\n}"],"sourceRoot":""}