{"version":3,"file":"8446_90cebc55d7b75cbbb401.bundle.js","mappings":"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","sources":["webpack://tumarket/./js/global/lazyHub.js","webpack://tumarket/./js/global/templates.js","webpack://tumarket/./js/hints/hints.js","webpack://tumarket/./js/notifications.js"],"sourcesContent":["import tumGlobal from \"../global\";\nimport { addEventDelegate, dataStorage, setValue } from \"./dom\";\nimport { loadLib } from \"./loadlib\";\n\n/**\n * Регистрирует события, которые работают глобально, и нужный для них код загружается по требованию, а не сразу\n * Если импортируется модуль, в котором есть функция init(), ее нужно запускать в самом модуле\n * Импортируемый модуль должен отвечать за какой-то один функционал, не стоит здесь импортировать целый скрипт страницы фирмы или вроде того\n */\nfunction initLazyModules() {\n addEventDelegate(document, 'click', '.toggleSearchMenu', () => {\n import(\"../searchMenu\").then(({ tum_searchMenu }) => tum_searchMenu.toggleMenu());\n });\n\n addEventDelegate(document, 'click', '.home-catalog-link', (element, e) => {\n if (!tumGlobal.isMob()) {\n location.href = \"/catalog\";\n return;\n };\n\n e.preventDefault();\n import(\"../searchMenu\").then(({ tum_searchMenu }) => {\n tum_searchMenu.toggleMenu().then(() => tum_searchMenu.scrollToCatalog());\n });\n });\n\n addEventDelegate(document, 'click', '.mod-ord-window', (element, event) => {\n event.preventDefault();\n var idFirm = element.dataset.firmid;\n var idProd = element.dataset.productid;\n var params = { idFirm: idFirm, idProd: idProd };\n\n import(\"../showCaseManagement\").then(({ management }) => management.getModalData(params));\n });\n\n addEventDelegate(document, 'click', '.toggleMenu', element => {\n import(\"../MainMenu\").then(({ tum_mainMenu }) => tum_mainMenu.toggleMenu(element.dataset.highlight));\n });\n\n addEventDelegate(document, 'click', '.editTopListDate', (element) => {\n import(\"../product/editTopListDate.js\").then(({ editTopListDate }) => {\n let productId = element.dataset.itemid;\n let previewId = element.dataset.previewid;\n editTopListDate.editTopListDate(productId, previewId);\n });\n });\n\n addEventDelegate(document, 'click', '.tum-miniatureCartBtn', (element, event) => {\n event.preventDefault();\n import(\"../cart/cartWidget\").then(({ cartWidget }) => cartWidget.showCartWidget(element));\n });\n\n addEventDelegate(document, 'click', ['.topbar-openCatalog', '.tu-showCatalog'], element => {\n element.disabled = true;\n import(\"../catalogItems\").then(({ catItems }) => {\n catItems.showCatalog().then(() => element.disabled = false);\n });\n });\n\n addEventDelegate(document, 'click', '.firm-edit-item', (element, event) => {\n event.preventDefault();\n import(\"../firm/firmStatusEdit\").then(({ firmStt }) => firmStt.editFirmStatus(event, element));\n });\n\n addEventDelegate(document, 'click', '.task-update', (element) => {\n import(\"../tasks.js\").then(({ tu_tasks }) => tu_tasks.updateButtonHandler(element));\n });\n\n addEventDelegate(document, 'click', '[data-edit-preview-connections]', (element) => {\n let productId = element.dataset.productid;\n let firmId = element.dataset.firmid;\n let ctuId = element.dataset.ctuid;\n\n import(\"../previews/connection_editor\").then(({previewConnectionEditor}) => {\n previewConnectionEditor.open({ productId, ctuId, firmId });\n });\n });\n\n refreshLazyModules();\n}\n\nfunction refreshLazyModules(){\n for (let crud of document.querySelectorAll('[data-crud]')) {\n import(\"../crud.js\").then(({ initCrud }) => initCrud(crud));\n }\n\n if (document.querySelector('.tu-modal-form')) {\n import(\"../form/form.modals\").then(({ initFormModals }) => initFormModals());\n }\n\n if (document.querySelector('[data-tu-select]')) {\n import(\"../global/tu_select\").then(({ initSelects }) => initSelects());\n }\n\n for (let timer of document.querySelectorAll('[data-timer]')) {\n import(\"../global/timer\").then(({ initTimer }) => initTimer(timer));\n }\n\n if (document.querySelector('[data-submit-form]')) {\n import(\"../global/form\").then(({ initFormUtils }) => initFormUtils());\n }\n\n for (let item of document.querySelectorAll('[data-highlight-search]')) {\n import(\"../global/highlight_search\").then(({ initHighlightSearch }) => {\n initHighlightSearch(item);\n });\n }\n\n for (let item of document.querySelectorAll('[data-slider-auto-init]')) {\n import(\"../slider\").then(module => {\n let tu_slider = module.default;\n tu_slider.create({\n container: item,\n mobLoadMoreChevronDirection: 'right',\n autoCycling: true\n });\n });\n }\n\n for (let item of document.querySelectorAll('[data-range-slider]:not(.noUi-target)')) {\n if (dataStorage.get(item, 'nouislider') || dataStorage.get(item, 'nouislider-initializing')) {\n continue;\n }\n\n dataStorage.put(item, 'nouislider-initializing', true);\n\n let from = document.querySelectorAll(item.dataset.fromTarget);\n let to = document.querySelectorAll(item.dataset.toTarget);\n let multiplier = Number(item.dataset.multiplier) || 1;\n\n import('nouislider/dist/nouislider.css')\n .then(() => loadLib({ cssLink: \"/template/nouislider-custom\" }))\n .then(() => import(\"nouislider\"))\n .then(module => {\n let nouislider = module.default;\n let slider = nouislider.create(item, {\n connect: true,\n start: [from[0].value, to[0].value],\n range: {\n min: Math.floor(Number(item.dataset.min) * multiplier),\n max: Math.ceil(Number(item.dataset.max) * multiplier)\n }\n });\n\n slider.on('change', () => {\n var value = slider.get();\n setValue(from, Number(value[0]) / multiplier);\n setValue(to, Number(value[1]) / multiplier);\n });\n\n slider.on('set', () => {\n for (let item of from) {\n item.dispatchEvent(new Event('change'));\n }\n \n for (let item of to) {\n item.dispatchEvent(new Event('change'));\n }\n });\n \n dataStorage.put(item, 'nouislider', slider);\n dataStorage.remove(item, 'nouislider-initializing');\n });\n }\n\n if (document.querySelector('[data-observe-visibility], [data-classes-when-shown], [data-classes-when-visible]')) {\n import('../intersectionObserver').then(({ initIntersectionObserver }) => {\n initIntersectionObserver();\n });\n }\n \n}\n\nexport { initLazyModules, refreshLazyModules };\n","import * as Handlebars from \"handlebars\";\nimport dateFormat from \"../lib/dateformat/dateformat\";\nimport { appendHtml } from \"./dom\";\nimport { capitalize, encodeHtml, groupBy, isDateInThisWeek, parseDate, sort } from \"./util\";\nimport { getCookie } from \"./cookie\";\n\nlet cacheDate = window.tumarket.cacheDate;\nwindow.Handlebars = Handlebars;\n\nlet aliases = [\n];\n\nfunction chunk(array, size) {\n let result = [];\n for (let i = 0; i < array.length / size; i++) {\n result.push(array.slice(i * size, (i+1) * size));\n }\n\n return result;\n}\n\nlet loadedTemplates = [];\nlet loadingTemplates = [];\n\n/** @type {Object.} */\nlet templateDependencies = {};\n\n/** @type {Object.} */\nlet helpers = {\n equals: (a,b) => a == b,\n or: function() { return [...arguments].slice(0, -1).some(e => e) },\n and: function() { return [...arguments].slice(0, -1).every(e => e) },\n coalesce: function() { return [...arguments].slice(0, -1).find(e => e) },\n not: a => !a,\n isNull: a => a == null,\n len: a => (a || '').length,\n gt: (a,b) => (a || 0) > (b || 0),\n lt: (a,b) => (a || 0) < (b || 0),\n slice: (a,b,c) => (a || []).slice((b || 0), (c || 0)),\n skip: (a,b) => (a || []).slice((b || 0)),\n truncate: (val, len) => {\n if (!val) return '';\n return val.length > len ? val.substring(0, len) + '…' : val;\n },\n truncateMiddle: (val, len) => {\n if (!val) return '';\n return val.substring(0, len) + '…' + val.substring(val.length - len, val.length);\n },\n lowercase: a => a.toLowerCase(),\n toJson: a => JSON.stringify(a || {}),\n toFormattedJson: a => JSON.stringify(a, null, 2),\n getDate: () => new Date(),\n parseDate: a => parseDate(a),\n formatDate: (a,b) => a ? dateFormat(new Date(a), b) : '',\n formatNumber: a => new Intl.NumberFormat('ru-RU', { minimumFractionDigits: a % 1 ? 2 : 0, maximumFractionDigits: 2 }).format(a),\n formatNumber2: a => new Intl.NumberFormat('ru-RU', { minimumFractionDigits: 0, maximumFractionDigits: 2 }).format(a),\n formatNumber3: a => a?.toFixed(3).replace(/\\.?0+$/, '').replace('.', ','),\n formatKop: a => new Intl.NumberFormat('ru-RU', { minimumIntegerDigits: 2 }).format(a),\n formatPrice: a => {\n var price = a.toFixed(2).replace(',', '.');\n var arr = price.split('.');\n if (arr.length > 1)\n {\n let res = `${new Intl.NumberFormat('ru-RU').format(Number(arr[0]))}${new Intl.NumberFormat('ru-RU', { minimumIntegerDigits: 2 }).format(arr[1])}`;\n return res;\n }\n else\n {\n let res = `${new Intl.NumberFormat('ru-RU').format(Number(arr[0]))}`;\n return res;\n }\n },\n add: (a,b) => Number(a || 0) + Number(b || 0),\n contains: (a,b) => (a || '').toString().toLowerCase().indexOf((b || '').toString().toLowerCase()) > -1,\n startsWith: (a,b) => (a || '').toString().toLowerCase().startsWith((b || '').toString().toLowerCase()),\n urlEncode: a => encodeURIComponent(a),\n urlEscape: a => a?.replace(\"%\", \"%25\").replace(\" \", \"%20\"),\n urlDecode: a => { \n let res = '';\n try {\n res = decodeURIComponent(a);\n } catch {}\n return res;\n },\n parseJson: a => { \n let res = {};\n try {\n res = JSON.parse(a);\n } catch {}\n return res;\n },\n printif: (cond, a) => {\n if (cond) return a;\n return \"\";\n },\n iif: (cond, a, b) => {\n if (cond) return a;\n return b;\n },\n in: (item, array) => array.includes(item),\n split: (string, separator) => string?.split(separator),\n join: (array, separator) => array?.join(separator),\n substring: (string, index, length) => string?.substring(index, index + length),\n get: (array, index) => {\n if (!array) return null;\n if (index >= array.length) return null;\n return array[index];\n },\n getValue: (object, key) => object[key]?.toString(),\n getObject: (object, key) => object[key],\n replace: (string, pattern, replacement) => string?.replace(pattern, replacement),\n replaceRegex: (string, pattern, replacement) => string?.replace(new RegExp(pattern), replacement),\n testRegex: (string, pattern) => new RegExp(pattern).test(string),\n whereEquals: (array, field, value) => array?.filter(e => e[field] == value) || [],\n whereNotEquals: (array, field, value) => array?.filter(e => e[field] != value) || [],\n mapField: function(array, field) {\n if (!array?.length) return [];\n\n let args = [...arguments].slice(0, -1);\n let helper = args[2];\n let mapper;\n if (!helper) {\n mapper = e => e;\n } else {\n mapper = e => helpers[helper](...[e, ...args.slice(3)])\n }\n\n return array.map(e => mapper(e[field]));\n },\n map: function(array, helper) { \n return array?.map(e => helpers[helper](...[e, ...[...arguments].slice(0, -1).slice(2)]));\n },\n /**\n * \n * @param {object[]} array \n * @returns \n */\n flatMap: function(array) {\n if (!array?.length) return [];\n\n let args = [...arguments].slice(0, -1);\n let field = null;\n if (args.length == 2) field = args[1];\n\n if (field) array = array.filter(e => e[field]).map(e => e[field]);\n\n return array.flatMap(e => e);\n },\n getRandom: (array) => array[Math.floor(Math.random() * array.length)],\n random: (min, max) => min + Math.floor(Math.random() * (max - min + 1)),\n concat: function() { return [...arguments].slice(0, -1).join('') },\n nconcat: function() { \n let args = [...arguments].slice(0, -1);\n if (args.some(e => !e)) return '';\n return args.join('');\n },\n array: function() { return [...arguments].slice(0, -1) },\n filter: function(a) {\n let args = [...arguments].slice(0, -1);\n let field = args[1];\n\n let helper = args[2];\n let mapper;\n if (!helper) {\n mapper = e => e;\n } else {\n mapper = e => helpers[helper](...[e, ...args.slice(3)])\n }\n\n if (field) {\n return a.filter(e => mapper(e[field]));\n }\n\n return a.filter(e => e)\n },\n reverseFilter: function(a) {\n let args = [...arguments].slice(0, -1);\n let field = args[1];\n\n let helper = args[2];\n let mapper;\n if (!helper) {\n mapper = e => e;\n } else {\n mapper = e => helpers[helper](...[e, ...args.slice(3)])\n }\n\n if (field) {\n return a.filter(e => !mapper(e[field]));\n }\n\n return a.filter(e => !e)\n },\n capitalize: a => capitalize(a),\n htmlAttributes: options => {\n let attributes = Object.entries(options.hash).filter(e => e[1]);\n if (!attributes.length) return '';\n\n return attributes.map(e => `${e[0]}=\"${encodeHtml(e[1].toString())}\"`).join(' ');\n },\n htmlStyle: options => {\n let styles = Object.entries(options.hash).filter(e => e[1]);\n if (!styles.length) return '';\n \n return `style=\"${styles.map(e => `${e[0]}: ${e[1]}`).join('; ')}\"`;\n },\n getCookie: name => getCookie(name),\n case: function() {\n let args = [...arguments].slice(0, -1);\n let defaultValue = args.slice(-1)[0];\n let rest = args.slice(0, -1);\n for (let [condition, value] of chunk(rest, 2)) {\n if (condition) return value;\n }\n return defaultValue;\n },\n switch: function() {\n let args = [...arguments].slice(0, -1);\n let value = args[0];\n let defaultResult = args.slice(-1)[0];\n let rest = args.slice(1, -1);\n for (let [option, result] of chunk(rest, 2)) {\n if (value == option) return result;\n }\n return defaultResult;\n },\n groupBy: function(array, field) {\n let args = [...arguments].slice(0, -1);\n\n if (args.length > 2) {\n let helper = args[2];\n let mapper = e => helpers[helper](...[e, ...args.slice(3)]);\n array = array.map(mapper);\n }\n\n return groupBy(array, field);\n },\n min: array => sort(array)[0] || null,\n max: array => sort(array, true)[0] || null,\n sort: function(array, desc) {\n let args = [...arguments].slice(0, -1);\n let helper = args[2];\n let mapper;\n if (!helper) {\n mapper = e => e;\n } else {\n mapper = e => helpers[helper](...[e, ...args.slice(3)])\n }\n\n return sort(array, desc, mapper);\n },\n sortBy: function(array, field, desc) {\n let args = [...arguments].slice(0, -1);\n let helper = args[3];\n let mapper;\n if (!helper) {\n mapper = e => e;\n } else {\n mapper = e => helpers[helper](...[e, ...args.slice(4)])\n }\n\n let copy = [...array];\n copy.sort((a, b) => {\n if (mapper(a[field]) > mapper(b[field])) return 1;\n if (mapper(a[field]) < mapper(b[field])) return -1;\n return 0;\n });\n\n if (desc) copy.reverse();\n return copy;\n },\n sort2: function(array, options) {\n let items = JSON.parse(options);\n\n let copy = [...array];\n\n let compare = (a, b, options) => {\n if (options.field) {\n a = a[options.field] || a[capitalize(options.field)];\n b = b[options.field] || b[capitalize(options.field)];\n }\n\n if (options.map) {\n a = options.map[a] || options.map['_default_'] || a;\n b = options.map[b] || options.map['_default_'] || b;\n }\n\n if (typeof a === 'number') return options.desc ? b - a : a - b;\n if (typeof a === 'string') return options.desc ? b.localeCompare(a) : a.localeCompare(b);\n if (typeof a === 'boolean') return options.desc ? b || a : a || b;\n };\n\n let compare_total = (a, b, sort_items) => {\n let result = 0;\n for (let item of sort_items) {\n result = result || compare(a, b, item);\n }\n return result;\n };\n\n copy.sort((a, b) => compare_total(a, b, items));\n\n return copy;\n },\n first: array => {\n if (!array?.length) return null;\n return array[0];\n },\n last: array => {\n if (!array?.length) return null;\n return array.slice(-1)[0];\n },\n dateToTimestamp: a => new Date(a).getTime(),\n timestampToDate: a => new Date(a),\n isToday: function(a) {\n let args = [...arguments].slice(0, -1);\n\n let offset = 0;\n if (args.length == 2) offset = args[1];\n\n let today = new Date();\n today = new Date(today.setDate(today.getDate() + offset));\n let day = new Date(a);\n \n\n return today.setHours(0,0,0,0) === day.setHours(0,0,0,0);\n },\n isThisWeek: function(a) {\n let args = [...arguments].slice(0, -1);\n\n let offset = 0;\n if (args.length == 2) offset = args[1];\n\n let day = new Date(a);\n return isDateInThisWeek(day, offset);\n },\n isThisMonth: function(a) {\n let args = [...arguments].slice(0, -1);\n\n let offset = 0;\n if (args.length == 2) offset = args[1];\n\n let day = new Date(a);\n let today = new Date();\n return day.getFullYear() == today.getFullYear() && day.getMonth() == today.getMonth() + offset;\n },\n toString: a => a?.toString(),\n entries: a => {\n if (!a) return null;\n return Object.entries(a).map(e => ({ key: e[0], value: e[1] }));\n },\n isArray: a => {\n return Array.isArray(a);\n },\n isObject: a => {\n return typeof a === 'object';\n },\n multiply: (a, b) => a * b,\n divide: (a, b) => a / b,\n floor: a => Math.floor(a),\n round: a => Math.round(a),\n mod: (a, b) => a % b,\n object: options => options.hash,\n apply: (helper, args_array) => helpers[helper](...args_array, null),\n trim: a => a.trim()\n};\n\n/**\n * \n * @param {string} url \n * @param {boolean} [fetchDependencies=true]\n * @returns {Promise}\n */\nfunction loadTemplate(url, fetchDependencies = true) {\n if (loadedTemplates.indexOf(url) > -1) {\n return Promise.resolve();\n }\n \n let dependencies = [];\n let nameMatch = url.match(/\\/template\\/([a-zA-Z0-9_-]+)\\/?(wrap)?/);\n let name = nameMatch ? nameMatch[1] : null;\n\n return fetch(url, { headers: { \"tuajax\": \"true\" } }).then(response => {\n dependencies = response.headers.get('template-dependencies')?.split(',').map(e => e.trim());\n return response.text();\n }).then(template => {\n if (document.querySelector(`#template-${name}`)) return Promise.resolve();\n appendHtml(\"body\", template);\n loadedTemplates.push(url);\n return Promise.resolve();\n }).then(() => {\n if (fetchDependencies && dependencies?.length) {\n templateDependencies[name] = dependencies;\n\n return Promise.all(dependencies.map(e => { \n return loadTemplate(`/template/${e}/wrap?v=${cacheDate}`, false);\n })).then(() => Promise.resolve());\n }\n return Promise.resolve();\n });\n}\n\n/**\n * \n * @param {string} name \n * @param {boolean} [fetchDependencies=true] \n * @param {boolean} [partial=false] \n * @returns {Promise}\n */\nfunction loadPrecompiledTemplate(name, fetchDependencies = true, partial = false) {\n let originalName = name;\n let alias = aliases.find(e => e.at(0) == name)?.at(1);\n name = alias || name;\n\n let cacheKey = `${name}${partial ? \"_partial\" : \"\"}`;\n if (loadedTemplates.includes(cacheKey)) {\n return Promise.resolve();\n }\n\n if (loadingTemplates.includes(cacheKey)) {\n return new Promise(resolve => {\n document.addEventListener('tu.template.loaded', e => {\n if (e.detail.template == cacheKey) {\n resolve()\n }\n });\n });\n }\n \n loadingTemplates.push(cacheKey);\n\n let dependencies = [];\n let url = `/template/${name}/precompiled?v=${cacheDate}${partial ? \"&partial=true\" : \"\"}`;\n\n return fetch(url, { headers: { \"tuajax\": \"true\" } }).then(response => {\n dependencies = response.headers.get('template-dependencies')?.split(',').map(e => e.trim()).filter(e => e);\n return response.text();\n }).then(template => {\n if (document.getElementById(`precompiled-${name}`)) return Promise.resolve();\n let script = document.createElement('script');\n script.id = `precompiled-${name}`;\n script.innerHTML = template;\n document.body.appendChild(script);\n\n //partial alias\n Handlebars.partials[name] = Handlebars.templates[name]; \n Handlebars.partials[`template-${name}`] = Handlebars.templates[name];\n\n if (alias) {\n Handlebars.templates[originalName] = Handlebars.templates[name];\n Handlebars.partials[originalName] = Handlebars.templates[name]; \n Handlebars.partials[`template-${originalName}`] = Handlebars.templates[name];\n }\n\n return Promise.resolve();\n }).then(() => {\n if (fetchDependencies && dependencies?.length) {\n templateDependencies[name] = dependencies;\n\n return Promise.all(dependencies.map(e => { \n return loadPrecompiledTemplate(e, true);\n }))\n .then(() => {\n loadingTemplates = loadingTemplates.filter(e => e != cacheKey);\n loadedTemplates.push(cacheKey);\n document.dispatchEvent(new CustomEvent('tu.template.loaded', { detail: { template: cacheKey } }));\n return Promise.resolve();\n });\n }\n\n loadingTemplates = loadingTemplates.filter(e => e != cacheKey);\n loadedTemplates.push(cacheKey);\n document.dispatchEvent(new CustomEvent('tu.template.loaded', { detail: { template: cacheKey } }));\n return Promise.resolve();\n });\n}\n\n/**\n * \n * @param {string[]} urls \n * @returns \n */\nfunction loadTemplates(urls) {\n return Promise.all(urls.map(e => loadTemplate(e + \"?v=\" + cacheDate)));\n}\n\n/**\n * \n * @param {string[]} names \n * @returns \n */\nfunction loadPrecompiledTemplates(names) {\n return Promise.all(names.map(e => loadPrecompiledTemplate(e)));\n}\n\nfunction initHelpers() {\n for (let helper in helpers) {\n Handlebars.registerHelper(helper, helpers[helper]);\n }\n}\n\nfunction initUaParserHelper(){\n return import('ua-parser-js').then(modules => {\n Handlebars.registerHelper('uaparser', (a, b) => {\n let data = modules.default(a);\n if (b == 'os') return data.os.name;\n if (b == 'browser') return data.browser.name;\n if (b == 'device') return data.device.model;\n if (b == 'type') return data.device.type;\n return '';\n });\n });\n}\n\n/**\n * \n * @param {string} template \n * @returns \n */\nfunction getPrecompiledTemplate(template){\n return Handlebars.templates[template];\n}\n\ninitHelpers();\n\nexport { loadPrecompiledTemplates, getPrecompiledTemplate, loadTemplates, helpers, initUaParserHelper };","import * as $ from \"jquery\";\nimport \"./hints.css\";\nimport { addEventDelegate } from \"../global/dom\";\n\nvar hints = {\n\tinit: function () {\n\t\taddEventDelegate(document, 'click', '.tum-hints-showHint', element => {\n\t\t\tlet target = $(element).attr('data-contenttarget');\n\n\t\t\tvar text = target ? $(target).html() : $(element).attr(\"data-content\");\n\t\t\tvar elem = $(element).closest(\".tum-hints-hasHint\");\n\n\t\t\tif ($(element).hasClass(\"show\")) {\n\t\t\t\thints.showHint(text, elem, true);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\thints.showHint(text, elem, false, element);\n\t\t\t$(element).addClass(\"show\");\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-hints-hideHint\", (element, e) => {\n\t\t\te.preventDefault();\n\t\t\t$(\".tum-hints-hintBlock\").removeClass(\"show\");\n\t\t\t$(\".tum-hints-showHint\").removeClass(\"show\");\n\t\t});\n\t},\n\tshowHint: function (txt, elem, close) {\n\t\tvar hintBlock = $(elem).find(\".tum-hints-hintBlock:last\");\n\n\t\t$(\".tum-hints-hintBlock\").removeClass(\"show\");\n\t\t$(\".tum-hints-showHint\").removeClass(\"show\");\n\n\t\tif (close) {\n\t\t\treturn;\n\t\t}\n\n\t\thintBlock.html('' + txt);\n\t\thintBlock.addClass('tum-hints-hintBorder');\n\t\thintBlock.addClass('mb-2');\n\t\thintBlock.addClass(\"show\");\n\t}\n};\n\nexport default hints;","import * as signalR from \"@microsoft/signalr\";\nimport { showDialog } from \"./global/dialog\";\nimport { getCookie, setCookie } from \"./global/cookie\";\nimport { addEventDelegate, toggleClass } from \"./global/dom\";\n\nvar notifications = {\n\toptions: {\n\t\thubName: \"signalRHub\"\n\t},\n\thubInitialized: false,\n\thub: null,\n\tinit: function (options) {\n\t\tObject.assign(this.options, options);\n\n\t\tif ('serviceWorker' in navigator) {\n\t\t\tnavigator.serviceWorker.register('/js/sw.js');\n\t\t}\n\n\t\taddEventDelegate(document, 'click', \".tum-enableNotifications\", () => {\n\t\t\tthis.toggleNotifications(null, true);\n\t\t});\n\n\t\treturn this.initHub().then(() => {\n\t\t\tthis.askForPermission(false, true);\n\t\t})\n\t},\n\tregisterCallback: function(name, callback){\n\t\tif (this.hubInitialized) { \n\t\t\tthis.hub.on(name, callback);\n\t\t\treturn;\n\t\t}\n\t\t\n\t\twindow.addEventListener('signalRReady', () => this.hub.on(name, callback));\n\t},\n\tinitHub: function () {\n\t\tlet self = this;\n\t\tthis.hub = new signalR.HubConnectionBuilder().withUrl(\"/\" + this.options.hubName).build();\n\n\t\tif (!this.hub) {\n\t\t\tconsole.log(\"notification hub not found\");\n\t\t\treturn Promise.resolve();\n\t\t}\n\n\t\tthis.registerCallback('showNotification', this.showNotification);\n\n\t\tfunction startHubCallback() {\n\t\t\tself.hubInitialized = true;\n\t\t\twindow.dispatchEvent(new Event('signalRReady'));\n\n\t\t\ttry {\n\t\t\t\tself.hub.invoke(\"connectNotifications\");\n\t\t\t} catch {\n\t\t\t\tconsole.log(\"Failed to connect to push notifications\");\n\t\t\t}\n\t\t}\n\n\t\tthis.hub.onclose(function () {\n\t\t\tself.hubInitialized = false;\n\t\t\tsetTimeout(startHubCallback, 5000);\n\t\t});\n\n\t\treturn this.hub.start().then(startHubCallback);\n\t},\n\tshowNotification: function (title, body, id) {\n\t\tif (!(\"Notification\" in window)) {\n\t\t\tconsole.log(\"This browser does not support desktop notification\");\n\t\t\treturn;\n\t\t}\n\n\t\tif (!('serviceWorker' in navigator)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (document.querySelector(\".tum-enableNotifications .fa-toggle-off\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (Notification.permission == \"granted\") {\n\t\t\tnavigator.serviceWorker.getRegistrations().then(function (registrations) {\n\t\t\t\tregistrations[0].showNotification(title, { body: body, data: { id: id }, icon: \"/Content/images/tu.m/fav/prod/favicon.ico\" });\n\t\t\t});\n\t\t}\n\t\telse if (Notification.permission != \"denied\") {\n\t\t\tNotification.requestPermission().then(function (permission) {\n\t\t\t\tif (permission == \"granted\") {\n\t\t\t\t\tnavigator.serviceWorker.getRegistrations().then(function (registrations) {\n registrations[0].showNotification(title, { body: body, data: { id: id }, icon: \"/Content/images/tu.m/fav/prod/favicon.ico\" });\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t},\n\taskForPermission: function (showDisabledWarning, readCookie) {\n\t\tlet self = this;\n\t\tif (!(\"Notification\" in window)) {\n\t\t\tconsole.log(\"This browser does not support desktop notification\");\n\t\t\treturn;\n\t\t}\n\n\t\tif (Notification.permission != \"granted\" && Notification.permission != \"denied\" && getCookie(\"tum-enableNotifications\") != \"0\") {\n\t\t\tNotification.requestPermission().then(function (permission) {\n\t\t\t\tconsole.log(\"notifications - asking for permission: \" + permission);\n\n\t\t\t\tif (permission == \"granted\") {\n\t\t\t\t\tself.toggleNotifications(\"enable\");\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tself.toggleNotifications(\"disable\");\n\t\t\t\t}\n\t\t\t}).catch(e => {\n\t\t\t\tconsole.log(\"notifications - asking for permission - catch: \" + e.toString());\n\t\t\t});\n\t\t}\n\t\telse if (Notification.permission == \"granted\" && readCookie) {\n\t\t\tvar notificationsEnabled = getCookie(\"tum-enableNotifications\") == \"1\" ? \"enable\" : \"disable\";\n\t\t\tself.toggleNotifications(notificationsEnabled, false, true);\n\t\t}\n\n\t\tif (Notification.permission != \"granted\" && showDisabledWarning) {\n\t\t\tvar instr = \"Как разрешить пуш-уведомления от TU.Market\";\n\t\t\tshowDialog({\n\t\t\t\ttitle: \"Уведомления запрещены веб-браузером\",\n\t\t\t\tcontent: \"Чтобы включить push-уведомления, нужно разрешить их в вашем веб-браузере
\" + instr,\n\t\t\t\tonShown: () => toggleClass(\"#asModal .btn-primary\", \"d-none\", true)\n\t\t\t});\n\t\t}\n\t},\n\ttoggleNotifications: function (code, ask, updateButtonOnly) {\n\t\tif (code == \"enable\") {\n\t\t\ttoggleClass(\".tum-enableNotifications i\", \"fa-toggle-on\", true);\n\t\t\ttoggleClass(\".tum-enableNotifications i\", \"fa-toggle-off\", false);\n\t\t}\n\t\telse if (code == \"disable\") {\n\t\t\ttoggleClass(\".tum-enableNotifications i\", \"fa-toggle-on\", false);\n\t\t\ttoggleClass(\".tum-enableNotifications i\", \"fa-toggle-off\", true);\n\t\t}\n\t\telse {\n\t\t\ttoggleClass(\".tum-enableNotifications i\", \"fa-toggle-off fa-toggle-on\");\n\t\t}\n\n\t\tif (updateButtonOnly) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (document.querySelector(\".tum-enableNotifications .fa-toggle-on\")) {\n\t\t\tif (ask) {\n\t\t\t\tthis.askForPermission(true, false);\n\t\t\t}\n\n\t\t\tconsole.log(\"notifications enabled\");\n\t\t\tsetCookie(\"tum-enableNotifications\", \"1\", 30);\n\t\t}\n\t\telse {\n\t\t\tconsole.log(\"notifications disabled\");\n\t\t\tsetCookie(\"tum-enableNotifications\", \"0\", 30);\n\t\t}\n\t}\n};\n\nexport default notifications;"],"names":["initLazyModules","document","then","tum_searchMenu","toggleMenu","element","e","isMob","preventDefault","scrollToCatalog","location","href","event","params","idFirm","dataset","firmid","idProd","productid","management","getModalData","tum_mainMenu","highlight","editTopListDate","productId","itemid","previewId","previewid","cartWidget","showCartWidget","disabled","catItems","showCatalog","firmStt","editFirmStatus","tu_tasks","updateButtonHandler","firmId","ctuId","ctuid","previewConnectionEditor","open","refreshLazyModules","crud","querySelectorAll","initCrud","querySelector","initFormModals","initSelects","timer","initTimer","initFormUtils","item","initHighlightSearch","module","default","create","container","mobLoadMoreChevronDirection","autoCycling","get","put","from","fromTarget","to","toTarget","multiplier","Number","cssLink","slider","connect","start","value","range","min","Math","floor","max","ceil","on","dispatchEvent","Event","remove","initIntersectionObserver","cacheDate","window","tumarket","Handlebars","aliases","chunk","array","size","result","i","length","push","slice","loadedTemplates","loadingTemplates","templateDependencies","helpers","equals","a","b","or","arguments","some","and","every","coalesce","find","not","isNull","len","gt","lt","c","skip","truncate","val","substring","truncateMiddle","lowercase","toLowerCase","toJson","JSON","stringify","toFormattedJson","getDate","Date","parseDate","formatDate","formatNumber","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","format","formatNumber2","formatNumber3","toFixed","replace","formatKop","minimumIntegerDigits","formatPrice","price","arr","split","add","contains","toString","indexOf","startsWith","urlEncode","encodeURIComponent","urlEscape","urlDecode","res","decodeURIComponent","parseJson","parse","printif","cond","iif","in","includes","string","separator","join","index","getValue","object","key","getObject","pattern","replacement","replaceRegex","RegExp","testRegex","test","whereEquals","field","filter","whereNotEquals","mapField","mapper","args","helper","map","flatMap","getRandom","random","concat","nconcat","reverseFilter","capitalize","htmlAttributes","options","attributes","Object","entries","hash","htmlStyle","styles","getCookie","name","case","defaultValue","rest","condition","switch","defaultResult","option","groupBy","sort","desc","sortBy","copy","reverse","sort2","items","compare","localeCompare","sort_items","compare_total","first","last","dateToTimestamp","getTime","timestampToDate","isToday","offset","today","setDate","day","setHours","isThisWeek","isThisMonth","getFullYear","getMonth","isArray","Array","isObject","multiply","divide","round","mod","apply","args_array","trim","loadTemplate","url","fetchDependencies","Promise","resolve","dependencies","nameMatch","match","fetch","headers","response","text","template","all","loadPrecompiledTemplate","partial","originalName","alias","at","cacheKey","addEventListener","detail","getElementById","script","createElement","id","innerHTML","body","appendChild","CustomEvent","loadTemplates","urls","loadPrecompiledTemplates","names","initUaParserHelper","modules","data","os","browser","device","model","type","getPrecompiledTemplate","initHelpers","hints","init","target","attr","html","elem","closest","hasClass","showHint","addClass","removeClass","txt","close","hintBlock","hubName","hubInitialized","hub","assign","this","navigator","serviceWorker","register","toggleNotifications","initHub","askForPermission","registerCallback","callback","self","withUrl","build","console","log","startHubCallback","invoke","showNotification","onclose","setTimeout","title","Notification","permission","getRegistrations","registrations","icon","requestPermission","showDisabledWarning","readCookie","catch","notificationsEnabled","content","onShown","code","ask","updateButtonOnly"],"sourceRoot":""}