{"version":3,"file":"8154_bc4326841b03cd4770be.bundle.js","mappings":"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","sources":["webpack://tumarket/./js/common.js","webpack://tumarket/./js/global/toggle.js","webpack://tumarket/./js/global/cookie.js","webpack://tumarket/./js/global/loadlib.js","webpack://tumarket/./js/global/progressbar.js","webpack://tumarket/./js/global/uuid.js","webpack://tumarket/./js/lib/dateformat/dateformat.js"],"sourcesContent":["/* global tumarket, LiveTex */\n\nimport * as $ from \"jquery\";\n\nimport tumGlobal from \"./global.js\";\nimport { showDialog, closeDialog, showAlert } from \"./global/dialog\";\nimport { ajaxSend, request } from \"./global/fetch\";\nimport { bootstrapAlert } from \"./global/alert\";\nimport { getUrlParameter } from \"./global/url\";\nimport { getCookie, setCookie } from \"./global/cookie\";\nimport { loadLib } from \"./global/loadlib\";\nimport { getPrecompiledTemplate, loadPrecompiledTemplates } from \"./global/templates\";\nimport { initPopovers } from \"./global/popover\";\nimport { addEventDelegate, documentHeight, setValue, toggleClass } from \"./global/dom\";\nimport { isMob } from \"./global/util\";\nimport { searchWidgets } from \"./navbar/searchSelect.js\";\nimport { setToggle } from \"./global/toggle.js\";\n\nfunction _setTimeout(ms) {\n\treturn new Promise(resolve => {\n\t\tsetTimeout(resolve, ms);\n\t});\n}\n\nfunction showAdminOnlyStuff(){\n\tif (tumarket.isAdmin) {\n\t\tfor (let el of document.querySelectorAll('[data-admin-only]')){\n\t\t\ttoggleClass(el, 'd-none', false);\n\t\t}\n\t}\n}\n\nfunction toggleExtendedView(code) {\n\tif (code == \"enable\") {\n\t\ttoggleClass(\".tum-enableExtendedView i\", \"fa-toggle-on\", true);\n\t\ttoggleClass(\".tum-enableExtendedView i\", \"fa-toggle-off\", false);\n\t}\n\telse if (code == \"disable\") {\n\t\ttoggleClass(\".tum-enableExtendedView i\", \"fa-toggle-on\", false);\n\t\ttoggleClass(\".tum-enableExtendedView i\", \"fa-toggle-off\", true);\n\t}\n\telse {\n\t\ttoggleClass(\".tum-enableExtendedView i\", \"fa-toggle-off fa-toggle-on\");\n\t}\n\n\tif (document.querySelector(\".tum-enableExtendedView .fa-toggle-on\")) {\n\t\tsetCookie(\"extended_view\", \"1\", 30);\n\t}\n\telse {\n\t\tsetCookie(\"extended_view\", \"\", 30);\n\t}\n}\n\nlet searchIconBlinked = false;\n\nvar tumCommon = {\n\toptions: {\n\t\thideFloatingHeader: false\n\t},\n\tinit: function (options) {\n\t\tObject.assign(this.options, options);\n\t\tthis.initCallbacks();\n\n\t\tthis.checkAuthorization();\n\t\tthis.updateCartInfo();\n\t\tthis.checkCookies();\n\t\tthis.initHeader();\n\t\tthis.initFloatingHeader();\n\t\tthis.initCtuCloud();\n\t\tthis.initFloatingWindows();\n\t\tthis.initCacheControls();\n\t\tthis.initOperatorControls();\n\n\t\tinitPopovers();\n\n\t\taddEventDelegate('click', '.nobubble', (element, event) => {\n\t\t\tevent.stopPropagation();\n\t\t});\n\t\n\t\taddEventDelegate(document, 'click', '.copyToClipboard', element => {\n\t\t\tlet content = element.dataset.content;\n\t\t\ttumGlobal.copyToClipboard(content);\n\t\t\tbootstrapAlert('Скопировано в буфер обмена', { type: 'success' });\n\t\t});\n\n\t\tdocument.querySelector('[data-telegram-connect-suggestion-hide]')?.addEventListener('click', () => {\n\t\t\tsetCookie('hideTelegramMsg', '1', 1/24);\n\t\t\tdocument.querySelector('[data-telegram-connect-suggestion]').remove();\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '[data-dismiss=\"dropdown\"]', element => {\n\t\t\t$(element.closest('.dropdown')).dropdown('hide');\n\t\t});\n\n\t\tshowAdminOnlyStuff();\n\n\t\taddEventDelegate(document, 'click', '[data-clear-cache]', element => {\n\t\t\tajaxSend({\n\t\t\t\turl: '/requests/clearcache',\n\t\t\t\tdata: {\n\t\t\t\t\tprefix: element.dataset.prefix,\n\t\t\t\t\tfirmId: element.dataset.firmId\n\t\t\t\t}\n\t\t\t}).then(data => {\n\t\t\t\tif (data.result) bootstrapAlert('Кеш сброшен', { type: 'success' });\n\t\t\t\telse bootstrapAlert('Ошибка', { type: 'danger' });\n\t\t\t});\n\t\t});\n\n\t\taddEventDelegate(document, 'click', 'a.disabled', (element, event) => {\n\t\t\tevent.preventDefault();\n\t\t});\n\t},\n\tinitFloatingHeader: function(){\n\t\tvar self = this;\n\t\tif (!tumGlobal.isMob()) {\n\t\t\twindow.addEventListener('scroll', () => {\n\t\t\t\tlet showFloatingHeader = self.showFloatingHeader_desktop();\n\t\t\t\ttoggleClass('.header-floating', 'show', showFloatingHeader);\n\t\t\t\ttoggleClass('body', 'floating-header-shown', showFloatingHeader);\n\n\t\t\t\tif (document.querySelector('.header-floating.top')) {\n\t\t\t\t\ttoggleClass('body', 'floating-header-shown-top', showFloatingHeader);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn;\n\t\t}\n\n\t\twindow.addEventListener('scroll', () => this.updateFloatingHeader());\n\t\twindow.dispatchEvent(new Event('scroll'));\n\t},\n\tupdateFloatingHeader: function(){\n\t\tlet showFloatingHeader = this.showFloatingHeader_desktop();\n\t\ttoggleClass('.header-floating.bottom', 'show', showFloatingHeader && this.showFloatingHeader_mob() && !this.options.hideFloatingHeader);\n\t\ttoggleClass('.header-floating.top', 'show', showFloatingHeader);\n\n\t\ttoggleClass('body', 'floating-header-shown', showFloatingHeader);\n\t\tif (document.querySelector('.header-floating.top')) {\n\t\t\ttoggleClass('body', 'floating-header-shown-top', showFloatingHeader);\n\t\t}\n\t},\n\ttoggleTopBar: function(){\n\t\ttoggleClass('.topbar.main', 'd-none');\n\t},\n\ttoggleFloatingHeader: function(){\n\t\tthis.options.hideFloatingHeader = !this.options.hideFloatingHeader;\n\t},\n\tshowFloatingHeader_desktop: function(){\n\t\tlet header = document.querySelector('.header-floating');\n\t\tif (!header) return;\n\t\treturn window.scrollY > header.clientHeight;\n\t},\n\tshowFloatingHeader_mob: function(){\n\t\tlet header = document.querySelector('.header-floating');\n\t\tif (!header) return;\n\t\treturn window.scrollY < (documentHeight() - window.innerHeight - header.clientHeight * 3);\n\t},\n\tinitCtuCloud: function(){\n\t\tlet containers = document.querySelectorAll('.ctuCloud');\n\t\tfor (let cloud of containers) {\n\t\t\tif (cloud.scrollWidth <= cloud.offsetWidth) return;\n\t\t\t\n\t\t\tlet $back = cloud.querySelector('.ctuCloud-back');\n\t\t\tlet $forward = cloud.querySelector('.ctuCloud-forward');\n\t\t\t$forward?.classList.remove('d-md-none');\n\t\t\t$forward?.classList.add.addClass('d-md-block');\n\n\t\t\tlet maxScrollLeft = () => cloud.scrollWidth - cloud.offsetWidth;\n\t\t\tlet updateButtons = () => {\n\t\t\t\tlet showBack = cloud.scrollLeft > 0;\n\t\t\t\tlet showForward = cloud.scrollLeft < maxScrollLeft();\n\t\t\t\ttoggleClass($back, 'd-md-none', !showBack);\n\t\t\t\ttoggleClass($back, 'd-md-block', showBack);\n\t\t\t\ttoggleClass($forward, 'd-md-none', !showForward);\n\t\t\t\ttoggleClass($forward, 'd-md-block', showForward);\n\t\t\t};\n\t\t\t\n\t\t\t$back?.on('click', () => {\n\t\t\t\t$(cloud).animate({ scrollLeft: Math.max(0, cloud.scrollLeft - cloud.offsetWidth)}, 200, null, updateButtons);\n\t\t\t});\n\t\t\t\n\t\t\t$forward?.on('click', () => {\n\t\t\t\t$(cloud).animate({ scrollLeft: Math.min(maxScrollLeft(), cloud.scrollLeft + cloud.offsetWidth)}, 200, null, updateButtons);\n\t\t\t});\n\t\t}\n\t},\n\tinitCacheControls: function(){\n\t\taddEventDelegate(document, 'click', '.tum-toggleCache', () => {\n\t\t\tvar disableCache = getCookie(\"disableCache\");\n\t\t\tif (disableCache == \"1\") {\n\t\t\t\tsetCookie(\"disableCache\", \"0\", 1/24/2);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tsetCookie(\"disableCache\", \"1\", 1/24/2);\n\t\t\t}\n\t\t\tthis.updateCacheToggle();\n\t\t\tlocation.reload();\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.tum-toggleCache-long', () => {\n\t\t\tvar disableCache_long = getCookie(\"disableCache_long\");\n\t\t\tif (disableCache_long == \"1\") {\n\t\t\t\tsetCookie(\"disableCache_long\", \"0\", 1);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tsetCookie(\"disableCache_long\", \"1\", 1);\n\t\t\t}\n\t\t\tthis.updateCacheToggle();\n\t\t\tlocation.reload();\n\t\t});\n\t},\n\tinitOperatorControls: function(){\n\t\taddEventDelegate(document, 'click', '.tum-operatorAddonToggle', () => {\n\t\t\tvar enable = getCookie(\"enableOperatorAddon\");\n\t\t\tif (enable == \"1\") {\n\t\t\t\tsetCookie(\"enableOperatorAddon\", \"0\", 1);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tsetCookie(\"enableOperatorAddon\", \"1\", 1);\n\t\t\t}\n\t\t\tthis.updateOperatorAddonToggle();\n\t\t\tlocation.reload();\n\t\t});\n\t},\n\tloadLivetex: function(callback) {\n\t\tif (window.LiveTex) {\n\t\t\tcallback();\n\t\t\treturn;\n\t\t}\n\n\t\twindow.liveTex = true;\n\t\twindow.liveTexID = 170736;\n\t\twindow.liveTex_object = true;\n\t\twindow.LiveTex = {\n\t\t\tonLiveTexReady: function () {\n\t\t\t\tLiveTex.hideLabel();\n\t\t\t\tcallback();\n\t\t\t}\n\t\t};\n\n\t\tloadLib({\n\t\t\tjsLink: \"https://cs15.livetex.ru/js/client.js\",\n\t\t\tconditionObject: window._LiveTex\n\t\t});\n\t},\n\tinitCallbacks: function () {\n\t\tvar self = this;\n\n\t\taddEventDelegate(document, 'click', '[data-set-cookie]', element => {\n\t\t\tsetCookie(element.dataset.name, element.dataset.value, element.dataset.duration / 24);\n\t\t});\n\t\n\t\taddEventDelegate(document, 'change', '[data-set-input-value]', element => {\n\t\t\tsetValue(element.dataset.target, element.value);\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '[data-tum-toggle]', element => {\n\t\t\tsetToggle(element);\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '[data-scrollup]', () => {\n\t\t\ttumGlobal.scrollUp();\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.tum-collapse-link', element => { this.collapseLinkClick($(element)) });\n\t\taddEventDelegate(document, 'click', '.tum-collapse-link2', element => { this.collapseLinkClick2($(element)) });\n\t\t\n\t\taddEventDelegate(document, 'click', '.tum-collapse-link-info', element => { this.collapseLinkInfoClick($(element)) });\n\t\taddEventDelegate(document, 'resize', 'body', () => { this.checkPageHeight() });\n\n\t\taddEventDelegate(document, 'click', '.tu-getShortUrl', element => { \n\t\t\tlet url = $(element).attr('data-url');\n\t\t\tthis.getShortUrl(url);\n\t\t});\n\n\t\tself.checkPageHeight();\n\n\t\taddEventDelegate(document, 'click', '.informer-not-yet-working:not(.d-none)', (element, e) => {\n\t\t\te.preventDefault();\n\t\t\tvar docHeight = $(document).height();\n\t\t\tvar pos = $(element).offset();\n\t\t\t$('.informer-not-yet-working-block').show();\n\t\t\tvar c_top = pos.top + 25;\n\t\t\tvar c_left = pos.left - $('.informer-not-yet-working-block').width() + 4;\n\t\t\tif (c_top > docHeight || docHeight - c_top < 100)\n\t\t\t\tc_top = pos.top - 100;\n\t\t\tif (c_left < 0) c_left = 50;\n\t\t\t$('.informer-not-yet-working-block').offset(function () {\n\t\t\t\treturn { top: c_top, left: c_left }\n\t\t\t});\t\n\t\t});\n\n\t\t$(document).mouseup(function (e) {\n\t\t\tvar container = $(\".informer-not-yet-working-block\");\n\t\t\t// if the target of the click isn't the container nor a descendant of the container\n\t\t\tif (!container.is(e.target) && container.has(e.target).length === 0 && $(\".informer-not-yet-working-block\").length > 0) {\n\t\t\t\t$(container).hide();\n\t\t\t}\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-seofooter-hide\", () => {\n\t\t\ttoggleClass(\".tum-seofooter\", 'd-none');\n\n\t\t\tlet shown = !$('.tum-seofooter-content').hasClass('d-none');\n\t\t\tthis.setSeoFooterCookie(shown ? 0 : 1);\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.tum-focusSearch, .tu-show-searh, .show-search-menu-focus, .b-catalog-find', element => {\n\t\t\ttumGlobal.scrollUp();\n\n\t\t\tthis.showSearchTypes(element.dataset.code, element.dataset.startSearch == '');\n\t\t});\n\n\t\t//клик по ридмору или меню в миниатуюре ТУ или КА подсвечивает краточку\n\t\taddEventDelegate(document, 'click', \".b-product\", element => {\n\t\t\t$(element).addClass(\"important-border\");\n\t\t});\n\n\t\t//подсказки для доставки по миниатюрам ТУ\n\t\taddEventDelegate(document, 'click', '.tum-isFix-hint-deliv', element => {\n\t\t\tvar text = $(element).attr(\"data-content\");\n\t\t\tvar elem = $(element).closest(\".hasHint_deliv\");\n\t\t\tif ($(element).hasClass(\"d-none\")) {\n\t\t\t\tthis.showHintDeliv(text, elem, true);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.showHintDeliv(text, elem);\n\t\t});\n\t\t\n\t\taddEventDelegate(document, 'click', \".hideHintDeliv\", (element, e) => {\n\t\t\te.preventDefault();\n\t\t\t$(element).closest(\".tum-hint-block-deliv\").addClass(\"d-none\");\n\t\t});\n\n\t\tself.defineSearchType();\n\t\tself.defineSearchOpen();\n\n\t\taddEventDelegate(document, 'click', '.operatorChat', () => {\n\t\t\tthis.loadLivetex(() => LiveTex.showWelcomeWindow());\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.tu-showFirmOnMap', (element, e) => {\n\t\t\te.stopPropagation();\n\t\t\tself.showFirmOnMap({\n\t\t\t\tlat: $(element).attr('data-lat'),\n\t\t\t\tlong: $(element).attr('data-long'),\n\t\t\t\tfirmID: $(element).attr('data-firmid')\n\t\t\t});\n\t\t});\n\t\t\n\t\taddEventDelegate(document, 'click', '.tu-editUpdateFailureNotificationContacts', element => {\n\t\t\tthis.editFailureNotificationContacts($(element).attr('data-firmid'));\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.tu-scrollUp', () => tumGlobal.scrollUp());\n\n\t\taddEventDelegate(document, 'click', '[data-wt-update]', element => {\n\t\t\tlet firmID = $(element).attr('data-firmid');\n\n\t\t\tajaxSend({ url: '/firmRequests/UpdateProductWeights', data: { firmID }}).then(data => {\n\t\t\t\tif (data.result) {\n\t\t\t\t\tlet msg = $('[data-wt-update-success-msg]').html();\n\t\t\t\t\tshowAlert(msg, { type: 'success2' });\n\t\t\t\t\t$('[data-wt-update-container]').remove();\n\t\t\t\t} else {\n\t\t\t\t\tlet msg = $('[data-wt-update-failure-msg]').html();\n\t\t\t\t\tshowAlert(msg, { type: 'danger2' });\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-enableExtendedView\", () => {\n\t\t\ttoggleExtendedView();\n\t\t});\n\t},\n\tshowSearchTypes: function(code, startSearch){\n\t\tif (!tumGlobal.isMob()){\n\t\t\tsearchWidgets.main.focus();\n\t\t\tsearchWidgets.main.toggleSearchTypes('show');\n\n\t\t\tif (code) searchWidgets.main.setSearchType(code);\n\t\t\tif (code && startSearch && searchWidgets.main.getQuery()) {\n\t\t\t\tsearchWidgets.main.search(searchWidgets.main.getSearchType().type, searchWidgets.main.getQuery());\n\t\t\t}\n\t\t} else {\n\t\t\timport(\"./searchMenu\").then(({tum_searchMenu}) => {\n\t\t\t\ttum_searchMenu.toggleMenu('show')\n\t\t\t\t.then(() => {\n\t\t\t\t\ttum_searchMenu.focusSearch();\n\t\t\t\t\ttum_searchMenu.toggleSearchTypes('show');\n\n\t\t\t\t\tif (code) tum_searchMenu.setSearchType(code);\n\t\t\t\t\tif (code && startSearch && tum_searchMenu.getSearchQuery()) {\n\t\t\t\t\t\ttum_searchMenu.search();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t},\n\tcheckCookies: function(){\n\t\tfunction showNoCookiesWarning(){\n\t\t\t$('.tum-noCookies-warning').removeClass('d-none');\n\t\t}\n\n\t\tvar cookieEnabled = navigator.cookieEnabled;\n\t\tif (!cookieEnabled){ \n\t\t\tsetCookie('testcookie', \"123\", 1);\n\t\t\tcookieEnabled = getCookie(\"testcookie\") == \"123\";\n\t\t\tif (cookieEnabled) {\n\t\t\t\tsetCookie('testcookie', '0', -1);\n\t\t\t}\n\t\t}\n\t\treturn cookieEnabled || showNoCookiesWarning();\n\t},\n\tupdateCartInfo: function(){\n\t\tvar cartCnt = tumarket.general.cartCount;\n\t\t$('.signIn-cart-warning .menu-count-cart').text(cartCnt);\n\n\t\tif (cartCnt > 0) {\n\t\t\t$(\".signIn-cart-warning\").removeClass(\"d-none\");\n\t\t}\n\n\t\tif (location.pathname.startsWith(\"/signup\")) {\n\t\t\timport(\"./login.js\").then(({ reg }) => {\n\t\t\t\t$(`input[name=saveCartItems][value=\"${(reg.options.saveCartItems ? \"1\" : \"0\")}\"]`).prop(\"checked\", true);\n\t\t\t});\n\t\t}\n\t},\n\tupdateCacheToggle: function(){\n\t\tvar disableCache = getCookie(\"disableCache\");\n\t\tif (disableCache == \"1\") {\n\t\t\t$(\".tum-toggleCache i\").removeClass(\"fa-toggle-off\").addClass(\"fa-toggle-on\");\n\t\t}\n\t\telse {\n\t\t\t$(\".tum-toggleCache i\").removeClass(\"fa-toggle-on\").addClass(\"fa-toggle-off\");\n\t\t}\n\n\t\tvar disableCache_long = getCookie(\"disableCache_long\");\n\t\tif (disableCache_long == \"1\") {\n\t\t\t$(\".tum-toggleCache-long i\").removeClass(\"fa-toggle-off\").addClass(\"fa-toggle-on\");\n\t\t}\n\t\telse {\n\t\t\t$(\".tum-toggleCache-long i\").removeClass(\"fa-toggle-on\").addClass(\"fa-toggle-off\");\n\t\t}\n\t},\n\tupdateOperatorAddonToggle: function(){\n\t\tvar enable = getCookie(\"enableOperatorAddon\");\n\t\tif (enable == \"1\") {\n\t\t\t$(\".tum-operatorAddonToggle i\").removeClass(\"fa-toggle-off\").addClass(\"fa-toggle-on\");\n\t\t}\n\t\telse {\n\t\t\t$(\".tum-operatorAddonToggle i\").removeClass(\"fa-toggle-on\").addClass(\"fa-toggle-off\");\n\t\t}\n\t},\n\tcollapseLinkClick: function (elm) {\t\t\n\t\telm.toggleClass('d-none');\n\t},\n\tcollapseLinkInfoClick: function (elm) {\n\t\tvar selector = $(elm).attr('data-main-link');\n\t\t$(selector).removeClass('d-none');\n\t},\n\tcollapseLinkClick2: function (elm) {\n\t\tvar id = elm.closest('div').attr('id');\n\t\tsetTimeout(function () {$('a.tum-collapse-link[href=\"#' + id + '\"]').removeClass('d-none'); }, 100);\n\t\t\n\t},\n\tcheckPageHeight: function () {\n\t\tif ($('body')[0].scrollHeight < window.innerHeight) {\n\t\t\t$('body').addClass('stuck-bottom');\n\t\t\t$('.b-footer').addClass('stuck-bottom');\n\t\t} else {\n\t\t\t$('body').removeClass('stuck-bottom');\n\t\t\t$('.b-footer').removeClass('stuck-bottom');\n\t\t}\n\t},\n\t//устанавливает тип поиска если таковой был передан\n\tdefineSearchType: function () {\n\t\tif (getUrlParameter(\"search-type\")) {\n\t\t\tvar searchType = getUrlParameter(\"search-type\");\n\t\t\t$(\"[data-search-type='\" + searchType + \"']\").first()[0]?.click();\n\t\t}\n\t},\n\t//открываем поиски если был передан параметр\n\tdefineSearchOpen: function () {\n\t\tif (getUrlParameter(\"search-open\") == \"1\") {\n\t\t\tthis.showSearchTypes();\n\t\t}\n\t},\n\tshowHintDeliv: function (txt, elem, close) {\n\t\tvar hintBlock = $(elem).find(\".tum-hint-block-deliv\");\n\t\tif (close) {\n\t\t\thintBlock.addClass(\"d-none\");\n\t\t\treturn;\n\t\t}\n\t\thintBlock.removeClass(\"d-none\");\n\t\thintBlock.html('
Закрыть
' + txt);\n\t\thintBlock.addClass('hintBorder');\n\t},\n\tcheckAuthorization: function(){\n\t\tlet isAuthorized = $(\".t-authorized\").html() == \"True\";\n\n\t\tif (isAuthorized) {\n\t\t\tajaxSend({ url: \"/home/checkAuthorization\" }).then(data => {\n\t\t\t\tif (!data.result) {\n\t\t\t\t\tlocation.reload();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n\tgetShortUrl: function (url) {\n\t\tajaxSend({ url: '/shortLink/getShortUrl', data: { url: url || location.href } }).then(data => {\n\t\t\tvar title = 'Ссылка для товаров и услуг';\n\t\t\tvar html = `Скопировано в буфер обмена
\n\t\t\t\t\t\t${data.result}`;\n\n\t\t\ttumGlobal.copyToClipboard(data.result);\n\n\t\t\tshowDialog({\n\t\t\t\ttitle: title,\n\t\t\t\tcontent: html,\n\t\t\t\tonShown: () => $('#asModal .btn-primary').remove()\n\t\t\t});\n\t\t});\n\t},\n\tshowFirmOnMap: function(options){\n\t\tlet self = this;\n\n\t\timport(\"./map.js\").then(({ tu_maps }) => {\n\t\t\tshowDialog({\n\t\t\t\ttitle: 'На карте',\n\t\t\t\tcontent: '
',\n\t\t\t\tonShown: () => {\n\t\t\t\t\t$('.btn-primary', '#asModal').addClass('d-none');\n\t\n\t\t\t\t\tself.currentMap = tu_maps.create({\n\t\t\t\t\t\tcontainerId: 'menu-map-cont',\n\t\t\t\t\t\tcenter: {\n\t\t\t\t\t\t\tlat: options.lat,\n\t\t\t\t\t\t\tlong: options.long\n\t\t\t\t\t\t},\n\t\t\t\t\t\theight: null,\n\t\t\t\t\t\tzoom: 16,\n\t\t\t\t\t\tonLoad: (ymap, modules, map) => {\n\t\t\t\t\t\t\tlet placemark = new modules.Placemark([options.lat, options.long]);\n\t\n\t\t\t\t\t\t\tfunction showBalloon() {\n\t\t\t\t\t\t\t\tmap.getBalloonContent(options.firmID, 0, true)\n\t\t\t\t\t\t\t\t\t.then(e => map.showCustomBalloon(e, true));\n\t\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t\tplacemark.events.add('click', function () {\n\t\t\t\t\t\t\t\tshowBalloon();\n\n\t\t\t\t\t\t\t\timport(\"./statistics.js\").then(({ tumStats }) => {\n\t\t\t\t\t\t\t\t\ttumStats.logEvent({\n\t\t\t\t\t\t\t\t\t\tfirmID: options.firmID,\n\t\t\t\t\t\t\t\t\t\tobjectType: 'map',\n\t\t\t\t\t\t\t\t\t\teventType: 'click_showContacts'\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t\tymap.geoObjects.add(placemark);\n\t\t\t\t\t\t\tshowBalloon();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tonClosed: () => {\n\t\t\t\t\t$('#asModal .btn-primary').removeClass('d-none');\n\t\t\t\t\ttu_maps.dropSettingsModal();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t},\n\t_getSearchBarTop: function(){\n\t\tlet searchbar = document.querySelector('.searchWidget');\n\t\treturn searchbar.getBoundingClientRect().top + window.scrollY;\n\t},\n\tupdateSearchMenuButton: function(){\n\t\tlet searchBarTop = this._getSearchBarTop();\n\t\tlet searchMenuButton = document.querySelector('.topbar .toggleSearchMenu');\n\n\t\tlet show = window.scrollY >= searchBarTop - 20;\n\n\t\tif (!searchIconBlinked) {\n\t\t\t_setTimeout(333).then(() => this.blinkSearchIcon());\n\t\t}\n\n\t\tlet active = searchMenuButton.matches('.active');\n\t\tlet shown = searchMenuButton.matches('.show');\n\n\t\t//если иконка сейчас мигает, то ее можно скрыть, но нельзя \"показать\", иначе ломается анимация\n\t\tif (active && !shown) {\n\t\t\tif (!show) {\n\t\t\t\ttoggleClass(searchMenuButton, 'show active', show);\t\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\ttoggleClass(searchMenuButton, 'show active', show);\n\t},\n\tinitHeader: function(){\n\t\tsetInterval(() => this.blinkSearchIcon(), 10000);\n\t\tif (!tumGlobal.isMob() || !searchWidgets.main.exists()) {\n\t\t\tlet $searchMenuButton = $('.topbar .toggleSearchMenu');\n\t\t\t$searchMenuButton.addClass('show active');\n\t\t\treturn;\n\t\t} \n\t\t\n\t\t//кнопка меню поиска появляется, только когда поле поиска на странице скрывается с экрана\n\t\tthis.updateSearchMenuButton();\n\t\t$(document).on('scroll', () => this.updateSearchMenuButton());\n\t},\n\tblinkSearchIcon: function(){\n\t\tlet searchMenuButton = document.querySelector('.topbar .toggleSearchMenu');\n\t\tif (!searchMenuButton?.matches('.active')) return;\n\n\t\tlet delay = 333;\n\t\t\n\t\ttoggleClass(searchMenuButton, 'show', false);\n\t\t_setTimeout(delay)\n\t\t.then(() => toggleClass(searchMenuButton, 'show', true))\n\t\t.then(() => _setTimeout(delay))\n\t\t.then(() => toggleClass(searchMenuButton, 'show', false))\n\t\t.then(() => _setTimeout(delay))\n\t\t.then(() => {\n\t\t\tsearchIconBlinked = true\n\t\t\t\n\t\t\t//проверка на случай, если за время анимации иконка скрылась\n\t\t\tif (searchMenuButton.matches('.active')) {\n\t\t\t\ttoggleClass(searchMenuButton, 'show', true);\n\t\t\t}\n\t\t});\n\t},\n\tgetCartCount: function(){\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tajaxSend({ url: '/home/getCartCount' }).then(data => {\n\t\t\t\tif (data.result) resolve(data.count);\n\t\t\t\telse reject('getCartCount error');\n\t\t\t});\n\t\t});\n\t},\n\tgetCartSum: function(){\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tajaxSend({ url: '/home/getCartSum' }).then(data => {\n\t\t\t\tif (data.result) resolve(data.sum);\n\t\t\t\telse reject('getCartSum error');\n\t\t\t});\n\t\t});\n\t},\n\tgetFavoritesCount: function(){\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tajaxSend({ url: '/home/getFavoritesCount' }).then(data => {\n\t\t\t\tif (data.result) resolve(data.count);\n\t\t\t\telse reject('getFavoritesCount error');\n\t\t\t});\n\t\t});\n\t},\n\tgetNotificationsCount: function(){\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tajaxSend({ url: '/home/getNotificationsCount' }).then(data => {\n\t\t\t\tif (data.result) resolve(data.count);\n\t\t\t\telse reject('getNotificationsCount error');\n\t\t\t});\n\t\t});\n\t},\n\t_updateCartCount: function(){\n\t\tlet $count = $('.topbar .cart-count');\n\t\t$count.html(tumarket.general.cartCount);\n\t\t$count.toggleClass('d-none', tumarket.general.cartCount == 0);\n\t},\n\t_updateCartSum: function(){\n\t\tlet $cart = $('.topbar .topbar-cart');\n\t\t$cart.attr('title', tumarket.general.cartSum > 0 ? `Сумма: ${tumarket.general.cartSum.toFixed(2)}р` : null)\n\t\t$cart.toggleClass('d-none', tumarket.general.cartSum == 0);\n\t},\n\t_updateFavoritesCount: function(){\n\t\tlet $count = $('.topbar .favorites-count');\n\t\t$count.html(tumarket.general.favoritesCount);\n\t\t$count.toggleClass('d-none', tumarket.general.favoritesCount == 0);\n\t},\n\t_updateNotificationsCount: function(){\n\t\tlet $count = $('.topbar .notifications-count');\n\t\t$count.html(tumarket.general.notificationsCount);\n\t\t$count.toggleClass('d-none', tumarket.general.notificationsCount == 0);\n\t},\n\tupdateCartCount: function(){\n\t\tthis.getCartCount()\n\t\t.then(count => {\n\t\t\ttumarket.general.cartCount = count;\n\t\t\tthis._updateCartCount();\n\t\t});\n\t},\n\tupdateCartSum: function(){\n\t\tthis.getCartSum()\n\t\t.then(sum => {\n\t\t\ttumarket.general.cartSum = sum;\n\t\t\tthis._updateCartSum();\n\t\t});\n\t},\n\tupdateFavoritesCount: function(){\n\t\tthis.getFavoritesCount()\n\t\t.then(count => {\n\t\t\ttumarket.general.favoritesCount = count;\n\t\t\tthis._updateFavoritesCount();\n\t\t});\n\t},\n\tupdateNotificationsCount: function(){\n\t\tthis.getNotificationsCount()\n\t\t.then(count => {\n\t\t\ttumarket.general.notificationsCount = count;\n\t\t\tthis._updateNotificationsCount();\n\t\t});\n\t},\n\tisHeaderFloating: function(){\n\t\treturn $('.header-floating').hasClass('show');\n\t},\n\tgetFirmSettings: function(firmId) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tajaxSend({ url: '/firmRequests/getFirmSettings', data: { firmId } }).then(data => {\n\t\t\t\tif (data.result) resolve(data.value);\n\t\t\t\telse reject(data.msg);\n\t\t\t});\n\t\t});\n\t},\n\teditFailureNotificationContacts: function(firmId) {\n\t\tPromise.all([\n\t\t\tthis.getFirmSettings(firmId),\n\t\t\tthis.getUserRole(firmId),\n\t\t\tloadPrecompiledTemplates(['updateFailureNotificationContacts-form'])\n\t\t])\n\t\t.then(results => {\n\t\t\tlet form = null;\n\t\t\tlet formJson = getPrecompiledTemplate('updateFailureNotificationContacts-form')();\n\t\t\tlet formFields = JSON.parse(formJson);\n\t\t\tlet formData = JSON.parse(results[0].updateFailureNotificationContacts || '{}');\n\n\t\t\tshowDialog({\n\t\t\t\ttitle: 'Контакты при сбоях в обновлении',\n\t\t\t\tcontent: '
',\n\t\t\t\tbuttonText: 'Сохранить',\n\t\t\t\tonShown: () => {\n\t\t\t\t\timport(\"./form/form.js\").then(({ tu_form }) => {\n\t\t\t\t\t\ttu_form.create({\n\t\t\t\t\t\t\tcontainer: '.contacts-form',\n\t\t\t\t\t\t\tfields: formFields,\n\t\t\t\t\t\t\tdata: formData,\n\t\t\t\t\t\t\tuserRoles: [results[1]]\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.then(f => form = f);\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t\tonSubmit: () => {\n\t\t\t\t\tif (!form) return;\n\n\t\t\t\t\tif (!form.validate()) {\n\t\t\t\t\t\tbootstrapAlert('Не все поля заполнены корректно', { type: 'danger' });\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet data = form.getData();\n\n\t\t\t\t\tfunction alert(){\n\t\t\t\t\t\tbootstrapAlert('Контакт с выбранным приоритетом должен быть заполнен', { type: 'danger' });\n\t\t\t\t\t}\n\n\t\t\t\t\tif (data.tech.priority == 'phone' && !data.tech.phone) {\n\t\t\t\t\t\talert();\n\t\t\t\t\t\tform.addHighlight({ name: 'tech', field: 'phone' });\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (data.tech.priority == 'email' && !data.tech.email) {\n\t\t\t\t\t\talert();\n\t\t\t\t\t\tform.addHighlight({ name: 'tech', field: 'email' });\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (data.org.priority == 'phone' && !data.org.phone) {\n\t\t\t\t\t\talert();\n\t\t\t\t\t\tform.addHighlight({ name: 'org', field: 'phone' });\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (data.org.priority == 'email' && !data.org.email) {\n\t\t\t\t\t\talert();\n\t\t\t\t\t\tform.addHighlight({ name: 'org', field: 'email' });\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.updateFirmSettings(firmId, { updateFailureNotificationContacts: JSON.stringify(data) })\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\tbootstrapAlert('Сохранено', { type: 'success' });\n\t\t\t\t\t\tcloseDialog();\n\t\t\t\t\t})\n\t\t\t\t\t.catch(msg => bootstrapAlert(msg || 'Ошибка', { type: 'danger' }));\n\t\t\t\t}\n\t\t\t});\n\t\t})\n\t\t.catch(msg => showAlert(msg || 'Ошибка', { type: 'danger2' }))\n\t},\n\tupdateFirmSettings: function(firmId, settings) {\n\t\tsettings.firmId = firmId;\n\t\treturn new Promise((resolve, reject) => {\n\t\t\trequest('firm-settings-update', settings).then(data => {\n\t\t\t\tif (data.result) resolve();\n\t\t\t\telse reject(data.msg);\n\t\t\t});\n\t\t});\n\t},\n\tcheckPermissions: function(firmID){\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tajaxSend({ url: '/firmRequests/checkPermissions', data: { firmID } }).then(data => {\n\t\t\t\tif (data.result) resolve(data.value);\n\t\t\t\telse reject(data.msg);\n\t\t\t});\n\t\t});\n\t},\n\tgetUserRole: function(firmID){\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tajaxSend({ url: '/firmRequests/getUserRole', data: { firmID } }).then(data => {\n\t\t\t\tif (data.result) resolve(data.value);\n\t\t\t\telse reject(data.msg);\n\t\t\t});\n\t\t});\n\t},\n\t/**\n\t * Создает плавающее окно\n\t * По умолчанию у него display: none. Чтобы показать, $('.floating-window', $wrapper).removeClass('d-none'),\n\t * где $wrapper - то, что возвращает эта функция\n\t * @name уникальный идентификатор. Если уже существует, берется существующее окно.\n\t * @html\n\t * @top\n\t * @bottom\n\t * @left\n\t * @right\n\t * @returns {object} Обертка над окном\n\t */\n\tgetFloatingWindow: function(options){\n\t\tlet $wrapper = $('.floating-window-wrapper[data-name=\"' + options.name + '\"]');\n\n\t\tif (!$wrapper.length) {\n\t\t\t$wrapper = $(`\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t${options.html}\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t`);\n\n\t\t\tlet $window = $('.floating-window', $wrapper);\n\t\t\tif (options.top) $window.css('top', options.top);\n\t\t\tif (options.bottom) $window.css('bottom', options.bottom);\n\t\t\tif (options.left) $window.css('left', options.left);\n\t\t\tif (options.right) $window.css('right', options.right);\n\t\t\t$('body').append($wrapper);\n\n\t\t\ttumGlobal.onClickOutside($window.add(options.button), () => $window.addClass('d-none'));\n\t\t}\n\t\t\n\t\treturn $wrapper;\n\t},\n\tinitFloatingWindows: function(){\n\t\taddEventDelegate(document, 'click', '[data-toggle=\"floatingwindow\"]', element => {\n\t\t\tif (isMob()) {\n\t\t\t\tshowDialog({\n content: `
${$($(element).attr('data-contenttarget')).html()}
`,\n pinToBottom: true,\n\t\t\t\t\tclasses: \"opened-as-floating\"\n });\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet options = {\n\t\t\t\tname: $(element).attr('data-name'),\n\t\t\t\thtml: $($(element).attr('data-contenttarget')).html(),\n\t\t\t\ttop: $(element).attr('data-top'),\n\t\t\t\tbottom: $(element).attr('data-bottom'),\n\t\t\t\tleft: $(element).attr('data-left'),\n\t\t\t\tright: $(element).attr('data-right'),\n\t\t\t\tbutton: $(element)\n\t\t\t};\n\n\t\t\tlet $windowWrapper = this.getFloatingWindow(options);\n\t\t\t$('.floating-window', $windowWrapper).toggleClass('d-none');\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.floating-window-close', element => {\n\t\t\tlet $window = $(element).closest('.floating-window');\n\t\t\t$window.toggleClass('d-none');\n\n\t\t\t$('.modal.show.opened-as-floating').modal('hide');\n\t\t});\n\t},\n\tsetSeoFooterCookie: function(value){\n\t\treturn new Promise(resolve => ajaxSend({ url: '/home/setSeoFooterCookie', data: { value } }).then(resolve));\n\t},\n\tgetFirmSchedule: function(firmID, depID){\n\t\treturn new Promise(resolve => ajaxSend({ url: '/FirmRequests/GetFirmSchedule', data: { firmID: firmID, depID: depID } }).then(resolve));\n\t}\n}\n\nArray.prototype.diff = function (a) {\n\treturn this.filter(function (i) {\n\t\treturn a.indexOf(i) === -1;\n\t});\n};\n\nexport default tumCommon;","import { toggleClass } from \"./dom\";\n\n/**\n * \n * @param {HTMLElement} element \n * @param {boolean} value\n */\nfunction setToggle(element, value) {\n toggleClass(element, 'fa-toggle-on', value);\n toggleClass(element, 'fa-toggle-off', value == undefined ? undefined : !value);\n element.dispatchEvent(new Event(\"tum.toggle.change\", { bubbles: true }));\n}\n\nexport { setToggle };\n","let _version = \"\";\nlet _domain = \"\";\n\n/**\n * @typedef {object} CookieOptions\n * @property {string} version\n * @property {string} domain\n */\n\n/**\n * \n * @param {CookieOptions} param0 \n */\nfunction initCookies({ version, domain }) {\n _version = version;\n _domain = domain;\n}\n\n/**\n * \n * @param {string} name \n * @param {string} value \n * @param {number} [days] \n */\nfunction setCookie(name, value, days = 30) {\n if (_version) {\n name = name + \"_\" + _version;\n }\n\n var expires;\n if (days) {\n var date = new Date();\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\n expires = \"; expires=\" + date.toUTCString();\n } else {\n expires = \"\";\n }\n\n var domain = \"\";\n if (_domain) {\n var domainName = _domain.startsWith(\".\") ? _domain.substring(1) : _domain;\n\n if (!location.hostname.includes(domainName)) {\n _domain = location.hostname;\n }\n\n if (location.href.toLowerCase().indexOf(domainName.toLowerCase()) > -1) {\n domain = \"; domain=\" + _domain;\n }\n }\n\n document.cookie = name + \"=\" + encodeURIComponent(value) + expires + domain + \"; path=/\";\n}\n\n/**\n * \n * @param {string} c_name \n * @returns {string}\n */\nfunction getCookie(c_name) {\n if (_version) {\n c_name = c_name + \"_\" + _version;\n }\n\n if (document.cookie.length > 0) {\n var c_start = document.cookie.indexOf(c_name + \"=\");\n if (c_start != -1) {\n c_start = c_start + c_name.length + 1;\n var c_end = document.cookie.indexOf(\";\", c_start);\n if (c_end == -1) {\n c_end = document.cookie.length;\n }\n return decodeURIComponent(document.cookie.substring(c_start, c_end));\n }\n }\n\n return \"\";\n}\n\nwindow.getCookie = getCookie;\nwindow.setCookie = setCookie;\n\nexport { getCookie, setCookie, initCookies };","/* global tumarket */\n\nimport * as $ from \"jquery\";\nimport { openProgressbar, closeProgressbar } from \"./progressbar\";\n\n/**\n * @typedef {object} Lib\n * @property {any} [conditionObject]\n * @property {string} [cssLink]\n * @property {string} [jsLink]\n * @property {boolean} [showProgressbar=true]\n */\n\n/**\n * \n * @param {Lib} param0 \n * @returns \n */\nfunction loadLib({ jsLink, cssLink, conditionObject, showProgressbar = true, useVersion = true }) {\n if (cssLink) {\n if (useVersion) {\n cssLink = `${cssLink}?v=${tumarket.cacheDate || ''}`;\n }\n\n if (!document.querySelector(`link[rel=\"stylesheet\"][href=\"${cssLink}\"]`)) {\n $('head').append(``);\n }\n\n return Promise.resolve();\n }\n\n if (!conditionObject) {\n if (showProgressbar) openProgressbar();\n \n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n document.body.appendChild(script);\n script.onload = resolve;\n script.onerror = reject;\n script.async = true;\n script.src = jsLink;\n }).then(() => {\n if (showProgressbar) closeProgressbar();\n });\n }\n\n return Promise.resolve();\n}\n\nexport { loadLib };\n","import * as $ from \"jquery\";\n\nfunction openProgressbar() {\n if (!$('.as-progCont').length){\n $('body').append(\"
\");\n }\n\n $('.as-progCont').html('
Подождите...
');\n}\n\nfunction closeProgressbar() {\n $('.as-overlay').fadeOut('slow', function () {\n $(this).remove();\n });\n}\n\nexport { openProgressbar, closeProgressbar };\n","function newUuid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\n return v.toString(16);\n });\n}\n\nexport { newUuid };","/*\n * Date Format 1.2.3\n * (c) 2007-2009 Steven Levithan \n * MIT license\n *\n * Includes enhancements by Scott Trenda \n * and Kris Kowal \n *\n * Accepts a date, a mask, or a date and a mask.\n * Returns a formatted version of the given date.\n * The date defaults to the current date/time.\n * The mask defaults to dateFormat.masks.default.\n */\n\n/* forked from https://stevenlevithan.com/assets/misc/date.format.js */\n\nvar dateFormat = function () {\n\tvar\ttoken = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\\1?|[LloSZ]|\"[^\"]*\"|'[^']*'/g,\n\t\ttimezone = /\\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\\d{4})?)\\b/g,\n\t\ttimezoneClip = /[^-+\\dA-Z]/g,\n\t\tpad = function (val, len) {\n\t\t\tval = String(val);\n\t\t\tlen = len || 2;\n\t\t\twhile (val.length < len) val = \"0\" + val;\n\t\t\treturn val;\n\t\t};\n\n\t// Regexes and supporting functions are cached through closure\n\treturn function (date, mask, utc) {\n\t\t// You can't provide utc if you skip other args (use the \"UTC:\" mask prefix)\n\t\tif (arguments.length == 1 && Object.prototype.toString.call(date) == \"[object String]\" && !/\\d/.test(date)) {\n\t\t\tmask = date;\n\t\t\tdate = undefined;\n\t\t}\n\n\t\t// Passing date through Date applies Date.parse, if necessary\n\t\tdate = date ? new Date(date) : new Date;\n\t\tif (isNaN(date)) throw SyntaxError(\"invalid date\");\n\n\t\tmask = String(mask);\n\n\t\t// Allow setting the utc argument via the mask\n\t\tif (mask.slice(0, 4) == \"UTC:\") {\n\t\t\tmask = mask.slice(4);\n\t\t\tutc = true;\n\t\t}\n\n\t\tvar\t_ = utc ? \"getUTC\" : \"get\",\n\t\t\td = date[_ + \"Date\"](),\n\t\t\tm = date[_ + \"Minutes\"](),\n\t\t\ty = date[_ + \"FullYear\"](),\n\t\t\tH = date[_ + \"Hours\"](),\n\t\t\tM = date[_ + \"Month\"](),\n\t\t\ts = date[_ + \"Seconds\"](),\n\t\t\tL = date[_ + \"Milliseconds\"](),\n\t\t\to = utc ? 0 : date.getTimezoneOffset(),\n\t\t\tflags = {\n\t\t\t\td: d,\n\t\t\t\tdd: pad(d),\n\t\t\t\tm: m,\n\t\t\t\tmm: pad(m),\n\t\t\t\tyy: String(y).slice(2),\n\t\t\t\tyyyy: y,\n\t\t\t\th: H % 12 || 12,\n\t\t\t\thh: pad(H % 12 || 12),\n\t\t\t\tH: H,\n\t\t\t\tHH: pad(H),\n\t\t\t\tM: M + 1,\n\t\t\t\tMM: pad(M + 1),\n\t\t\t\ts: s,\n\t\t\t\tss: pad(s),\n\t\t\t\tl: pad(L, 3),\n\t\t\t\tL: pad(L > 99 ? Math.round(L / 10) : L),\n\t\t\t\tt: H < 12 ? \"a\" : \"p\",\n\t\t\t\ttt: H < 12 ? \"am\" : \"pm\",\n\t\t\t\tT: H < 12 ? \"A\" : \"P\",\n\t\t\t\tTT: H < 12 ? \"AM\" : \"PM\",\n\t\t\t\tZ: utc ? \"UTC\" : (String(date).match(timezone) || [\"\"]).pop().replace(timezoneClip, \"\"),\n\t\t\t\to: (o > 0 ? \"-\" : \"+\") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),\n\t\t\t\tS: [\"th\", \"st\", \"nd\", \"rd\"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]\n\t\t\t};\n\n\t\treturn mask.replace(token, function ($0) {\n\t\t\treturn $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);\n\t\t});\n\t};\n}();\n\nexport default dateFormat;"],"names":["_setTimeout","ms","Promise","resolve","setTimeout","searchIconBlinked","tumCommon","options","hideFloatingHeader","init","Object","assign","this","initCallbacks","checkAuthorization","updateCartInfo","checkCookies","initHeader","initFloatingHeader","initCtuCloud","initFloatingWindows","initCacheControls","initOperatorControls","element","event","stopPropagation","document","content","dataset","copyToClipboard","type","querySelector","addEventListener","remove","closest","dropdown","tumarket","isAdmin","el","querySelectorAll","showAdminOnlyStuff","url","data","prefix","firmId","then","result","preventDefault","self","isMob","window","updateFloatingHeader","dispatchEvent","Event","showFloatingHeader","showFloatingHeader_desktop","showFloatingHeader_mob","toggleTopBar","toggleFloatingHeader","header","scrollY","clientHeight","innerHeight","containers","cloud","scrollWidth","offsetWidth","$back","$forward","classList","add","addClass","maxScrollLeft","updateButtons","showBack","scrollLeft","showForward","on","animate","Math","max","min","updateCacheToggle","location","reload","updateOperatorAddonToggle","loadLivetex","callback","LiveTex","liveTex","liveTexID","liveTex_object","onLiveTexReady","hideLabel","jsLink","conditionObject","_LiveTex","name","value","duration","target","undefined","bubbles","setToggle","scrollUp","collapseLinkClick","collapseLinkClick2","collapseLinkInfoClick","checkPageHeight","attr","getShortUrl","e","docHeight","height","pos","offset","show","c_top","top","c_left","left","width","mouseup","container","is","has","length","hide","shown","hasClass","setSeoFooterCookie","showSearchTypes","code","startSearch","text","elem","showHintDeliv","defineSearchType","defineSearchOpen","showWelcomeWindow","showFirmOnMap","lat","long","firmID","editFailureNotificationContacts","msg","html","tum_searchMenu","toggleMenu","focusSearch","toggleSearchTypes","setSearchType","getSearchQuery","search","main","focus","getQuery","getSearchType","cookieEnabled","navigator","removeClass","cartCnt","general","cartCount","pathname","startsWith","reg","saveCartItems","prop","elm","toggleClass","selector","id","scrollHeight","searchType","first","click","txt","close","hintBlock","find","href","title","onShown","tu_maps","currentMap","create","containerId","center","zoom","onLoad","ymap","modules","map","placemark","Placemark","showBalloon","getBalloonContent","showCustomBalloon","events","tumStats","logEvent","objectType","eventType","geoObjects","onClosed","dropSettingsModal","_getSearchBarTop","getBoundingClientRect","updateSearchMenuButton","searchBarTop","searchMenuButton","blinkSearchIcon","active","matches","setInterval","exists","getCartCount","reject","count","getCartSum","sum","getFavoritesCount","getNotificationsCount","_updateCartCount","$count","_updateCartSum","$cart","cartSum","toFixed","_updateFavoritesCount","favoritesCount","_updateNotificationsCount","notificationsCount","updateCartCount","updateCartSum","updateFavoritesCount","updateNotificationsCount","isHeaderFloating","getFirmSettings","all","getUserRole","results","form","formJson","formFields","JSON","parse","formData","updateFailureNotificationContacts","buttonText","tu_form","fields","userRoles","f","onSubmit","validate","getData","alert","tech","priority","phone","email","org","updateFirmSettings","stringify","catch","addHighlight","field","settings","checkPermissions","getFloatingWindow","$wrapper","$window","css","bottom","right","append","onClickOutside","button","pinToBottom","classes","$windowWrapper","modal","getFirmSchedule","depID","Array","prototype","diff","a","filter","i","indexOf","_version","_domain","initCookies","version","domain","setCookie","days","expires","date","Date","setTime","getTime","toUTCString","domainName","substring","hostname","includes","toLowerCase","cookie","encodeURIComponent","getCookie","c_name","c_start","c_end","decodeURIComponent","loadLib","cssLink","showProgressbar","useVersion","cacheDate","script","createElement","body","appendChild","onload","onerror","async","src","openProgressbar","closeProgressbar","fadeOut","newUuid","replace","c","r","random","toString","token","timezone","timezoneClip","pad","val","len","String","mask","utc","arguments","call","test","isNaN","SyntaxError","slice","_","d","m","y","H","M","s","L","o","getTimezoneOffset","flags","dd","mm","yy","yyyy","h","hh","HH","MM","ss","l","round","t","tt","T","TT","Z","match","pop","floor","abs","S","$0"],"sourceRoot":""}