{"version":3,"file":"brand.bundle.js","mappings":"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","sources":["webpack://4tochki/./webpack/bundles/brand/index.js","webpack://4tochki/./webpack/src/modules/collapseSideFilter/index.js","webpack://4tochki/./webpack/src/modules/compare-head/templateCompareHead.js","webpack://4tochki/./webpack/src/modules/compare-head/index.js","webpack://4tochki/./webpack/src/modules/fitMapPodbor/baloonTemplate.js","webpack://4tochki/./webpack/src/modules/fitMapPodbor/datepicker/bootstrap-datepicker.js","webpack://4tochki/./webpack/src/modules/fitMapPodbor/templateList.js","webpack://4tochki/./webpack/src/modules/fitMapPodbor/templateListItem.js","webpack://4tochki/./webpack/src/modules/fitMapPodbor/fitMapList.js","webpack://4tochki/./webpack/src/modules/hideLayout/index.js","webpack://4tochki/./webpack/src/modules/fitMapPodbor/index.js","webpack://4tochki/./webpack/src/modules/getAvailableInfo/index.js","webpack://4tochki/./webpack/src/modules/getBadgetInfo/index.js","webpack://4tochki/./webpack/src/modules/mainSearchbar/collectForm.js","webpack://4tochki/./webpack/src/modules/mainSearchbar/avtoStorage.js","webpack://4tochki/./webpack/src/modules/mainSearchbar/syncFilters.js","webpack://4tochki/./webpack/src/modules/mainSearchbar/selectionByCar.js","webpack://4tochki/./webpack/src/modules/mainSearchbar/formFoundError.js","webpack://4tochki/./webpack/src/modules/mainSearchbar/index.js","webpack://4tochki/./webpack/src/modules/mainSearchbar/search.js","webpack://4tochki/./webpack/src/modules/modalAfterAddToCart/index.js","webpack://4tochki/./webpack/src/modules/productItem/index.js","webpack://4tochki/./webpack/src/modules/restListPopovers/index.js","webpack://4tochki/./webpack/src/modules/sideFilter/index.js","webpack://4tochki/./node_modules/js-base64/base64.mjs","webpack://4tochki/./webpack/src/modules/base64Decode/index.js","webpack://4tochki/./webpack/src/modules/sliders/widgetSlider/index.js","webpack://4tochki/./webpack/src/modules/textExpand/index.js","webpack://4tochki/./node_modules/bootstrap/js/dist/carousel.js","webpack://4tochki/./node_modules/bootstrap/js/dist/collapse.js","webpack://4tochki/./node_modules/bootstrap/js/dist/popover.js","webpack://4tochki/./node_modules/bootstrap/js/dist/tooltip.js","webpack://4tochki/./node_modules/bootstrap/js/dist/util/sanitizer.js","webpack://4tochki/./node_modules/bootstrap/js/dist/util/swipe.js","webpack://4tochki/./node_modules/bootstrap/js/dist/util/template-factory.js"],"sourcesContent":["import './index.scss';\n\nimport {mainSearchbar} from 'modules/mainSearchbar';\nimport {textExpand} from 'modules/textExpand';\nimport {sideFilter} from 'modules/sideFilter';\n\nmainSearchbar.init();\ntextExpand.init();\nsideFilter.init();\n","import {config} from 'core/config';\nimport Collapse from 'bootstrap/js/dist/collapse';\n\nexport function collapseSideFilter() {\n const $sideFilter = document.querySelector('#collapseSideFilter');\n if ($sideFilter !== null) {\n const sideFilterInstance = Collapse.getOrCreateInstance($sideFilter, {toggle: false});\n\n if (window.innerWidth < config.breakpoints.md) {\n sideFilterInstance.hide();\n } else {\n sideFilterInstance.show();\n }\n }\n};\n","export const templateCompareHead = (data) =>\n `
\n
\n
\n
\n
\n Товар
${data.name}
\n
\n ${data.action == 'add' ? 'добавлен в избранное' : 'удалён из избранного'}\n
\n
\n
\n Ð’Ñего в ÑпиÑке \n
\n
\n
\n
\n
\n
\n
\n
\n Больше не показывать\n
\n
В избранное\n
\n
\n
\n
\n
\n
\n
`;\n","import './index.scss';\n\nimport {config} from 'core/config';\nimport {templateCompareHead} from './templateCompareHead';\n\nconst SELECT = {\n 'good': '.js-compare-good',\n 'addedToCompare': 'js-added-to-compare',\n 'head': '.js-compare-head',\n 'headName': '.js-compare-name',\n 'headClose': '.js-compare-head-close',\n 'headCount': '.js-compare-count',\n 'headAction': '.js-compare-action-text',\n 'headDontShowBtn': '.js-compare-dontShow',\n 'jsonUrlAdd': '/compare/add',\n 'jsonUrlRemove': '/compare/remove',\n};\n\nexport const compareHead = {\n bindEvents: function() {\n const $addTofavorites = document.querySelector('.js-add-to-favorites');\n if ($addTofavorites !== null) {\n $addTofavorites.addEventListener('click', function() {\n if (this.classList.contains('added')) {\n this.querySelector('.link').textContent = 'Добавить в избранное';\n this.classList.remove('added');\n compareHead.removeGoodFromCompare(this.dataset.goodId);\n } else {\n this.classList.add('added');\n this.querySelector('.link').textContent = 'Удалить из избранного';\n compareHead.addGoodToCompare(this.dataset.goodId);\n }\n });\n }\n compareHead.setCompareStatus();\n },\n update: function(data) {\n const $compareHead = document.querySelector(SELECT.head);\n const $comparHeadName = document.querySelector(SELECT.headName);\n const $comparHeadCount = document.querySelector(SELECT.headCount);\n const $comparHeadAction = document.querySelector(SELECT.headAction);\n if ($compareHead !== null) {\n $compareHead.style.display = 'block';\n $comparHeadName.textContent = data.name;\n $comparHeadCount.innerHTML = '
';\n if (data.action == 'add') {\n $comparHeadAction.innerHTML = 'добавлен в избранное';\n compareHead.addGoodToCompare(data.id);\n } else {\n $comparHeadAction.innerHTML = 'удалён из избранного';\n compareHead.removeGoodFromCompare(data.id);\n }\n } else {\n // $('#page').prepend(templateCompareHead(data));\n document.getElementById('page').insertAdjacentHTML('beforebegin', templateCompareHead(data));\n document.querySelector(SELECT.headClose).addEventListener('click', function() {\n document.querySelector(SELECT.head).style.display = 'none';\n });\n document.querySelector(SELECT.headDontShowBtn).addEventListener('click', function() {\n document.querySelector(SELECT.head).style.display = 'none';\n document.cookie = 'compareDontShow=true; max-age=86400; path=/;';\n });\n if (data.action == 'add') {\n compareHead.addGoodToCompare(data.id);\n } else {\n compareHead.removeGoodFromCompare(data.id);\n }\n };\n },\n addGoodToCompare: function(goodId) {\n config.get(SELECT.jsonUrlAdd, {gogoods_id: goodId}).then((response) => {\n compareHead.updateInHead();\n });\n document.cookie = 'compareDontShow=false; max-age=86400; path=/;';\n },\n removeGoodFromCompare: function(goodId) {\n config.get(SELECT.jsonUrlRemove, {gogoods_id: goodId}).then((response) => {\n compareHead.updateInHead();\n });\n },\n updateInHead: function() {\n const $headCount = document.querySelector(SELECT.headCount);\n config.get('/compare/list').then((response) => {\n if ($headCount !== null) $headCount.innerHTML = response.count_goods;\n const data = Object.values(response.goods);\n if (data.length > 0) {\n document.querySelector('.header-favorites .link').textContent = `Избранное (${data.length})`;\n } else {\n document.querySelector('.header-favorites .link').textContent = 'Избранное';\n }\n\n if (window.innerWidth <= config.breakpoints.lg) {\n const mobileCompare = document.querySelector('.compare-mobile');\n\n if (mobileCompare !== null && data.length > 0) {\n mobileCompare.classList.remove('d-none');\n let mobileLinkCompareVal = mobileCompare.querySelector('.compare-mobile-val');\n\n if (mobileLinkCompareVal === null) {\n mobileLinkCompareVal = document.createElement('span');\n mobileLinkCompareVal.classList.add('compare-mobile-val');\n mobileCompare.appendChild(mobileLinkCompareVal);\n }\n mobileLinkCompareVal.textContent = data.length;\n } else {\n mobileCompare.classList.add('d-none');\n }\n }\n });\n },\n setCompareStatus: function() {\n config.get('/compare/list').then((response) => {\n const data = Object.values(response.goods);\n if (data.length > 0) {\n document.querySelector('.header-favorites .link').textContent = `Избранное (${data.length})`;\n data.forEach((goodId) => {\n const $goodLink = document.querySelector(`.js-add-to-favorites[data-good-id=\"${goodId}\"]`);\n const $goodItem = document.querySelector(`.js-added-to-compare-${goodId}`);\n if ($goodLink) {\n $goodLink.classList.add('added');\n $goodLink.querySelector('.link').textContent = 'Удалить из избранного';\n }\n if ($goodItem) {\n $goodItem.classList.add('js-added-to-compare');\n $goodItem.title = 'Убрать из избранного';\n $goodItem.dataset.action = 'remove';\n }\n });\n }\n if (window.innerWidth <= config.breakpoints.lg) {\n const mobileCompare = document.querySelector('.compare-mobile');\n\n if (mobileCompare !== null && data.length > 0) {\n mobileCompare.classList.remove('d-none');\n let mobileLinkCompareVal = mobileCompare.querySelector('.compare-mobile-val');\n\n if (mobileLinkCompareVal === null) {\n mobileLinkCompareVal = document.createElement('span');\n mobileLinkCompareVal.classList.add('compare-mobile-val');\n mobileCompare.appendChild(mobileLinkCompareVal);\n }\n mobileLinkCompareVal.textContent = data.length;\n } else {\n mobileCompare.classList.add('d-none');\n }\n }\n });\n },\n};\n","export const baloonTemplate = (data) => {\n let bln = `
${data.name}
`;\n if (data.icon) {\n bln += `\n
\n
\n
\n
\n
`;\n }\n if (data.actual_address) {\n bln += `
${data.actual_address}
`;\n\n if (data.phone) {\n bln += `
тел: ${data.phone}
`;\n }\n }\n if (data.workgrafic) {\n bln += `\n
\n
\n
${data.workgrafic}
\n
\n
`;\n }\n\n if (data.paymentsInfo) {\n bln += `
\n
СпоÑобы оплаты:
\n
`;\n for (const pointInfo in data.paymentsInfo) {\n bln += `
\n
\n
`;\n }\n bln += `
`;\n }\n\n if (data.shm) {\n bln += `
\n
Выбрать
\n
`;\n }\n\n // ТОВÐРИЩ, не забудь проверить карточку ШМ, Ñ‚.к. шаблон балуна общий Ð´Ð»Ñ Ñамовывоза и ШМ\n return bln;\n};\n","/*!\n * Datepicker for Bootstrap v1.9.0 (https://github.com/uxsolutions/bootstrap-datepicker)\n *\n * Licensed under the Apache License v2.0 (http://www.apache.org/licenses/LICENSE-2.0)\n */\n\n(function(factory){\n if (typeof define === 'function' && define.amd) {\n define(['jquery'], factory);\n } else if (typeof exports === 'object') {\n factory(require('jquery'));\n } else {\n factory(jQuery);\n }\n}(function($, undefined){\n\tfunction UTCDate(){\n\t\treturn new Date(Date.UTC.apply(Date, arguments));\n\t}\n\tfunction UTCToday(){\n\t\tvar today = new Date();\n\t\treturn UTCDate(today.getFullYear(), today.getMonth(), today.getDate());\n\t}\n\tfunction isUTCEquals(date1, date2) {\n\t\treturn (\n\t\t\tdate1.getUTCFullYear() === date2.getUTCFullYear() &&\n\t\t\tdate1.getUTCMonth() === date2.getUTCMonth() &&\n\t\t\tdate1.getUTCDate() === date2.getUTCDate()\n\t\t);\n\t}\n\tfunction alias(method, deprecationMsg){\n\t\treturn function(){\n\t\t\tif (deprecationMsg !== undefined) {\n\t\t\t\t$.fn.datepicker.deprecated(deprecationMsg);\n\t\t\t}\n\n\t\t\treturn this[method].apply(this, arguments);\n\t\t};\n\t}\n\tfunction isValidDate(d) {\n\t\treturn d && !isNaN(d.getTime());\n\t}\n\n\tvar DateArray = (function(){\n\t\tvar extras = {\n\t\t\tget: function(i){\n\t\t\t\treturn this.slice(i)[0];\n\t\t\t},\n\t\t\tcontains: function(d){\n\t\t\t\t// Array.indexOf is not cross-browser;\n\t\t\t\t// $.inArray doesn't work with Dates\n\t\t\t\tvar val = d && d.valueOf();\n\t\t\t\tfor (var i=0, l=this.length; i < l; i++)\n // Use date arithmetic to allow dates with different times to match\n if (0 <= this[i].valueOf() - val && this[i].valueOf() - val < 1000*60*60*24)\n\t\t\t\t\t\treturn i;\n\t\t\t\treturn -1;\n\t\t\t},\n\t\t\tremove: function(i){\n\t\t\t\tthis.splice(i,1);\n\t\t\t},\n\t\t\treplace: function(new_array){\n\t\t\t\tif (!new_array)\n\t\t\t\t\treturn;\n\t\t\t\tif (!$.isArray(new_array))\n\t\t\t\t\tnew_array = [new_array];\n\t\t\t\tthis.clear();\n\t\t\t\tthis.push.apply(this, new_array);\n\t\t\t},\n\t\t\tclear: function(){\n\t\t\t\tthis.length = 0;\n\t\t\t},\n\t\t\tcopy: function(){\n\t\t\t\tvar a = new DateArray();\n\t\t\t\ta.replace(this);\n\t\t\t\treturn a;\n\t\t\t}\n\t\t};\n\n\t\treturn function(){\n\t\t\tvar a = [];\n\t\t\ta.push.apply(a, arguments);\n\t\t\t$.extend(a, extras);\n\t\t\treturn a;\n\t\t};\n\t})();\n\n\n\t// Picker object\n\n\tvar Datepicker = function(element, options){\n\t\t$.data(element, 'datepicker', this);\n\n\t\tthis._events = [];\n\t\tthis._secondaryEvents = [];\n\n\t\tthis._process_options(options);\n\n\t\tthis.dates = new DateArray();\n\t\tthis.viewDate = this.o.defaultViewDate;\n\t\tthis.focusDate = null;\n\n\t\tthis.element = $(element);\n\t\tthis.isInput = this.element.is('input');\n\t\tthis.inputField = this.isInput ? this.element : this.element.find('input');\n\t\tthis.component = this.element.hasClass('date') ? this.element.find('.add-on, .input-group-addon, .input-group-append, .input-group-prepend, .btn') : false;\n\t\tif (this.component && this.component.length === 0)\n\t\t\tthis.component = false;\n\t\tthis.isInline = !this.component && this.element.is('div');\n\n\t\tthis.picker = $(DPGlobal.template);\n\n\t\t// Checking templates and inserting\n\t\tif (this._check_template(this.o.templates.leftArrow)) {\n\t\t\tthis.picker.find('.prev').html(this.o.templates.leftArrow);\n\t\t}\n\n\t\tif (this._check_template(this.o.templates.rightArrow)) {\n\t\t\tthis.picker.find('.next').html(this.o.templates.rightArrow);\n\t\t}\n\n\t\tthis._buildEvents();\n\t\tthis._attachEvents();\n\n\t\tif (this.isInline){\n\t\t\tthis.picker.addClass('datepicker-inline').appendTo(this.element);\n\t\t}\n\t\telse {\n\t\t\tthis.picker.addClass('datepicker-dropdown dropdown-menu');\n\t\t}\n\n\t\tif (this.o.rtl){\n\t\t\tthis.picker.addClass('datepicker-rtl');\n\t\t}\n\n\t\tif (this.o.calendarWeeks) {\n\t\t\tthis.picker.find('.datepicker-days .datepicker-switch, thead .datepicker-title, tfoot .today, tfoot .clear')\n\t\t\t\t.attr('colspan', function(i, val){\n\t\t\t\t\treturn Number(val) + 1;\n\t\t\t\t});\n\t\t}\n\n\t\tthis._process_options({\n\t\t\tstartDate: this._o.startDate,\n\t\t\tendDate: this._o.endDate,\n\t\t\tdaysOfWeekDisabled: this.o.daysOfWeekDisabled,\n\t\t\tdaysOfWeekHighlighted: this.o.daysOfWeekHighlighted,\n\t\t\tdatesDisabled: this.o.datesDisabled\n\t\t});\n\n\t\tthis._allow_update = false;\n\t\tthis.setViewMode(this.o.startView);\n\t\tthis._allow_update = true;\n\n\t\tthis.fillDow();\n\t\tthis.fillMonths();\n\n\t\tthis.update();\n\n\t\tif (this.isInline){\n\t\t\tthis.show();\n\t\t}\n\t};\n\n\tDatepicker.prototype = {\n\t\tconstructor: Datepicker,\n\n\t\t_resolveViewName: function(view){\n\t\t\t$.each(DPGlobal.viewModes, function(i, viewMode){\n\t\t\t\tif (view === i || $.inArray(view, viewMode.names) !== -1){\n\t\t\t\t\tview = i;\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn view;\n\t\t},\n\n\t\t_resolveDaysOfWeek: function(daysOfWeek){\n\t\t\tif (!$.isArray(daysOfWeek))\n\t\t\t\tdaysOfWeek = daysOfWeek.split(/[,\\s]*/);\n\t\t\treturn $.map(daysOfWeek, Number);\n\t\t},\n\n\t\t_check_template: function(tmp){\n\t\t\ttry {\n\t\t\t\t// If empty\n\t\t\t\tif (tmp === undefined || tmp === \"\") {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t// If no html, everything ok\n\t\t\t\tif ((tmp.match(/[<>]/g) || []).length <= 0) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\t// Checking if html is fine\n\t\t\t\tvar jDom = $(tmp);\n\t\t\t\treturn jDom.length > 0;\n\t\t\t}\n\t\t\tcatch (ex) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t_process_options: function(opts){\n\t\t\t// Store raw options for reference\n\t\t\tthis._o = $.extend({}, this._o, opts);\n\t\t\t// Processed options\n\t\t\tvar o = this.o = $.extend({}, this._o);\n\n\t\t\t// Check if \"de-DE\" style date is available, if not language should\n\t\t\t// fallback to 2 letter code eg \"de\"\n\t\t\tvar lang = o.language;\n\t\t\tif (!dates[lang]){\n\t\t\t\tlang = lang.split('-')[0];\n\t\t\t\tif (!dates[lang])\n\t\t\t\t\tlang = defaults.language;\n\t\t\t}\n\t\t\to.language = lang;\n\n\t\t\t// Retrieve view index from any aliases\n\t\t\to.startView = this._resolveViewName(o.startView);\n\t\t\to.minViewMode = this._resolveViewName(o.minViewMode);\n\t\t\to.maxViewMode = this._resolveViewName(o.maxViewMode);\n\n\t\t\t// Check view is between min and max\n\t\t\to.startView = Math.max(this.o.minViewMode, Math.min(this.o.maxViewMode, o.startView));\n\n\t\t\t// true, false, or Number > 0\n\t\t\tif (o.multidate !== true){\n\t\t\t\to.multidate = Number(o.multidate) || false;\n\t\t\t\tif (o.multidate !== false)\n\t\t\t\t\to.multidate = Math.max(0, o.multidate);\n\t\t\t}\n\t\t\to.multidateSeparator = String(o.multidateSeparator);\n\n\t\t\to.weekStart %= 7;\n\t\t\to.weekEnd = (o.weekStart + 6) % 7;\n\n\t\t\tvar format = DPGlobal.parseFormat(o.format);\n\t\t\tif (o.startDate !== -Infinity){\n\t\t\t\tif (!!o.startDate){\n\t\t\t\t\tif (o.startDate instanceof Date)\n\t\t\t\t\t\to.startDate = this._local_to_utc(this._zero_time(o.startDate));\n\t\t\t\t\telse\n\t\t\t\t\t\to.startDate = DPGlobal.parseDate(o.startDate, format, o.language, o.assumeNearbyYear);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\to.startDate = -Infinity;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (o.endDate !== Infinity){\n\t\t\t\tif (!!o.endDate){\n\t\t\t\t\tif (o.endDate instanceof Date)\n\t\t\t\t\t\to.endDate = this._local_to_utc(this._zero_time(o.endDate));\n\t\t\t\t\telse\n\t\t\t\t\t\to.endDate = DPGlobal.parseDate(o.endDate, format, o.language, o.assumeNearbyYear);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\to.endDate = Infinity;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\to.daysOfWeekDisabled = this._resolveDaysOfWeek(o.daysOfWeekDisabled||[]);\n\t\t\to.daysOfWeekHighlighted = this._resolveDaysOfWeek(o.daysOfWeekHighlighted||[]);\n\n\t\t\to.datesDisabled = o.datesDisabled||[];\n\t\t\tif (!$.isArray(o.datesDisabled)) {\n\t\t\t\to.datesDisabled = o.datesDisabled.split(',');\n\t\t\t}\n\t\t\to.datesDisabled = $.map(o.datesDisabled, function(d){\n\t\t\t\treturn DPGlobal.parseDate(d, format, o.language, o.assumeNearbyYear);\n\t\t\t});\n\n\t\t\tvar plc = String(o.orientation).toLowerCase().split(/\\s+/g),\n\t\t\t\t_plc = o.orientation.toLowerCase();\n\t\t\tplc = $.grep(plc, function(word){\n\t\t\t\treturn /^auto|left|right|top|bottom$/.test(word);\n\t\t\t});\n\t\t\to.orientation = {x: 'auto', y: 'auto'};\n\t\t\tif (!_plc || _plc === 'auto')\n\t\t\t\t; // no action\n\t\t\telse if (plc.length === 1){\n\t\t\t\tswitch (plc[0]){\n\t\t\t\t\tcase 'top':\n\t\t\t\t\tcase 'bottom':\n\t\t\t\t\t\to.orientation.y = plc[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'left':\n\t\t\t\t\tcase 'right':\n\t\t\t\t\t\to.orientation.x = plc[0];\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\t_plc = $.grep(plc, function(word){\n\t\t\t\t\treturn /^left|right$/.test(word);\n\t\t\t\t});\n\t\t\t\to.orientation.x = _plc[0] || 'auto';\n\n\t\t\t\t_plc = $.grep(plc, function(word){\n\t\t\t\t\treturn /^top|bottom$/.test(word);\n\t\t\t\t});\n\t\t\t\to.orientation.y = _plc[0] || 'auto';\n\t\t\t}\n\t\t\tif (o.defaultViewDate instanceof Date || typeof o.defaultViewDate === 'string') {\n\t\t\t\to.defaultViewDate = DPGlobal.parseDate(o.defaultViewDate, format, o.language, o.assumeNearbyYear);\n\t\t\t} else if (o.defaultViewDate) {\n\t\t\t\tvar year = o.defaultViewDate.year || new Date().getFullYear();\n\t\t\t\tvar month = o.defaultViewDate.month || 0;\n\t\t\t\tvar day = o.defaultViewDate.day || 1;\n\t\t\t\to.defaultViewDate = UTCDate(year, month, day);\n\t\t\t} else {\n\t\t\t\to.defaultViewDate = UTCToday();\n\t\t\t}\n\t\t},\n\t\t_applyEvents: function(evs){\n\t\t\tfor (var i=0, el, ch, ev; i < evs.length; i++){\n\t\t\t\tel = evs[i][0];\n\t\t\t\tif (evs[i].length === 2){\n\t\t\t\t\tch = undefined;\n\t\t\t\t\tev = evs[i][1];\n\t\t\t\t} else if (evs[i].length === 3){\n\t\t\t\t\tch = evs[i][1];\n\t\t\t\t\tev = evs[i][2];\n\t\t\t\t}\n\t\t\t\tel.on(ev, ch);\n\t\t\t}\n\t\t},\n\t\t_unapplyEvents: function(evs){\n\t\t\tfor (var i=0, el, ev, ch; i < evs.length; i++){\n\t\t\t\tel = evs[i][0];\n\t\t\t\tif (evs[i].length === 2){\n\t\t\t\t\tch = undefined;\n\t\t\t\t\tev = evs[i][1];\n\t\t\t\t} else if (evs[i].length === 3){\n\t\t\t\t\tch = evs[i][1];\n\t\t\t\t\tev = evs[i][2];\n\t\t\t\t}\n\t\t\t\tel.off(ev, ch);\n\t\t\t}\n\t\t},\n\t\t_buildEvents: function(){\n var events = {\n keyup: $.proxy(function(e){\n if ($.inArray(e.keyCode, [27, 37, 39, 38, 40, 32, 13, 9]) === -1)\n this.update();\n }, this),\n keydown: $.proxy(this.keydown, this),\n paste: $.proxy(this.paste, this)\n };\n\n if (this.o.showOnFocus === true) {\n events.focus = $.proxy(this.show, this);\n }\n\n if (this.isInput) { // single input\n this._events = [\n [this.element, events]\n ];\n }\n // component: input + button\n else if (this.component && this.inputField.length) {\n this._events = [\n // For components that are not readonly, allow keyboard nav\n [this.inputField, events],\n [this.component, {\n click: $.proxy(this.show, this)\n }]\n ];\n }\n\t\t\telse {\n\t\t\t\tthis._events = [\n\t\t\t\t\t[this.element, {\n\t\t\t\t\t\tclick: $.proxy(this.show, this),\n\t\t\t\t\t\tkeydown: $.proxy(this.keydown, this)\n\t\t\t\t\t}]\n\t\t\t\t];\n\t\t\t}\n\t\t\tthis._events.push(\n\t\t\t\t// Component: listen for blur on element descendants\n\t\t\t\t[this.element, '*', {\n\t\t\t\t\tblur: $.proxy(function(e){\n\t\t\t\t\t\tthis._focused_from = e.target;\n\t\t\t\t\t}, this)\n\t\t\t\t}],\n\t\t\t\t// Input: listen for blur on element\n\t\t\t\t[this.element, {\n\t\t\t\t\tblur: $.proxy(function(e){\n\t\t\t\t\t\tthis._focused_from = e.target;\n\t\t\t\t\t}, this)\n\t\t\t\t}]\n\t\t\t);\n\n\t\t\tif (this.o.immediateUpdates) {\n\t\t\t\t// Trigger input updates immediately on changed year/month\n\t\t\t\tthis._events.push([this.element, {\n\t\t\t\t\t'changeYear changeMonth': $.proxy(function(e){\n\t\t\t\t\t\tthis.update(e.date);\n\t\t\t\t\t}, this)\n\t\t\t\t}]);\n\t\t\t}\n\n\t\t\tthis._secondaryEvents = [\n\t\t\t\t[this.picker, {\n\t\t\t\t\tclick: $.proxy(this.click, this)\n\t\t\t\t}],\n\t\t\t\t[this.picker, '.prev, .next', {\n\t\t\t\t\tclick: $.proxy(this.navArrowsClick, this)\n\t\t\t\t}],\n\t\t\t\t[this.picker, '.day:not(.disabled)', {\n\t\t\t\t\tclick: $.proxy(this.dayCellClick, this)\n\t\t\t\t}],\n\t\t\t\t[$(window), {\n\t\t\t\t\tresize: $.proxy(this.place, this)\n\t\t\t\t}],\n\t\t\t\t[$(document), {\n\t\t\t\t\t'mousedown touchstart': $.proxy(function(e){\n\t\t\t\t\t\t// Clicked outside the datepicker, hide it\n\t\t\t\t\t\tif (!(\n\t\t\t\t\t\t\tthis.element.is(e.target) ||\n\t\t\t\t\t\t\tthis.element.find(e.target).length ||\n\t\t\t\t\t\t\tthis.picker.is(e.target) ||\n\t\t\t\t\t\t\tthis.picker.find(e.target).length ||\n\t\t\t\t\t\t\tthis.isInline\n\t\t\t\t\t\t)){\n\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t\t}\n\t\t\t\t\t}, this)\n\t\t\t\t}]\n\t\t\t];\n\t\t},\n\t\t_attachEvents: function(){\n\t\t\tthis._detachEvents();\n\t\t\tthis._applyEvents(this._events);\n\t\t},\n\t\t_detachEvents: function(){\n\t\t\tthis._unapplyEvents(this._events);\n\t\t},\n\t\t_attachSecondaryEvents: function(){\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis._applyEvents(this._secondaryEvents);\n\t\t},\n\t\t_detachSecondaryEvents: function(){\n\t\t\tthis._unapplyEvents(this._secondaryEvents);\n\t\t},\n\t\t_trigger: function(event, altdate){\n\t\t\tvar date = altdate || this.dates.get(-1),\n\t\t\t\tlocal_date = this._utc_to_local(date);\n\n\t\t\tthis.element.trigger({\n\t\t\t\ttype: event,\n\t\t\t\tdate: local_date,\n\t\t\t\tviewMode: this.viewMode,\n\t\t\t\tdates: $.map(this.dates, this._utc_to_local),\n\t\t\t\tformat: $.proxy(function(ix, format){\n\t\t\t\t\tif (arguments.length === 0){\n\t\t\t\t\t\tix = this.dates.length - 1;\n\t\t\t\t\t\tformat = this.o.format;\n\t\t\t\t\t} else if (typeof ix === 'string'){\n\t\t\t\t\t\tformat = ix;\n\t\t\t\t\t\tix = this.dates.length - 1;\n\t\t\t\t\t}\n\t\t\t\t\tformat = format || this.o.format;\n\t\t\t\t\tvar date = this.dates.get(ix);\n\t\t\t\t\treturn DPGlobal.formatDate(date, format, this.o.language);\n\t\t\t\t}, this)\n\t\t\t});\n\t\t},\n\n\t\tshow: function(){\n\t\t\tif (this.inputField.is(':disabled') || (this.inputField.prop('readonly') && this.o.enableOnReadonly === false))\n\t\t\t\treturn;\n\t\t\tif (!this.isInline)\n\t\t\t\tthis.picker.appendTo(this.o.container);\n\t\t\tthis.place();\n\t\t\tthis.picker.show();\n\t\t\tthis._attachSecondaryEvents();\n\t\t\tthis._trigger('show');\n\t\t\tif ((window.navigator.msMaxTouchPoints || 'ontouchstart' in document) && this.o.disableTouchKeyboard) {\n\t\t\t\t$(this.element).blur();\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\thide: function(){\n\t\t\tif (this.isInline || !this.picker.is(':visible'))\n\t\t\t\treturn this;\n\t\t\tthis.focusDate = null;\n\t\t\tthis.picker.hide().detach();\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis.setViewMode(this.o.startView);\n\n\t\t\tif (this.o.forceParse && this.inputField.val())\n\t\t\t\tthis.setValue();\n\t\t\tthis._trigger('hide');\n\t\t\treturn this;\n\t\t},\n\n\t\tdestroy: function(){\n\t\t\tthis.hide();\n\t\t\tthis._detachEvents();\n\t\t\tthis._detachSecondaryEvents();\n\t\t\tthis.picker.remove();\n\t\t\tdelete this.element.data().datepicker;\n\t\t\tif (!this.isInput){\n\t\t\t\tdelete this.element.data().date;\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\tpaste: function(e){\n\t\t\tvar dateString;\n\t\t\tif (e.originalEvent.clipboardData && e.originalEvent.clipboardData.types\n\t\t\t\t&& $.inArray('text/plain', e.originalEvent.clipboardData.types) !== -1) {\n\t\t\t\tdateString = e.originalEvent.clipboardData.getData('text/plain');\n\t\t\t} else if (window.clipboardData) {\n\t\t\t\tdateString = window.clipboardData.getData('Text');\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.setDate(dateString);\n\t\t\tthis.update();\n\t\t\te.preventDefault();\n\t\t},\n\n\t\t_utc_to_local: function(utc){\n\t\t\tif (!utc) {\n\t\t\t\treturn utc;\n\t\t\t}\n\n\t\t\tvar local = new Date(utc.getTime() + (utc.getTimezoneOffset() * 60000));\n\n\t\t\tif (local.getTimezoneOffset() !== utc.getTimezoneOffset()) {\n\t\t\t\tlocal = new Date(utc.getTime() + (local.getTimezoneOffset() * 60000));\n\t\t\t}\n\n\t\t\treturn local;\n\t\t},\n\t\t_local_to_utc: function(local){\n\t\t\treturn local && new Date(local.getTime() - (local.getTimezoneOffset()*60000));\n\t\t},\n\t\t_zero_time: function(local){\n\t\t\treturn local && new Date(local.getFullYear(), local.getMonth(), local.getDate());\n\t\t},\n\t\t_zero_utc_time: function(utc){\n\t\t\treturn utc && UTCDate(utc.getUTCFullYear(), utc.getUTCMonth(), utc.getUTCDate());\n\t\t},\n\n\t\tgetDates: function(){\n\t\t\treturn $.map(this.dates, this._utc_to_local);\n\t\t},\n\n\t\tgetUTCDates: function(){\n\t\t\treturn $.map(this.dates, function(d){\n\t\t\t\treturn new Date(d);\n\t\t\t});\n\t\t},\n\n\t\tgetDate: function(){\n\t\t\treturn this._utc_to_local(this.getUTCDate());\n\t\t},\n\n\t\tgetUTCDate: function(){\n\t\t\tvar selected_date = this.dates.get(-1);\n\t\t\tif (selected_date !== undefined) {\n\t\t\t\treturn new Date(selected_date);\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t},\n\n\t\tclearDates: function(){\n\t\t\tthis.inputField.val('');\n\t\t\tthis.update();\n\t\t\tthis._trigger('changeDate');\n\n\t\t\tif (this.o.autoclose) {\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t},\n\n\t\tsetDates: function(){\n\t\t\tvar args = $.isArray(arguments[0]) ? arguments[0] : arguments;\n\t\t\tthis.update.apply(this, args);\n\t\t\tthis._trigger('changeDate');\n\t\t\tthis.setValue();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetUTCDates: function(){\n\t\t\tvar args = $.isArray(arguments[0]) ? arguments[0] : arguments;\n\t\t\tthis.setDates.apply(this, $.map(args, this._utc_to_local));\n\t\t\treturn this;\n\t\t},\n\n\t\tsetDate: alias('setDates'),\n\t\tsetUTCDate: alias('setUTCDates'),\n\t\tremove: alias('destroy', 'Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead'),\n\n\t\tsetValue: function(){\n\t\t\tvar formatted = this.getFormattedDate();\n\t\t\tthis.inputField.val(formatted);\n\t\t\treturn this;\n\t\t},\n\n\t\tgetFormattedDate: function(format){\n\t\t\tif (format === undefined)\n\t\t\t\tformat = this.o.format;\n\n\t\t\tvar lang = this.o.language;\n\t\t\treturn $.map(this.dates, function(d){\n\t\t\t\treturn DPGlobal.formatDate(d, format, lang);\n\t\t\t}).join(this.o.multidateSeparator);\n\t\t},\n\n\t\tgetStartDate: function(){\n\t\t\treturn this.o.startDate;\n\t\t},\n\n\t\tsetStartDate: function(startDate){\n\t\t\tthis._process_options({startDate: startDate});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t\treturn this;\n\t\t},\n\n\t\tgetEndDate: function(){\n\t\t\treturn this.o.endDate;\n\t\t},\n\n\t\tsetEndDate: function(endDate){\n\t\t\tthis._process_options({endDate: endDate});\n\t\t\tthis.update();\n\t\t\tthis.updateNavArrows();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetDaysOfWeekDisabled: function(daysOfWeekDisabled){\n\t\t\tthis._process_options({daysOfWeekDisabled: daysOfWeekDisabled});\n\t\t\tthis.update();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetDaysOfWeekHighlighted: function(daysOfWeekHighlighted){\n\t\t\tthis._process_options({daysOfWeekHighlighted: daysOfWeekHighlighted});\n\t\t\tthis.update();\n\t\t\treturn this;\n\t\t},\n\n\t\tsetDatesDisabled: function(datesDisabled){\n\t\t\tthis._process_options({datesDisabled: datesDisabled});\n\t\t\tthis.update();\n\t\t\treturn this;\n\t\t},\n\n\t\tplace: function(){\n\t\t\tif (this.isInline)\n\t\t\t\treturn this;\n\t\t\tvar calendarWidth = this.picker.outerWidth(),\n\t\t\t\tcalendarHeight = this.picker.outerHeight(),\n\t\t\t\tvisualPadding = 10,\n\t\t\t\tcontainer = $(this.o.container),\n\t\t\t\twindowWidth = container.width(),\n\t\t\t\tscrollTop = this.o.container === 'body' ? $(document).scrollTop() : container.scrollTop(),\n\t\t\t\tappendOffset = container.offset();\n\n\t\t\tvar parentsZindex = [0];\n\t\t\tthis.element.parents().each(function(){\n\t\t\t\tvar itemZIndex = $(this).css('z-index');\n\t\t\t\tif (itemZIndex !== 'auto' && Number(itemZIndex) !== 0) parentsZindex.push(Number(itemZIndex));\n\t\t\t});\n\t\t\tvar zIndex = Math.max.apply(Math, parentsZindex) + this.o.zIndexOffset;\n\t\t\tvar offset = this.component ? this.component.parent().offset() : this.element.offset();\n\t\t\tvar height = this.component ? this.component.outerHeight(true) : this.element.outerHeight(false);\n\t\t\tvar width = this.component ? this.component.outerWidth(true) : this.element.outerWidth(false);\n\t\t\tvar left = offset.left - appendOffset.left;\n\t\t\tvar top = offset.top - appendOffset.top;\n\n\t\t\tif (this.o.container !== 'body') {\n\t\t\t\ttop += scrollTop;\n\t\t\t}\n\n\t\t\tthis.picker.removeClass(\n\t\t\t\t'datepicker-orient-top datepicker-orient-bottom '+\n\t\t\t\t'datepicker-orient-right datepicker-orient-left'\n\t\t\t);\n\n\t\t\tif (this.o.orientation.x !== 'auto'){\n\t\t\t\tthis.picker.addClass('datepicker-orient-' + this.o.orientation.x);\n\t\t\t\tif (this.o.orientation.x === 'right')\n\t\t\t\t\tleft -= calendarWidth - width;\n\t\t\t}\n\t\t\t// auto x orientation is best-placement: if it crosses a window\n\t\t\t// edge, fudge it sideways\n\t\t\telse {\n\t\t\t\tif (offset.left < 0) {\n\t\t\t\t\t// component is outside the window on the left side. Move it into visible range\n\t\t\t\t\tthis.picker.addClass('datepicker-orient-left');\n\t\t\t\t\tleft -= offset.left - visualPadding;\n\t\t\t\t} else if (left + calendarWidth > windowWidth) {\n\t\t\t\t\t// the calendar passes the widow right edge. Align it to component right side\n\t\t\t\t\tthis.picker.addClass('datepicker-orient-right');\n\t\t\t\t\tleft += width - calendarWidth;\n\t\t\t\t} else {\n\t\t\t\t\tif (this.o.rtl) {\n\t\t\t\t\t\t// Default to right\n\t\t\t\t\t\tthis.picker.addClass('datepicker-orient-right');\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Default to left\n\t\t\t\t\t\tthis.picker.addClass('datepicker-orient-left');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// auto y orientation is best-situation: top or bottom, no fudging,\n\t\t\t// decision based on which shows more of the calendar\n\t\t\tvar yorient = this.o.orientation.y,\n\t\t\t\ttop_overflow;\n\t\t\tif (yorient === 'auto'){\n\t\t\t\ttop_overflow = -scrollTop + top - calendarHeight;\n\t\t\t\tyorient = top_overflow < 0 ? 'bottom' : 'top';\n\t\t\t}\n\n\t\t\tthis.picker.addClass('datepicker-orient-' + yorient);\n\t\t\tif (yorient === 'top')\n\t\t\t\ttop -= calendarHeight + parseInt(this.picker.css('padding-top'));\n\t\t\telse\n\t\t\t\ttop += height;\n\n\t\t\tif (this.o.rtl) {\n\t\t\t\tvar right = windowWidth - (left + width);\n\t\t\t\tthis.picker.css({\n\t\t\t\t\ttop: top,\n\t\t\t\t\tright: right,\n\t\t\t\t\tzIndex: zIndex\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.picker.css({\n\t\t\t\t\ttop: top,\n\t\t\t\t\tleft: left,\n\t\t\t\t\tzIndex: zIndex\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn this;\n\t\t},\n\n\t\t_allow_update: true,\n\t\tupdate: function(){\n\t\t\tif (!this._allow_update)\n\t\t\t\treturn this;\n\n\t\t\tvar oldDates = this.dates.copy(),\n\t\t\t\tdates = [],\n\t\t\t\tfromArgs = false;\n\t\t\tif (arguments.length){\n\t\t\t\t$.each(arguments, $.proxy(function(i, date){\n\t\t\t\t\tif (date instanceof Date)\n\t\t\t\t\t\tdate = this._local_to_utc(date);\n\t\t\t\t\tdates.push(date);\n\t\t\t\t}, this));\n\t\t\t\tfromArgs = true;\n\t\t\t} else {\n\t\t\t\tdates = this.isInput\n\t\t\t\t\t\t? this.element.val()\n\t\t\t\t\t\t: this.element.data('date') || this.inputField.val();\n\t\t\t\tif (dates && this.o.multidate)\n\t\t\t\t\tdates = dates.split(this.o.multidateSeparator);\n\t\t\t\telse\n\t\t\t\t\tdates = [dates];\n\t\t\t\tdelete this.element.data().date;\n\t\t\t}\n\n\t\t\tdates = $.map(dates, $.proxy(function(date){\n\t\t\t\treturn DPGlobal.parseDate(date, this.o.format, this.o.language, this.o.assumeNearbyYear);\n\t\t\t}, this));\n\t\t\tdates = $.grep(dates, $.proxy(function(date){\n\t\t\t\treturn (\n\t\t\t\t\t!this.dateWithinRange(date) ||\n\t\t\t\t\t!date\n\t\t\t\t);\n\t\t\t}, this), true);\n\t\t\tthis.dates.replace(dates);\n\n\t\t\tif (this.o.updateViewDate) {\n\t\t\t\tif (this.dates.length)\n\t\t\t\t\tthis.viewDate = new Date(this.dates.get(-1));\n\t\t\t\telse if (this.viewDate < this.o.startDate)\n\t\t\t\t\tthis.viewDate = new Date(this.o.startDate);\n\t\t\t\telse if (this.viewDate > this.o.endDate)\n\t\t\t\t\tthis.viewDate = new Date(this.o.endDate);\n\t\t\t\telse\n\t\t\t\t\tthis.viewDate = this.o.defaultViewDate;\n\t\t\t}\n\n\t\t\tif (fromArgs){\n\t\t\t\t// setting date by clicking\n\t\t\t\tthis.setValue();\n\t\t\t\tthis.element.change();\n\t\t\t}\n\t\t\telse if (this.dates.length){\n\t\t\t\t// setting date by typing\n\t\t\t\tif (String(oldDates) !== String(this.dates) && fromArgs) {\n\t\t\t\t\tthis._trigger('changeDate');\n\t\t\t\t\tthis.element.change();\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!this.dates.length && oldDates.length) {\n\t\t\t\tthis._trigger('clearDate');\n\t\t\t\tthis.element.change();\n\t\t\t}\n\n\t\t\tthis.fill();\n\t\t\treturn this;\n\t\t},\n\n\t\tfillDow: function(){\n if (this.o.showWeekDays) {\n\t\t\tvar dowCnt = this.o.weekStart,\n\t\t\t\thtml = '';\n\t\t\tif (this.o.calendarWeeks){\n\t\t\t\thtml += ' ';\n\t\t\t}\n\t\t\twhile (dowCnt < this.o.weekStart + 7){\n\t\t\t\thtml += '';\n\t\t\t}\n\t\t\thtml += '';\n\t\t\tthis.picker.find('.datepicker-days thead').append(html);\n }\n\t\t},\n\n\t\tfillMonths: function(){\n var localDate = this._utc_to_local(this.viewDate);\n\t\t\tvar html = '';\n\t\t\tvar focused;\n\t\t\tfor (var i = 0; i < 12; i++){\n\t\t\t\tfocused = localDate && localDate.getMonth() === i ? ' focused' : '';\n\t\t\t\thtml += '
' + dates[this.o.language].monthsShort[i] + '
';\n\t\t\t}\n\t\t\tthis.picker.find('.datepicker-months td').html(html);\n\t\t},\n\n\t\tsetRange: function(range){\n\t\t\tif (!range || !range.length)\n\t\t\t\tdelete this.range;\n\t\t\telse\n\t\t\t\tthis.range = $.map(range, function(d){\n\t\t\t\t\treturn d.valueOf();\n\t\t\t\t});\n\t\t\tthis.fill();\n\t\t},\n\n\t\tgetClassNames: function(date){\n\t\t\tvar cls = [],\n\t\t\t\tyear = this.viewDate.getUTCFullYear(),\n\t\t\t\tmonth = this.viewDate.getUTCMonth(),\n\t\t\t\ttoday = UTCToday();\n\t\t\tif (date.getUTCFullYear() < year || (date.getUTCFullYear() === year && date.getUTCMonth() < month)){\n\t\t\t\tcls.push('old');\n\t\t\t} else if (date.getUTCFullYear() > year || (date.getUTCFullYear() === year && date.getUTCMonth() > month)){\n\t\t\t\tcls.push('new');\n\t\t\t}\n\t\t\tif (this.focusDate && date.valueOf() === this.focusDate.valueOf())\n\t\t\t\tcls.push('focused');\n\t\t\t// Compare internal UTC date with UTC today, not local today\n\t\t\tif (this.o.todayHighlight && isUTCEquals(date, today)) {\n\t\t\t\tcls.push('today');\n\t\t\t}\n\t\t\tif (this.dates.contains(date) !== -1)\n\t\t\t\tcls.push('active');\n\t\t\tif (!this.dateWithinRange(date)){\n\t\t\t\tcls.push('disabled');\n\t\t\t}\n\t\t\tif (this.dateIsDisabled(date)){\n\t\t\t\tcls.push('disabled', 'disabled-date');\n\t\t\t}\n\t\t\tif ($.inArray(date.getUTCDay(), this.o.daysOfWeekHighlighted) !== -1){\n\t\t\t\tcls.push('highlighted');\n\t\t\t}\n\n\t\t\tif (this.range){\n\t\t\t\tif (date > this.range[0] && date < this.range[this.range.length-1]){\n\t\t\t\t\tcls.push('range');\n\t\t\t\t}\n\t\t\t\tif ($.inArray(date.valueOf(), this.range) !== -1){\n\t\t\t\t\tcls.push('selected');\n\t\t\t\t}\n\t\t\t\tif (date.valueOf() === this.range[0]){\n cls.push('range-start');\n }\n if (date.valueOf() === this.range[this.range.length-1]){\n cls.push('range-end');\n }\n\t\t\t}\n\t\t\treturn cls;\n\t\t},\n\n\t\t_fill_yearsView: function(selector, cssClass, factor, year, startYear, endYear, beforeFn){\n\t\t\tvar html = '';\n\t\t\tvar step = factor / 10;\n\t\t\tvar view = this.picker.find(selector);\n\t\t\tvar startVal = Math.floor(year / factor) * factor;\n\t\t\tvar endVal = startVal + step * 9;\n\t\t\tvar focusedVal = Math.floor(this.viewDate.getFullYear() / step) * step;\n\t\t\tvar selected = $.map(this.dates, function(d){\n\t\t\t\treturn Math.floor(d.getUTCFullYear() / step) * step;\n\t\t\t});\n\n\t\t\tvar classes, tooltip, before;\n\t\t\tfor (var currVal = startVal - step; currVal <= endVal + step; currVal += step) {\n\t\t\t\tclasses = [cssClass];\n\t\t\t\ttooltip = null;\n\n\t\t\t\tif (currVal === startVal - step) {\n\t\t\t\t\tclasses.push('old');\n\t\t\t\t} else if (currVal === endVal + step) {\n\t\t\t\t\tclasses.push('new');\n\t\t\t\t}\n\t\t\t\tif ($.inArray(currVal, selected) !== -1) {\n\t\t\t\t\tclasses.push('active');\n\t\t\t\t}\n\t\t\t\tif (currVal < startYear || currVal > endYear) {\n\t\t\t\t\tclasses.push('disabled');\n\t\t\t\t}\n\t\t\t\tif (currVal === focusedVal) {\n\t\t\t\t classes.push('focused');\n }\n\n\t\t\t\tif (beforeFn !== $.noop) {\n\t\t\t\t\tbefore = beforeFn(new Date(currVal, 0, 1));\n\t\t\t\t\tif (before === undefined) {\n\t\t\t\t\t\tbefore = {};\n\t\t\t\t\t} else if (typeof before === 'boolean') {\n\t\t\t\t\t\tbefore = {enabled: before};\n\t\t\t\t\t} else if (typeof before === 'string') {\n\t\t\t\t\t\tbefore = {classes: before};\n\t\t\t\t\t}\n\t\t\t\t\tif (before.enabled === false) {\n\t\t\t\t\t\tclasses.push('disabled');\n\t\t\t\t\t}\n\t\t\t\t\tif (before.classes) {\n\t\t\t\t\t\tclasses = classes.concat(before.classes.split(/\\s+/));\n\t\t\t\t\t}\n\t\t\t\t\tif (before.tooltip) {\n\t\t\t\t\t\ttooltip = before.tooltip;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\thtml += '
' + currVal + '
';\n\t\t\t}\n\n\t\t\tview.find('.datepicker-switch').text(startVal + '-' + endVal);\n\t\t\tview.find('td').html(html);\n\t\t},\n\n\t\tfill: function(){\n\t\t\tvar d = new Date(this.viewDate),\n\t\t\t\tyear = d.getUTCFullYear(),\n\t\t\t\tmonth = d.getUTCMonth(),\n\t\t\t\tstartYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity,\n\t\t\t\tstartMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,\n\t\t\t\tendYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,\n\t\t\t\tendMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,\n\t\t\t\ttodaytxt = dates[this.o.language].today || dates['en'].today || '',\n\t\t\t\tcleartxt = dates[this.o.language].clear || dates['en'].clear || '',\n titleFormat = dates[this.o.language].titleFormat || dates['en'].titleFormat,\n todayDate = UTCToday(),\n titleBtnVisible = (this.o.todayBtn === true || this.o.todayBtn === 'linked') && todayDate >= this.o.startDate && todayDate <= this.o.endDate && !this.weekOfDateIsDisabled(todayDate),\n\t\t\t\ttooltip,\n\t\t\t\tbefore;\n\t\t\tif (isNaN(year) || isNaN(month))\n\t\t\t\treturn;\n\t\t\tthis.picker.find('.datepicker-days .datepicker-switch')\n\t\t\t\t\t\t.text(DPGlobal.formatDate(d, titleFormat, this.o.language));\n\t\t\tthis.picker.find('tfoot .today')\n\t\t\t\t\t\t.text(todaytxt)\n .css('display', titleBtnVisible ? 'table-cell' : 'none');\n\t\t\tthis.picker.find('tfoot .clear')\n\t\t\t\t\t\t.text(cleartxt)\n\t\t\t\t\t\t.css('display', this.o.clearBtn === true ? 'table-cell' : 'none');\n\t\t\tthis.picker.find('thead .datepicker-title')\n\t\t\t\t\t\t.text(this.o.title)\n\t\t\t\t\t\t.css('display', typeof this.o.title === 'string' && this.o.title !== '' ? 'table-cell' : 'none');\n\t\t\tthis.updateNavArrows();\n\t\t\tthis.fillMonths();\n\t\t\tvar prevMonth = UTCDate(year, month, 0),\n\t\t\t\tday = prevMonth.getUTCDate();\n\t\t\tprevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.o.weekStart + 7)%7);\n\t\t\tvar nextMonth = new Date(prevMonth);\n\t\t\tif (prevMonth.getUTCFullYear() < 100){\n nextMonth.setUTCFullYear(prevMonth.getUTCFullYear());\n }\n\t\t\tnextMonth.setUTCDate(nextMonth.getUTCDate() + 42);\n\t\t\tnextMonth = nextMonth.valueOf();\n\t\t\tvar html = [];\n\t\t\tvar weekDay, clsName;\n\t\t\twhile (prevMonth.valueOf() < nextMonth){\n\t\t\t\tweekDay = prevMonth.getUTCDay();\n\t\t\t\tif (weekDay === this.o.weekStart){\n\t\t\t\t\thtml.push('');\n\t\t\t\t\tif (this.o.calendarWeeks){\n\t\t\t\t\t\t// ISO 8601: First week contains first thursday.\n\t\t\t\t\t\t// ISO also states week starts on Monday, but we can be more abstract here.\n\t\t\t\t\t\tvar\n\t\t\t\t\t\t\t// Start of current week: based on weekstart/current date\n\t\t\t\t\t\t\tws = new Date(+prevMonth + (this.o.weekStart - weekDay - 7) % 7 * 864e5),\n\t\t\t\t\t\t\t// Thursday of this week\n\t\t\t\t\t\t\tth = new Date(Number(ws) + (7 + 4 - ws.getUTCDay()) % 7 * 864e5),\n\t\t\t\t\t\t\t// First Thursday of year, year from thursday\n\t\t\t\t\t\t\tyth = new Date(Number(yth = UTCDate(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay()) % 7 * 864e5),\n\t\t\t\t\t\t\t// Calendar week: ms between thursdays, div ms per day, div 7 days\n\t\t\t\t\t\t\tcalWeek = (th - yth) / 864e5 / 7 + 1;\n\t\t\t\t\t\thtml.push(''+ calWeek +'');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tclsName = this.getClassNames(prevMonth);\n\t\t\t\tclsName.push('day');\n\n\t\t\t\tvar content = prevMonth.getUTCDate();\n\n\t\t\t\tif (this.o.beforeShowDay !== $.noop){\n\t\t\t\t\tbefore = this.o.beforeShowDay(this._utc_to_local(prevMonth));\n\t\t\t\t\tif (before === undefined)\n\t\t\t\t\t\tbefore = {};\n\t\t\t\t\telse if (typeof before === 'boolean')\n\t\t\t\t\t\tbefore = {enabled: before};\n\t\t\t\t\telse if (typeof before === 'string')\n\t\t\t\t\t\tbefore = {classes: before};\n\t\t\t\t\tif (before.enabled === false)\n\t\t\t\t\t\tclsName.push('disabled');\n\t\t\t\t\tif (before.classes)\n\t\t\t\t\t\tclsName = clsName.concat(before.classes.split(/\\s+/));\n\t\t\t\t\tif (before.tooltip)\n\t\t\t\t\t\ttooltip = before.tooltip;\n\t\t\t\t\tif (before.content)\n\t\t\t\t\t\tcontent = before.content;\n\t\t\t\t}\n\n\t\t\t\t//Check if uniqueSort exists (supported by jquery >=1.12 and >=2.2)\n\t\t\t\t//Fallback to unique function for older jquery versions\n\t\t\t\tif ($.isFunction($.uniqueSort)) {\n\t\t\t\t\tclsName = $.uniqueSort(clsName);\n\t\t\t\t} else {\n\t\t\t\t\tclsName = $.unique(clsName);\n\t\t\t\t}\n\n\t\t\t\thtml.push('' + content + '');\n\t\t\t\ttooltip = null;\n\t\t\t\tif (weekDay === this.o.weekEnd){\n\t\t\t\t\thtml.push('');\n\t\t\t\t}\n\t\t\t\tprevMonth.setUTCDate(prevMonth.getUTCDate() + 1);\n\t\t\t}\n\t\t\tthis.picker.find('.datepicker-days tbody').html(html.join(''));\n\n\t\t\tvar monthsTitle = dates[this.o.language].monthsTitle || dates['en'].monthsTitle || 'Months';\n\t\t\tvar months = this.picker.find('.datepicker-months')\n\t\t\t\t\t\t.find('.datepicker-switch')\n\t\t\t\t\t\t\t.text(this.o.maxViewMode < 2 ? monthsTitle : year)\n\t\t\t\t\t\t\t.end()\n\t\t\t\t\t\t.find('tbody span').removeClass('active');\n\n\t\t\t$.each(this.dates, function(i, d){\n\t\t\t\tif (d.getUTCFullYear() === year)\n\t\t\t\t\tmonths.eq(d.getUTCMonth()).addClass('active');\n\t\t\t});\n\n\t\t\tif (year < startYear || year > endYear){\n\t\t\t\tmonths.addClass('disabled');\n\t\t\t}\n\t\t\tif (year === startYear){\n\t\t\t\tmonths.slice(0, startMonth).addClass('disabled');\n\t\t\t}\n\t\t\tif (year === endYear){\n\t\t\t\tmonths.slice(endMonth+1).addClass('disabled');\n\t\t\t}\n\n\t\t\tif (this.o.beforeShowMonth !== $.noop){\n\t\t\t\tvar that = this;\n\t\t\t\t$.each(months, function(i, month){\n var moDate = new Date(year, i, 1);\n var before = that.o.beforeShowMonth(moDate);\n\t\t\t\t\tif (before === undefined)\n\t\t\t\t\t\tbefore = {};\n\t\t\t\t\telse if (typeof before === 'boolean')\n\t\t\t\t\t\tbefore = {enabled: before};\n\t\t\t\t\telse if (typeof before === 'string')\n\t\t\t\t\t\tbefore = {classes: before};\n\t\t\t\t\tif (before.enabled === false && !$(month).hasClass('disabled'))\n\t\t\t\t\t $(month).addClass('disabled');\n\t\t\t\t\tif (before.classes)\n\t\t\t\t\t $(month).addClass(before.classes);\n\t\t\t\t\tif (before.tooltip)\n\t\t\t\t\t $(month).prop('title', before.tooltip);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Generating decade/years picker\n\t\t\tthis._fill_yearsView(\n\t\t\t\t'.datepicker-years',\n\t\t\t\t'year',\n\t\t\t\t10,\n\t\t\t\tyear,\n\t\t\t\tstartYear,\n\t\t\t\tendYear,\n\t\t\t\tthis.o.beforeShowYear\n\t\t\t);\n\n\t\t\t// Generating century/decades picker\n\t\t\tthis._fill_yearsView(\n\t\t\t\t'.datepicker-decades',\n\t\t\t\t'decade',\n\t\t\t\t100,\n\t\t\t\tyear,\n\t\t\t\tstartYear,\n\t\t\t\tendYear,\n\t\t\t\tthis.o.beforeShowDecade\n\t\t\t);\n\n\t\t\t// Generating millennium/centuries picker\n\t\t\tthis._fill_yearsView(\n\t\t\t\t'.datepicker-centuries',\n\t\t\t\t'century',\n\t\t\t\t1000,\n\t\t\t\tyear,\n\t\t\t\tstartYear,\n\t\t\t\tendYear,\n\t\t\t\tthis.o.beforeShowCentury\n\t\t\t);\n\t\t},\n\n\t\tupdateNavArrows: function(){\n\t\t\tif (!this._allow_update)\n\t\t\t\treturn;\n\n\t\t\tvar d = new Date(this.viewDate),\n\t\t\t\tyear = d.getUTCFullYear(),\n\t\t\t\tmonth = d.getUTCMonth(),\n\t\t\t\tstartYear = this.o.startDate !== -Infinity ? this.o.startDate.getUTCFullYear() : -Infinity,\n\t\t\t\tstartMonth = this.o.startDate !== -Infinity ? this.o.startDate.getUTCMonth() : -Infinity,\n\t\t\t\tendYear = this.o.endDate !== Infinity ? this.o.endDate.getUTCFullYear() : Infinity,\n\t\t\t\tendMonth = this.o.endDate !== Infinity ? this.o.endDate.getUTCMonth() : Infinity,\n\t\t\t\tprevIsDisabled,\n\t\t\t\tnextIsDisabled,\n\t\t\t\tfactor = 1;\n\t\t\tswitch (this.viewMode){\n\t\t\t\tcase 4:\n\t\t\t\t\tfactor *= 10;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 3:\n\t\t\t\t\tfactor *= 10;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 2:\n\t\t\t\t\tfactor *= 10;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 1:\n\t\t\t\t\tprevIsDisabled = Math.floor(year / factor) * factor <= startYear;\n\t\t\t\t\tnextIsDisabled = Math.floor(year / factor) * factor + factor > endYear;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 0:\n\t\t\t\t\tprevIsDisabled = year <= startYear && month <= startMonth;\n\t\t\t\t\tnextIsDisabled = year >= endYear && month >= endMonth;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tthis.picker.find('.prev').toggleClass('disabled', prevIsDisabled);\n\t\t\tthis.picker.find('.next').toggleClass('disabled', nextIsDisabled);\n\t\t},\n\n\t\tclick: function(e){\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\n\t\t\tvar target, dir, day, year, month;\n\t\t\ttarget = $(e.target);\n\n\t\t\t// Clicked on the switch\n\t\t\tif (target.hasClass('datepicker-switch') && this.viewMode !== this.o.maxViewMode){\n\t\t\t\tthis.setViewMode(this.viewMode + 1);\n\t\t\t}\n\n\t\t\t// Clicked on today button\n\t\t\tif (target.hasClass('today') && !target.hasClass('day')){\n\t\t\t\tthis.setViewMode(0);\n\t\t\t\tthis._setDate(UTCToday(), this.o.todayBtn === 'linked' ? null : 'view');\n\t\t\t}\n\n\t\t\t// Clicked on clear button\n\t\t\tif (target.hasClass('clear')){\n\t\t\t\tthis.clearDates();\n\t\t\t}\n\n\t\t\tif (!target.hasClass('disabled')){\n\t\t\t\t// Clicked on a month, year, decade, century\n\t\t\t\tif (target.hasClass('month')\n\t\t\t\t\t\t|| target.hasClass('year')\n\t\t\t\t\t\t|| target.hasClass('decade')\n\t\t\t\t\t\t|| target.hasClass('century')) {\n\t\t\t\t\tthis.viewDate.setUTCDate(1);\n\n\t\t\t\t\tday = 1;\n\t\t\t\t\tif (this.viewMode === 1){\n\t\t\t\t\t\tmonth = target.parent().find('span').index(target);\n\t\t\t\t\t\tyear = this.viewDate.getUTCFullYear();\n\t\t\t\t\t\tthis.viewDate.setUTCMonth(month);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmonth = 0;\n\t\t\t\t\t\tyear = Number(target.text());\n\t\t\t\t\t\tthis.viewDate.setUTCFullYear(year);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._trigger(DPGlobal.viewModes[this.viewMode - 1].e, this.viewDate);\n\n\t\t\t\t\tif (this.viewMode === this.o.minViewMode){\n\t\t\t\t\t\tthis._setDate(UTCDate(year, month, day));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.setViewMode(this.viewMode - 1);\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.picker.is(':visible') && this._focused_from){\n\t\t\t\tthis._focused_from.focus();\n\t\t\t}\n\t\t\tdelete this._focused_from;\n\t\t},\n\n\t\tdayCellClick: function(e){\n\t\t\tvar $target = $(e.currentTarget);\n\t\t\tvar timestamp = $target.data('date');\n\t\t\tvar date = new Date(timestamp);\n\n\t\t\tif (this.o.updateViewDate) {\n\t\t\t\tif (date.getUTCFullYear() !== this.viewDate.getUTCFullYear()) {\n\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n\t\t\t\t}\n\n\t\t\t\tif (date.getUTCMonth() !== this.viewDate.getUTCMonth()) {\n\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._setDate(date);\n\t\t},\n\n\t\t// Clicked on prev or next\n\t\tnavArrowsClick: function(e){\n\t\t\tvar $target = $(e.currentTarget);\n\t\t\tvar dir = $target.hasClass('prev') ? -1 : 1;\n\t\t\tif (this.viewMode !== 0){\n\t\t\t\tdir *= DPGlobal.viewModes[this.viewMode].navStep * 12;\n\t\t\t}\n\t\t\tthis.viewDate = this.moveMonth(this.viewDate, dir);\n\t\t\tthis._trigger(DPGlobal.viewModes[this.viewMode].e, this.viewDate);\n\t\t\tthis.fill();\n\t\t},\n\n\t\t_toggle_multidate: function(date){\n\t\t\tvar ix = this.dates.contains(date);\n\t\t\tif (!date){\n\t\t\t\tthis.dates.clear();\n\t\t\t}\n\n\t\t\tif (ix !== -1){\n\t\t\t\tif (this.o.multidate === true || this.o.multidate > 1 || this.o.toggleActive){\n\t\t\t\t\tthis.dates.remove(ix);\n\t\t\t\t}\n\t\t\t} else if (this.o.multidate === false) {\n\t\t\t\tthis.dates.clear();\n\t\t\t\tthis.dates.push(date);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.dates.push(date);\n\t\t\t}\n\n\t\t\tif (typeof this.o.multidate === 'number')\n\t\t\t\twhile (this.dates.length > this.o.multidate)\n\t\t\t\t\tthis.dates.remove(0);\n\t\t},\n\n\t\t_setDate: function(date, which){\n\t\t\tif (!which || which === 'date')\n\t\t\t\tthis._toggle_multidate(date && new Date(date));\n\t\t\tif ((!which && this.o.updateViewDate) || which === 'view')\n\t\t\t\tthis.viewDate = date && new Date(date);\n\n\t\t\tthis.fill();\n\t\t\tthis.setValue();\n\t\t\tif (!which || which !== 'view') {\n\t\t\t\tthis._trigger('changeDate');\n\t\t\t}\n\t\t\tthis.inputField.trigger('change');\n\t\t\tif (this.o.autoclose && (!which || which === 'date')){\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t},\n\n\t\tmoveDay: function(date, dir){\n\t\t\tvar newDate = new Date(date);\n\t\t\tnewDate.setUTCDate(date.getUTCDate() + dir);\n\n\t\t\treturn newDate;\n\t\t},\n\n\t\tmoveWeek: function(date, dir){\n\t\t\treturn this.moveDay(date, dir * 7);\n\t\t},\n\n\t\tmoveMonth: function(date, dir){\n\t\t\tif (!isValidDate(date))\n\t\t\t\treturn this.o.defaultViewDate;\n\t\t\tif (!dir)\n\t\t\t\treturn date;\n\t\t\tvar new_date = new Date(date.valueOf()),\n\t\t\t\tday = new_date.getUTCDate(),\n\t\t\t\tmonth = new_date.getUTCMonth(),\n\t\t\t\tmag = Math.abs(dir),\n\t\t\t\tnew_month, test;\n\t\t\tdir = dir > 0 ? 1 : -1;\n\t\t\tif (mag === 1){\n\t\t\t\ttest = dir === -1\n\t\t\t\t\t// If going back one month, make sure month is not current month\n\t\t\t\t\t// (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02)\n\t\t\t\t\t? function(){\n\t\t\t\t\t\treturn new_date.getUTCMonth() === month;\n\t\t\t\t\t}\n\t\t\t\t\t// If going forward one month, make sure month is as expected\n\t\t\t\t\t// (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02)\n\t\t\t\t\t: function(){\n\t\t\t\t\t\treturn new_date.getUTCMonth() !== new_month;\n\t\t\t\t\t};\n\t\t\t\tnew_month = month + dir;\n\t\t\t\tnew_date.setUTCMonth(new_month);\n\t\t\t\t// Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11\n\t\t\t\tnew_month = (new_month + 12) % 12;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// For magnitudes >1, move one month at a time...\n\t\t\t\tfor (var i=0; i < mag; i++)\n\t\t\t\t\t// ...which might decrease the day (eg, Jan 31 to Feb 28, etc)...\n\t\t\t\t\tnew_date = this.moveMonth(new_date, dir);\n\t\t\t\t// ...then reset the day, keeping it in the new month\n\t\t\t\tnew_month = new_date.getUTCMonth();\n\t\t\t\tnew_date.setUTCDate(day);\n\t\t\t\ttest = function(){\n\t\t\t\t\treturn new_month !== new_date.getUTCMonth();\n\t\t\t\t};\n\t\t\t}\n\t\t\t// Common date-resetting loop -- if date is beyond end of month, make it\n\t\t\t// end of month\n\t\t\twhile (test()){\n\t\t\t\tnew_date.setUTCDate(--day);\n\t\t\t\tnew_date.setUTCMonth(new_month);\n\t\t\t}\n\t\t\treturn new_date;\n\t\t},\n\n\t\tmoveYear: function(date, dir){\n\t\t\treturn this.moveMonth(date, dir*12);\n\t\t},\n\n\t\tmoveAvailableDate: function(date, dir, fn){\n\t\t\tdo {\n\t\t\t\tdate = this[fn](date, dir);\n\n\t\t\t\tif (!this.dateWithinRange(date))\n\t\t\t\t\treturn false;\n\n\t\t\t\tfn = 'moveDay';\n\t\t\t}\n\t\t\twhile (this.dateIsDisabled(date));\n\n\t\t\treturn date;\n\t\t},\n\n\t\tweekOfDateIsDisabled: function(date){\n\t\t\treturn $.inArray(date.getUTCDay(), this.o.daysOfWeekDisabled) !== -1;\n\t\t},\n\n\t\tdateIsDisabled: function(date){\n\t\t\treturn (\n\t\t\t\tthis.weekOfDateIsDisabled(date) ||\n\t\t\t\t$.grep(this.o.datesDisabled, function(d){\n\t\t\t\t\treturn isUTCEquals(date, d);\n\t\t\t\t}).length > 0\n\t\t\t);\n\t\t},\n\n\t\tdateWithinRange: function(date){\n\t\t\treturn date >= this.o.startDate && date <= this.o.endDate;\n\t\t},\n\n\t\tkeydown: function(e){\n\t\t\tif (!this.picker.is(':visible')){\n\t\t\t\tif (e.keyCode === 40 || e.keyCode === 27) { // allow down to re-show picker\n\t\t\t\t\tthis.show();\n\t\t\t\t\te.stopPropagation();\n }\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar dateChanged = false,\n\t\t\t\tdir, newViewDate,\n\t\t\t\tfocusDate = this.focusDate || this.viewDate;\n\t\t\tswitch (e.keyCode){\n\t\t\t\tcase 27: // escape\n\t\t\t\t\tif (this.focusDate){\n\t\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t\tthis.hide();\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tbreak;\n\t\t\t\tcase 37: // left\n\t\t\t\tcase 38: // up\n\t\t\t\tcase 39: // right\n\t\t\t\tcase 40: // down\n\t\t\t\t\tif (!this.o.keyboardNavigation || this.o.daysOfWeekDisabled.length === 7)\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdir = e.keyCode === 37 || e.keyCode === 38 ? -1 : 1;\n if (this.viewMode === 0) {\n \t\t\t\t\tif (e.ctrlKey){\n \t\t\t\t\t\tnewViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear');\n\n \t\t\t\t\t\tif (newViewDate)\n \t\t\t\t\t\t\tthis._trigger('changeYear', this.viewDate);\n \t\t\t\t\t} else if (e.shiftKey){\n \t\t\t\t\t\tnewViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth');\n\n \t\t\t\t\t\tif (newViewDate)\n \t\t\t\t\t\t\tthis._trigger('changeMonth', this.viewDate);\n \t\t\t\t\t} else if (e.keyCode === 37 || e.keyCode === 39){\n \t\t\t\t\t\tnewViewDate = this.moveAvailableDate(focusDate, dir, 'moveDay');\n \t\t\t\t\t} else if (!this.weekOfDateIsDisabled(focusDate)){\n \t\t\t\t\t\tnewViewDate = this.moveAvailableDate(focusDate, dir, 'moveWeek');\n \t\t\t\t\t}\n } else if (this.viewMode === 1) {\n if (e.keyCode === 38 || e.keyCode === 40) {\n dir = dir * 4;\n }\n newViewDate = this.moveAvailableDate(focusDate, dir, 'moveMonth');\n } else if (this.viewMode === 2) {\n if (e.keyCode === 38 || e.keyCode === 40) {\n dir = dir * 4;\n }\n newViewDate = this.moveAvailableDate(focusDate, dir, 'moveYear');\n }\n\t\t\t\t\tif (newViewDate){\n\t\t\t\t\t\tthis.focusDate = this.viewDate = newViewDate;\n\t\t\t\t\t\tthis.setValue();\n\t\t\t\t\t\tthis.fill();\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 13: // enter\n\t\t\t\t\tif (!this.o.forceParse)\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tfocusDate = this.focusDate || this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tif (this.o.keyboardNavigation) {\n\t\t\t\t\t\tthis._toggle_multidate(focusDate);\n\t\t\t\t\t\tdateChanged = true;\n\t\t\t\t\t}\n\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tthis.setValue();\n\t\t\t\t\tthis.fill();\n\t\t\t\t\tif (this.picker.is(':visible')){\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\tif (this.o.autoclose)\n\t\t\t\t\t\t\tthis.hide();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 9: // tab\n\t\t\t\t\tthis.focusDate = null;\n\t\t\t\t\tthis.viewDate = this.dates.get(-1) || this.viewDate;\n\t\t\t\t\tthis.fill();\n\t\t\t\t\tthis.hide();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (dateChanged){\n\t\t\t\tif (this.dates.length)\n\t\t\t\t\tthis._trigger('changeDate');\n\t\t\t\telse\n\t\t\t\t\tthis._trigger('clearDate');\n\t\t\t\tthis.inputField.trigger('change');\n\t\t\t}\n\t\t},\n\n\t\tsetViewMode: function(viewMode){\n\t\t\tthis.viewMode = viewMode;\n\t\t\tthis.picker\n\t\t\t\t.children('div')\n\t\t\t\t.hide()\n\t\t\t\t.filter('.datepicker-' + DPGlobal.viewModes[this.viewMode].clsName)\n\t\t\t\t\t.show();\n\t\t\tthis.updateNavArrows();\n this._trigger('changeViewMode', new Date(this.viewDate));\n\t\t}\n\t};\n\n\tvar DateRangePicker = function(element, options){\n\t\t$.data(element, 'datepicker', this);\n\t\tthis.element = $(element);\n\t\tthis.inputs = $.map(options.inputs, function(i){\n\t\t\treturn i.jquery ? i[0] : i;\n\t\t});\n\t\tdelete options.inputs;\n\n\t\tthis.keepEmptyValues = options.keepEmptyValues;\n\t\tdelete options.keepEmptyValues;\n\n\t\tdatepickerPlugin.call($(this.inputs), options)\n\t\t\t.on('changeDate', $.proxy(this.dateUpdated, this));\n\n\t\tthis.pickers = $.map(this.inputs, function(i){\n\t\t\treturn $.data(i, 'datepicker');\n\t\t});\n\t\tthis.updateDates();\n\t};\n\tDateRangePicker.prototype = {\n\t\tupdateDates: function(){\n\t\t\tthis.dates = $.map(this.pickers, function(i){\n\t\t\t\treturn i.getUTCDate();\n\t\t\t});\n\t\t\tthis.updateRanges();\n\t\t},\n\t\tupdateRanges: function(){\n\t\t\tvar range = $.map(this.dates, function(d){\n\t\t\t\treturn d.valueOf();\n\t\t\t});\n\t\t\t$.each(this.pickers, function(i, p){\n\t\t\t\tp.setRange(range);\n\t\t\t});\n\t\t},\n\t\tclearDates: function(){\n\t\t\t$.each(this.pickers, function(i, p){\n\t\t\t\tp.clearDates();\n\t\t\t});\n\t\t},\n\t\tdateUpdated: function(e){\n\t\t\t// `this.updating` is a workaround for preventing infinite recursion\n\t\t\t// between `changeDate` triggering and `setUTCDate` calling. Until\n\t\t\t// there is a better mechanism.\n\t\t\tif (this.updating)\n\t\t\t\treturn;\n\t\t\tthis.updating = true;\n\n\t\t\tvar dp = $.data(e.target, 'datepicker');\n\n\t\t\tif (dp === undefined) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar new_date = dp.getUTCDate(),\n\t\t\t\tkeep_empty_values = this.keepEmptyValues,\n\t\t\t\ti = $.inArray(e.target, this.inputs),\n\t\t\t\tj = i - 1,\n\t\t\t\tk = i + 1,\n\t\t\t\tl = this.inputs.length;\n\t\t\tif (i === -1)\n\t\t\t\treturn;\n\n\t\t\t$.each(this.pickers, function(i, p){\n\t\t\t\tif (!p.getUTCDate() && (p === dp || !keep_empty_values))\n\t\t\t\t\tp.setUTCDate(new_date);\n\t\t\t});\n\n\t\t\tif (new_date < this.dates[j]){\n\t\t\t\t// Date being moved earlier/left\n\t\t\t\twhile (j >= 0 && new_date < this.dates[j]){\n\t\t\t\t\tthis.pickers[j--].setUTCDate(new_date);\n\t\t\t\t}\n\t\t\t} else if (new_date > this.dates[k]){\n\t\t\t\t// Date being moved later/right\n\t\t\t\twhile (k < l && new_date > this.dates[k]){\n\t\t\t\t\tthis.pickers[k++].setUTCDate(new_date);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.updateDates();\n\n\t\t\tdelete this.updating;\n\t\t},\n\t\tdestroy: function(){\n\t\t\t$.map(this.pickers, function(p){ p.destroy(); });\n\t\t\t$(this.inputs).off('changeDate', this.dateUpdated);\n\t\t\tdelete this.element.data().datepicker;\n\t\t},\n\t\tremove: alias('destroy', 'Method `remove` is deprecated and will be removed in version 2.0. Use `destroy` instead')\n\t};\n\n\tfunction opts_from_el(el, prefix){\n\t\t// Derive options from element data-attrs\n\t\tvar data = $(el).data(),\n\t\t\tout = {}, inkey,\n\t\t\treplace = new RegExp('^' + prefix.toLowerCase() + '([A-Z])');\n\t\tprefix = new RegExp('^' + prefix.toLowerCase());\n\t\tfunction re_lower(_,a){\n\t\t\treturn a.toLowerCase();\n\t\t}\n\t\tfor (var key in data)\n\t\t\tif (prefix.test(key)){\n\t\t\t\tinkey = key.replace(replace, re_lower);\n\t\t\t\tout[inkey] = data[key];\n\t\t\t}\n\t\treturn out;\n\t}\n\n\tfunction opts_from_locale(lang){\n\t\t// Derive options from locale plugins\n\t\tvar out = {};\n\t\t// Check if \"de-DE\" style date is available, if not language should\n\t\t// fallback to 2 letter code eg \"de\"\n\t\tif (!dates[lang]){\n\t\t\tlang = lang.split('-')[0];\n\t\t\tif (!dates[lang])\n\t\t\t\treturn;\n\t\t}\n\t\tvar d = dates[lang];\n\t\t$.each(locale_opts, function(i,k){\n\t\t\tif (k in d)\n\t\t\t\tout[k] = d[k];\n\t\t});\n\t\treturn out;\n\t}\n\n\tvar old = $.fn.datepicker;\n\tvar datepickerPlugin = function(option){\n\t\tvar args = Array.apply(null, arguments);\n\t\targs.shift();\n\t\tvar internal_return;\n\t\tthis.each(function(){\n\t\t\tvar $this = $(this),\n\t\t\t\tdata = $this.data('datepicker'),\n\t\t\t\toptions = typeof option === 'object' && option;\n\t\t\tif (!data){\n\t\t\t\tvar elopts = opts_from_el(this, 'date'),\n\t\t\t\t\t// Preliminary otions\n\t\t\t\t\txopts = $.extend({}, defaults, elopts, options),\n\t\t\t\t\tlocopts = opts_from_locale(xopts.language),\n\t\t\t\t\t// Options priority: js args, data-attrs, locales, defaults\n\t\t\t\t\topts = $.extend({}, defaults, locopts, elopts, options);\n\t\t\t\tif ($this.hasClass('input-daterange') || opts.inputs){\n\t\t\t\t\t$.extend(opts, {\n\t\t\t\t\t\tinputs: opts.inputs || $this.find('input').toArray()\n\t\t\t\t\t});\n\t\t\t\t\tdata = new DateRangePicker(this, opts);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdata = new Datepicker(this, opts);\n\t\t\t\t}\n\t\t\t\t$this.data('datepicker', data);\n\t\t\t}\n\t\t\tif (typeof option === 'string' && typeof data[option] === 'function'){\n\t\t\t\tinternal_return = data[option].apply(data, args);\n\t\t\t}\n\t\t});\n\n\t\tif (\n\t\t\tinternal_return === undefined ||\n\t\t\tinternal_return instanceof Datepicker ||\n\t\t\tinternal_return instanceof DateRangePicker\n\t\t)\n\t\t\treturn this;\n\n\t\tif (this.length > 1)\n\t\t\tthrow new Error('Using only allowed for the collection of a single element (' + option + ' function)');\n\t\telse\n\t\t\treturn internal_return;\n\t};\n\t$.fn.datepicker = datepickerPlugin;\n\n\tvar defaults = $.fn.datepicker.defaults = {\n\t\tassumeNearbyYear: false,\n\t\tautoclose: false,\n\t\tbeforeShowDay: $.noop,\n\t\tbeforeShowMonth: $.noop,\n\t\tbeforeShowYear: $.noop,\n\t\tbeforeShowDecade: $.noop,\n\t\tbeforeShowCentury: $.noop,\n\t\tcalendarWeeks: false,\n\t\tclearBtn: false,\n\t\ttoggleActive: false,\n\t\tdaysOfWeekDisabled: [],\n\t\tdaysOfWeekHighlighted: [],\n\t\tdatesDisabled: [],\n\t\tendDate: Infinity,\n\t\tforceParse: true,\n\t\tformat: 'mm/dd/yyyy',\n\t\tkeepEmptyValues: false,\n\t\tkeyboardNavigation: true,\n\t\tlanguage: 'en',\n\t\tminViewMode: 0,\n\t\tmaxViewMode: 4,\n\t\tmultidate: false,\n\t\tmultidateSeparator: ',',\n\t\torientation: \"auto\",\n\t\trtl: false,\n\t\tstartDate: -Infinity,\n\t\tstartView: 0,\n\t\ttodayBtn: false,\n\t\ttodayHighlight: false,\n\t\tupdateViewDate: true,\n\t\tweekStart: 0,\n\t\tdisableTouchKeyboard: false,\n\t\tenableOnReadonly: true,\n\t\tshowOnFocus: true,\n\t\tzIndexOffset: 10,\n\t\tcontainer: 'body',\n\t\timmediateUpdates: false,\n\t\ttitle: '',\n\t\ttemplates: {\n\t\t\tleftArrow: '«',\n\t\t\trightArrow: '»'\n\t\t},\n showWeekDays: true\n\t};\n\tvar locale_opts = $.fn.datepicker.locale_opts = [\n\t\t'format',\n\t\t'rtl',\n\t\t'weekStart'\n\t];\n\t$.fn.datepicker.Constructor = Datepicker;\n\tvar dates = $.fn.datepicker.dates = {\n\t\ten: {\n\t\t\tdays: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n\t\t\tdaysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n\t\t\tdaysMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n\t\t\tmonths: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n\t\t\tmonthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n\t\t\ttoday: \"Today\",\n\t\t\tclear: \"Clear\",\n\t\t\ttitleFormat: \"MM yyyy\"\n\t\t},\n\t\tru: {\n\t\t\tdays: [\"ВоÑкреÑенье\", \"Понедельник\", \"Вторник\", \"Среда\", \"Четверг\", \"ПÑтница\", \"Суббота\"],\n\t\t\tdaysShort: [\"Ð’Ñк\", \"Пнд\", \"Ð’Ñ‚Ñ€\", \"Срд\", \"Чтв\", \"Птн\", \"Суб\"],\n\t\t\tdaysMin: [\"Ð’Ñ\", \"Пн\", \"Ð’Ñ‚\", \"Ср\", \"Чт\", \"Пт\", \"Сб\"],\n\t\t\tmonths: [\"Январь\", \"Февраль\", \"Март\", \"Ðпрель\", \"Май\", \"Июнь\", \"Июль\", \"ÐвгуÑÑ‚\", \"СентÑбрь\", \"ОктÑбрь\", \"ÐоÑбрь\", \"Декабрь\"],\n\t\t\tmonthsShort: [\"Янв\", \"Фев\", \"Мар\", \"Ðпр\", \"Май\", \"Июн\", \"Июл\", \"Ðвг\", \"Сен\", \"Окт\", \"ÐоÑ\", \"Дек\"],\n\t\t\ttoday: \"СегоднÑ\",\n\t\t\tclear: \"ОчиÑтить\",\n\t\t\tformat: \"dd.mm.yyyy\",\n\t\t\tweekStart: 1,\n\t\t\tmonthsTitle: \"МеÑÑцы\"\n\t\t},\n\t};\n\n\tvar DPGlobal = {\n\t\tviewModes: [\n\t\t\t{\n\t\t\t\tnames: ['days', 'month'],\n\t\t\t\tclsName: 'days',\n\t\t\t\te: 'changeMonth'\n\t\t\t},\n\t\t\t{\n\t\t\t\tnames: ['months', 'year'],\n\t\t\t\tclsName: 'months',\n\t\t\t\te: 'changeYear',\n\t\t\t\tnavStep: 1\n\t\t\t},\n\t\t\t{\n\t\t\t\tnames: ['years', 'decade'],\n\t\t\t\tclsName: 'years',\n\t\t\t\te: 'changeDecade',\n\t\t\t\tnavStep: 10\n\t\t\t},\n\t\t\t{\n\t\t\t\tnames: ['decades', 'century'],\n\t\t\t\tclsName: 'decades',\n\t\t\t\te: 'changeCentury',\n\t\t\t\tnavStep: 100\n\t\t\t},\n\t\t\t{\n\t\t\t\tnames: ['centuries', 'millennium'],\n\t\t\t\tclsName: 'centuries',\n\t\t\t\te: 'changeMillennium',\n\t\t\t\tnavStep: 1000\n\t\t\t}\n\t\t],\n\t\tvalidParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,\n\t\tnonpunctuation: /[^ -\\/:-@\\u5e74\\u6708\\u65e5\\[-`{-~\\t\\n\\r]+/g,\n\t\tparseFormat: function(format){\n\t\t\tif (typeof format.toValue === 'function' && typeof format.toDisplay === 'function')\n return format;\n // IE treats \\0 as a string end in inputs (truncating the value),\n\t\t\t// so it's a bad format delimiter, anyway\n\t\t\tvar separators = format.replace(this.validParts, '\\0').split('\\0'),\n\t\t\t\tparts = format.match(this.validParts);\n\t\t\tif (!separators || !separators.length || !parts || parts.length === 0){\n\t\t\t\tthrow new Error(\"Invalid date format.\");\n\t\t\t}\n\t\t\treturn {separators: separators, parts: parts};\n\t\t},\n\t\tparseDate: function(date, format, language, assumeNearby){\n\t\t\tif (!date)\n\t\t\t\treturn undefined;\n\t\t\tif (date instanceof Date)\n\t\t\t\treturn date;\n\t\t\tif (typeof format === 'string')\n\t\t\t\tformat = DPGlobal.parseFormat(format);\n\t\t\tif (format.toValue)\n\t\t\t\treturn format.toValue(date, format, language);\n\t\t\tvar fn_map = {\n\t\t\t\t\td: 'moveDay',\n\t\t\t\t\tm: 'moveMonth',\n\t\t\t\t\tw: 'moveWeek',\n\t\t\t\t\ty: 'moveYear'\n\t\t\t\t},\n\t\t\t\tdateAliases = {\n\t\t\t\t\tyesterday: '-1d',\n\t\t\t\t\ttoday: '+0d',\n\t\t\t\t\ttomorrow: '+1d'\n\t\t\t\t},\n\t\t\t\tparts, part, dir, i, fn;\n\t\t\tif (date in dateAliases){\n\t\t\t\tdate = dateAliases[date];\n\t\t\t}\n\t\t\tif (/^[\\-+]\\d+[dmwy]([\\s,]+[\\-+]\\d+[dmwy])*$/i.test(date)){\n\t\t\t\tparts = date.match(/([\\-+]\\d+)([dmwy])/gi);\n\t\t\t\tdate = new Date();\n\t\t\t\tfor (i=0; i < parts.length; i++){\n\t\t\t\t\tpart = parts[i].match(/([\\-+]\\d+)([dmwy])/i);\n\t\t\t\t\tdir = Number(part[1]);\n\t\t\t\t\tfn = fn_map[part[2].toLowerCase()];\n\t\t\t\t\tdate = Datepicker.prototype[fn](date, dir);\n\t\t\t\t}\n\t\t\t\treturn Datepicker.prototype._zero_utc_time(date);\n\t\t\t}\n\n\t\t\tparts = date && date.match(this.nonpunctuation) || [];\n\n\t\t\tfunction applyNearbyYear(year, threshold){\n\t\t\t\tif (threshold === true)\n\t\t\t\t\tthreshold = 10;\n\n\t\t\t\t// if year is 2 digits or less, than the user most likely is trying to get a recent century\n\t\t\t\tif (year < 100){\n\t\t\t\t\tyear += 2000;\n\t\t\t\t\t// if the new year is more than threshold years in advance, use last century\n\t\t\t\t\tif (year > ((new Date()).getFullYear()+threshold)){\n\t\t\t\t\t\tyear -= 100;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn year;\n\t\t\t}\n\n\t\t\tvar parsed = {},\n\t\t\t\tsetters_order = ['yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'd', 'dd'],\n\t\t\t\tsetters_map = {\n\t\t\t\t\tyyyy: function(d,v){\n\t\t\t\t\t\treturn d.setUTCFullYear(assumeNearby ? applyNearbyYear(v, assumeNearby) : v);\n\t\t\t\t\t},\n\t\t\t\t\tm: function(d,v){\n\t\t\t\t\t\tif (isNaN(d))\n\t\t\t\t\t\t\treturn d;\n\t\t\t\t\t\tv -= 1;\n\t\t\t\t\t\twhile (v < 0) v += 12;\n\t\t\t\t\t\tv %= 12;\n\t\t\t\t\t\td.setUTCMonth(v);\n\t\t\t\t\t\twhile (d.getUTCMonth() !== v)\n\t\t\t\t\t\t\td.setUTCDate(d.getUTCDate()-1);\n\t\t\t\t\t\treturn d;\n\t\t\t\t\t},\n\t\t\t\t\td: function(d,v){\n\t\t\t\t\t\treturn d.setUTCDate(v);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tval, filtered;\n\t\t\tsetters_map['yy'] = setters_map['yyyy'];\n\t\t\tsetters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m'];\n\t\t\tsetters_map['dd'] = setters_map['d'];\n\t\t\tdate = UTCToday();\n\t\t\tvar fparts = format.parts.slice();\n\t\t\t// Remove noop parts\n\t\t\tif (parts.length !== fparts.length){\n\t\t\t\tfparts = $(fparts).filter(function(i,p){\n\t\t\t\t\treturn $.inArray(p, setters_order) !== -1;\n\t\t\t\t}).toArray();\n\t\t\t}\n\t\t\t// Process remainder\n\t\t\tfunction match_part(){\n\t\t\t\tvar m = this.slice(0, parts[i].length),\n\t\t\t\t\tp = parts[i].slice(0, m.length);\n\t\t\t\treturn m.toLowerCase() === p.toLowerCase();\n\t\t\t}\n\t\t\tif (parts.length === fparts.length){\n\t\t\t\tvar cnt;\n\t\t\t\tfor (i=0, cnt = fparts.length; i < cnt; i++){\n\t\t\t\t\tval = parseInt(parts[i], 10);\n\t\t\t\t\tpart = fparts[i];\n\t\t\t\t\tif (isNaN(val)){\n\t\t\t\t\t\tswitch (part){\n\t\t\t\t\t\t\tcase 'MM':\n\t\t\t\t\t\t\t\tfiltered = $(dates[language].months).filter(match_part);\n\t\t\t\t\t\t\t\tval = $.inArray(filtered[0], dates[language].months) + 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\tcase 'M':\n\t\t\t\t\t\t\t\tfiltered = $(dates[language].monthsShort).filter(match_part);\n\t\t\t\t\t\t\t\tval = $.inArray(filtered[0], dates[language].monthsShort) + 1;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tparsed[part] = val;\n\t\t\t\t}\n\t\t\t\tvar _date, s;\n\t\t\t\tfor (i=0; i < setters_order.length; i++){\n\t\t\t\t\ts = setters_order[i];\n\t\t\t\t\tif (s in parsed && !isNaN(parsed[s])){\n\t\t\t\t\t\t_date = new Date(date);\n\t\t\t\t\t\tsetters_map[s](_date, parsed[s]);\n\t\t\t\t\t\tif (!isNaN(_date))\n\t\t\t\t\t\t\tdate = _date;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn date;\n\t\t},\n\t\tformatDate: function(date, format, language){\n\t\t\tif (!date)\n\t\t\t\treturn '';\n\t\t\tif (typeof format === 'string')\n\t\t\t\tformat = DPGlobal.parseFormat(format);\n\t\t\tif (format.toDisplay)\n return format.toDisplay(date, format, language);\n var val = {\n\t\t\t\td: date.getUTCDate(),\n\t\t\t\tD: dates[language].daysShort[date.getUTCDay()],\n\t\t\t\tDD: dates[language].days[date.getUTCDay()],\n\t\t\t\tm: date.getUTCMonth() + 1,\n\t\t\t\tM: dates[language].monthsShort[date.getUTCMonth()],\n\t\t\t\tMM: dates[language].months[date.getUTCMonth()],\n\t\t\t\tyy: date.getUTCFullYear().toString().substring(2),\n\t\t\t\tyyyy: date.getUTCFullYear()\n\t\t\t};\n\t\t\tval.dd = (val.d < 10 ? '0' : '') + val.d;\n\t\t\tval.mm = (val.m < 10 ? '0' : '') + val.m;\n\t\t\tdate = [];\n\t\t\tvar seps = $.extend([], format.separators);\n\t\t\tfor (var i=0, cnt = format.parts.length; i <= cnt; i++){\n\t\t\t\tif (seps.length)\n\t\t\t\t\tdate.push(seps.shift());\n\t\t\t\tdate.push(val[format.parts[i]]);\n\t\t\t}\n\t\t\treturn date.join('');\n\t\t},\n\t\theadTemplate: ''+\n\t\t\t ''+\n\t\t\t ''+\n\t\t\t ''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t''+defaults.templates.leftArrow+''+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t''+defaults.templates.rightArrow+''+\n\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t'',\n\t\tcontTemplate: '',\n\t\tfootTemplate: ''+\n\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\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\t\t\t\t\t''\n\t};\n\tDPGlobal.template = '
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t\t''+\n\t\t\t\t\t\t\t\t\tDPGlobal.headTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.contTemplate+\n\t\t\t\t\t\t\t\t\tDPGlobal.footTemplate+\n\t\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t\t'
'+\n\t\t\t\t\t\t'
';\n\n\t$.fn.datepicker.DPGlobal = DPGlobal;\n\n\n\t/* DATEPICKER NO CONFLICT\n\t* =================== */\n\n\t$.fn.datepicker.noConflict = function(){\n\t\t$.fn.datepicker = old;\n\t\treturn this;\n\t};\n\n\t/* DATEPICKER VERSION\n\t * =================== */\n\t$.fn.datepicker.version = '1.9.0';\n\n\t$.fn.datepicker.deprecated = function(msg){\n\t\tvar console = window.console;\n\t\tif (console && console.warn) {\n\t\t\tconsole.warn('DEPRECATED: ' + msg);\n\t\t}\n\t};\n\n\n\t/* DATEPICKER DATA-API\n\t* ================== */\n\n\t$(document).on(\n\t\t'focus.datepicker.data-api click.datepicker.data-api',\n\t\t'[data-provide=\"datepicker\"]',\n\t\tfunction(e){\n\t\t\tvar $this = $(this);\n\t\t\tif ($this.data('datepicker'))\n\t\t\t\treturn;\n\t\t\te.preventDefault();\n\t\t\t// component click requires us to explicitly show it\n\t\t\tdatepickerPlugin.call($this, 'show');\n\t\t}\n\t);\n\t$(function(){\n\t\tdatepickerPlugin.call($('[data-provide=\"datepicker-inline\"]'));\n\t});\n\n}));\n","export const templateList = (data) =>\n `
\n ${data.name}\n
`;\n","export const templateListItem = (data) =>\n `
\n
\n
\n
\n
\n
Дата
\n
\n
\n
\n
\n
ВремÑ
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
`;\n","import {config} from 'core/config';\nimport * as jQuery from 'jquery';\nwindow.$ = jQuery;\nimport {spinner} from 'modules/spinner';\nimport {templateListItem} from './templateListItem';\nimport {datepicker} from './datepicker/bootstrap-datepicker';\n// import './datepicker/bootstrap-datepicker.ru.min.js';\n\nlet selectDateSto;\n\nexport const fitMapList = {\n config: {\n 'list': '.fitMap__list',\n 'listItem': '.fitMap__list-item',\n 'listItemInner': '.fitMap__list-item-inner',\n 'listItemActive': 'fitMap__list-item--active',\n 'formGroupTime': '.js-form-group-time',\n 'formGroupMark': '.js-form-group-mark',\n 'formGroupModel': '.js-form-group-model',\n },\n init: function(html) {\n // $(fitMapList.config.list).html(html);\n $(fitMapList.config.list).html(`\n
\n
Когда нужен шиномонтаж?
\n
\n
Где Ñделать шиномонтаж?
\n
\n
\n ${html}\n
\n
\n
\n
Ðа какое Ð²Ñ€ÐµÐ¼Ñ Ð’Ð°Ñ Ð·Ð°Ð¿Ð¸Ñать?
\n
\n
\n
\n `);\n this.bindEvents();\n fitMapList.initCalendar($('#address').find(':selected').val());\n $('.fitMap__address').text($('#address').find(':selected').attr('data-fitmapaddress'));\n const amount = $('.fitMapSelect #address').find('option:selected').attr('data-fitMapAmount');\n $('.fitMap__amount').html(amount + ' ₽');\n },\n bindEvents: function() {\n $(document).on('click', '.js-fitMapItem', function() {\n $(fitMapList.config.listItem).removeClass(fitMapList.config.listItemActive);\n $(fitMapList.config.listItemInner).remove();\n $(this).parents(fitMapList.config.listItem).addClass(fitMapList.config.listItemActive);\n const pointId = $(this).parents(fitMapList.config.listItem).attr('data-fitmapid');\n fitMapList.appendForm(pointId);\n });\n\n $(document).on('change', 'select#address', function() {\n const id = $(this).find(':selected').val();\n const address = $(this).find(':selected').attr('data-fitmapaddress');\n const amount = $('.fitMapSelect #address').find('option:selected').attr('data-fitMapAmount');\n // fitMapList.initCalendar(id);\n $('.fitMap__address').text(address);\n $('.fitMap__amount').html(amount + ' ₽');\n\n const selectedVal = selectDateSto;\n spinner.show($('.fitMap__time'));\n const selectedId = $('#address').find(':selected').attr('data-fitmapid');\n const timeBlock = $('.fitMap__time');\n $.when(config.doRequest('/orders/stotimeslist/', {'id': selectedId, 'date': selectedVal, 'needDelivery': 'false'})).done(function(answer) {\n timeBlock.html('');\n // ToDo: допилить, Ñ‚.к. апи пока выдает неадкватный ответ. Добавить проверку на еÑÑ‚ÑŒ Ñвободные чаÑÑ‹ в Ñтом дне или нет.\n $.each(answer.scheduleItems[0].availableTime, function() {\n timeBlock.append(`\n
\n
${this}
\n
`);\n });\n spinner.hide($('.fitMap__time'));\n });\n });\n\n $(document).on('change', 'select#date', function() {\n const selectedVal = $(this).find(':selected').val();\n if (!selectedVal || selectedVal === 'Дата') return;\n spinner.show($(this).parents(fitMapList.config.listItem));\n const selectedId = $(this).parents('.fitMap__list-item').attr('data-fitmapid');\n const dropdown = $('select#time');\n $.when(config.doRequest('/orders/stotimeslist/', {'id': selectedId, 'date': selectedVal, 'needDelivery': 'false'})).done(function(answer) {\n dropdown.prop('disabled', false);\n dropdown.find('option:not(:first)').remove();\n let counter = 1;\n // ToDo: допилить, Ñ‚.к. апи пока выдает неадкватный ответ. Добавить проверку на еÑÑ‚ÑŒ Ñвободные чаÑÑ‹ в Ñтом дне или нет.\n $.each(answer.scheduleItems[0].availableTime, function() {\n dropdown.append(`
${this}
`);\n counter++;\n });\n spinner.hide();\n $('select#date').prop('disabled', false);\n });\n });\n\n $(document).on('change', 'select#time', function() {\n const selected = $(this).find(':selected');\n if (!selected) return;\n $('.js-form-row-fio').show();\n\n const maskPhone = document.querySelector('.input-phone');\n const maskCarNumber = document.querySelector('.input-carnumber');\n if (maskPhone) {\n require(['imask'], function() {\n IMask(maskPhone, {\n mask: '+{7} (000) 000-00-00',\n lazy: false,\n });\n });\n }\n if (maskCarNumber) {\n require(['imask'], function() {\n IMask(maskCarNumber, {\n mask: /^[\\da-zа-Ñ]+$/,\n lazy: true,\n });\n });\n }\n });\n\n $(document).on('submit', 'form#form-signup', function() {\n $('.fdatetime').html('');\n $('.fcarnumber').html('');\n const stoid = $('.fitMapSelect #address').find('option:selected').attr('data-fitmapid');\n const stoaddress = $('.fitMapSelect #address').find('option:selected').attr('data-fitmapaddress');\n const data = $(this).serialize();\n spinner.show($(this).parents(fitMapList.config.listItem));\n $.when(config.doRequest('/orders/registrationinsto', {'stoid': stoid, 'data': data})).done(function(answer) {\n if (answer.result) {\n const date = new Date(answer.tireFittingTime);\n const day = date.getDate().toString().padStart(2, '0');\n const month = date.getMonth() + 1;\n const year = date.getFullYear();\n const h = date.getHours();\n const m = date.getMinutes().toString().padStart(2, '0');\n const formatDatetime = day + '.' + month + '.' + year + ' ' + h + ':' + m;\n $('#tableStepShm').css('padding', '15px').html('Ð’Ñ‹Ð±Ñ€Ð°Ð½Ð½Ð°Ñ Ñ‚Ð¾Ñ‡ÐºÐ°: '+stoaddress+'
Выбранное времÑ: ' + formatDatetime + '
СтоимоÑÑ‚ÑŒ уÑлуг: ' + answer.serviceInfo.price + '
руб.
Отменить запиÑÑŒ
');\n } else {\n switch (answer.error) {\n case 'Ð’Ñ€ÐµÐ¼Ñ Ð½Ð° запиÑÑŒ занÑто. Попробуйте выбрать другое времÑ':\n $('.fdatetime').html('Ðто Ð²Ñ€ÐµÐ¼Ñ ÑƒÐ¶Ðµ занÑто');\n break;\n case 'Ðеправильный гоÑ. номер автомобилÑ':\n $('.fcarnumber').html('Ðеправильный номер автомобилÑ');\n break;\n default:\n $('.fdatetime').html('Произошла ошибка запиÑи');\n }\n }\n spinner.hide();\n });\n return false;\n });\n\n $('.bsDatepicker').on('changeDate', function(e) {\n const selectedVal = e.format();\n selectDateSto = e.format();\n spinner.show($('.fitMap__time'));\n const selectedId = $('#address').find(':selected').attr('data-fitmapid');\n const timeBlock = $('.fitMap__time');\n $.when(config.doRequest('/orders/stotimeslist/', { 'id': selectedId, 'date': selectedVal, 'needDelivery': 'false'})).done(function (answer) {\n timeBlock.html('');\n // ToDo: допилить, Ñ‚.к. апи пока выдает неадкватный ответ. Добавить проверку на еÑÑ‚ÑŒ Ñвободные чаÑÑ‹ в Ñтом дне или нет.\n $.each(answer.scheduleItems[0].availableTime, function() {\n timeBlock.append(`\n
\n
${this}
\n
`);\n });\n });\n });\n },\n appendForm: function(id) {\n if (id) {\n $(fitMapList.config.listItem).removeClass(fitMapList.config.listItemActive);\n $(fitMapList.config.listItemInner).remove();\n const item = document.querySelector(`.fitMap__list-item[data-fitmapid=\"${id}\"]`);\n item.classList.add(fitMapList.config.listItemActive);\n const topPos = item.offsetTop;\n document.querySelector('.fitMap__list').scrollTop = topPos;\n }\n if ($(`.${fitMapList.config.listItemActive} .fitMap__list-item-inner`).length == 0) {\n $(`.${fitMapList.config.listItemActive}`).append(templateListItem);\n }\n spinner.show($(this).parents(fitMapList.config.listItem));\n let shopListUrl = '/Orders/deliveryPoints/maxdays.php';\n if ($('.changeRegionId').length) {\n shopListUrl += '?region_id='+$('.changeRegionId').attr('newRegionId');\n }\n $.getJSON(shopListUrl, {'id': id, 'needDelivery': 'false'}, function(json) {\n const dates = [];\n const date = new Date();\n for (let i = 0; i < 14; i++) {\n const tempDate = new Date();\n tempDate.setDate(date.getDate()+(i+json));\n const dd = tempDate.getDate().toString().padStart(2, '0');\n let mm = tempDate.getMonth() + 1;\n mm = mm.toString().padStart(2, '0');\n const yyyy = tempDate.getFullYear();\n const fRest = yyyy + '-' + mm + '-' + dd;\n const fChpu = dd + '.' + mm + '.' + yyyy;\n dates[i] = [fRest, fChpu];\n }\n const dropdown = $('select#date');\n dropdown.html('
Дата
');\n $.each(dates, function(a, b) {\n dropdown.append('
'+b[1]+'
');\n });\n spinner.hide();\n });\n $('select#date').prop('disabled', false);\n },\n selectAddress: function(id) {\n const currentId = $('select#address').find(':selected').val();\n if (currentId != id) {\n $('select#address').val(id).trigger('change');\n }\n },\n initCalendar: function(id = 0, selector = '.bsDatepicker') {\n // SANDBOX - https://uxsolutions.github.io/bootstrap-datepicker/\n spinner.show($(selector));\n $(selector).datepicker('destroy');\n const iconArrowLeft = `
`;\n const iconArrowRight = `
`;\n\n let shopListUrl = '/Orders/deliveryPoints/maxdays.php';\n if ($('.changeRegionId').length) {\n shopListUrl += '?region_id=' + $('.changeRegionId').attr('newRegionId');\n }\n $.getJSON(shopListUrl, {'id': id, 'needDelivery': 'false'}, function(json) {\n const dates = [];\n const enableDays = [];\n const date = new Date();\n const firstDate = new Date();\n for (let i = 0; i < 14; i++) {\n const tempDate = new Date();\n tempDate.setDate(date.getDate() + (i + json));\n const dd = tempDate.getDate().toString().padStart(2, '0');\n let mm = tempDate.getMonth() + 1;\n mm = mm.toString().padStart(2, '0');\n const yyyy = tempDate.getFullYear();\n const fRest = yyyy + '-' + mm + '-' + dd;\n const fChpu = dd + '.' + mm + '.' + yyyy;\n dates[i] = [fRest, fChpu];\n enableDays[i] = yyyy + '-' + mm + '-' + dd;\n }\n $('.fitMap__time').html('');\n $(selector).datepicker({\n maxViewMode: 1,\n weekStart: 1,\n startDate: '+0d',\n templates: {\n leftArrow: iconArrowLeft,\n rightArrow: iconArrowRight,\n },\n beforeShowDay: function(d) {\n // console.log(enableDays[0]);\n if (enableDays.length > 0) {\n if (enableDays.indexOf(fitMapList.formatDate(d)) < 0) {\n $('.fitMap__clearTime').show();\n return {enabled: false};\n } else {\n return {enabled: true};\n }\n }\n },\n // todayHighlight: true,\n format: 'yyyy-mm-dd',\n language: 'ru',\n });\n\n // выÑтавлÑем первую возможную дату\n $(selector).datepicker('setDate', enableDays[0]);\n\n spinner.hide($(selector));\n });\n },\n formatDate: function(d) {\n let day = String(d.getDate());\n if (day.length == 1) {\n day = '0' + day;\n };\n let month = String((d.getMonth() + 1));\n if (month.length == 1) {\n month = '0' + month;\n };\n return d.getFullYear() + '-' + month + '-' + day;\n },\n};\n","import './index.scss';\n\nexport const hideLayout = {\n show: function(text = '', element = document.body, icon = '') {\n if (element !== null) {\n if (element.jquery) element = $(element)[0];\n element.classList.add('hideLayout-box-parent');\n element.insertAdjacentHTML('beforeend', getLayoutTemplate(element, text, icon));\n }\n },\n hide: function(element = document.body) {\n if (element !== null) {\n if (element.jquery) element = $(element)[0];\n element.classList.remove('hideLayout-box-parent');\n element.querySelector('.hideLayout-box').remove();\n }\n },\n};\n\nconst getLayoutTemplate = function(element, text, icon) {\n const hideLayoutClass = element === document.body ? 'hideLayout-box--viewport' : '';\n let content = `\n
\n
`;\n if (icon) {\n content += `
`;\n }\n content += `
${text}
\n
\n
`;\n return content;\n};\n","// import './bootstrap-datepicker.scss';\nimport './index.scss';\nimport * as jQuery from 'jquery';\nwindow.$ = jQuery;\n\nimport Tab from 'bootstrap/js/dist/tab';\n\nimport { config } from 'core/config';\nimport { spinner } from 'modules/spinner';\nimport { templateList } from './templateList';\nimport { fitMapList } from './fitMapList';\nimport { collectForm } from \"modules/mainSearchbar/collectForm\";\nimport { modalAfterAddToCart } from \"modules/modalAfterAddToCart\";\nimport { metricaModule } from \"modules/metrica\";\nimport { baloonTemplate } from 'modules/fitMapPodbor/baloonTemplate';\nimport { hideLayout } from \"modules/hideLayout\";\n\nlet activePlacemark;\n\nexport const fitMapPodbor = {\n config: {\n 'container': '#tableStepShm',\n 'container0': '#tableStepShm0',\n 'postfactPayment': '.or-payment-btn-div:not([data-payformafiz=\"Предоплачено\"])',\n 'listItem': '.fitMap__list',\n 'block': '.fitMap__block',\n },\n podbor: false,\n init: function (podbor = false) {\n this.bindEvents();\n this.podbor = podbor;\n },\n bindEvents: function () {\n $(document).on('click', '.js-delete-shm', function () {\n $('#tableStepShm').css('padding', '0px').html('
');\n spinner.show($(fitMapPodbor.config.container));\n $.when(config.doRequest('/orders/deleteregistrationinsto')).done(function () {\n fitMapPodbor.initYandexMap();\n });\n });\n document.querySelector('.goServicePageCartWidget__add-to-cart').addEventListener('click', function (e) {\n e.preventDefault();\n const select = $('.fitMapSelect #address').find('option:selected');\n const date = $('.datepicker-days .active.day').attr('data-dateFormat');\n const time = $('.fitMap__time .btn.active span').html();\n const paramsMainSearch = collectForm('.mainSearchForm');\n const data = {};\n for (const pair of paramsMainSearch.entries()) {\n data[pair[0]] = pair[1];\n }\n $.when(config.doRequest('/Orders/addtocartservice/', {\n data: data,\n stoid: select.attr('data-fitmapid'),\n serviceCode: $('#serviceCode').val(),\n amount: select.attr('data-fitmapamount'),\n address: select.attr('data-fitmapaddress'),\n carNumber: $('#carnumber').val(),\n date: date,\n time: time,\n })).done(function (answer) {\n if (answer.result === 'true') {\n document.location.href = '/Orders/start.php';\n } else {\n alert(answer.comment);\n }\n });\n return false;\n });\n\n const fitMapButton = $(`button[href=\"${fitMapPodbor.config.container}\"]`);\n if ($(fitMapPodbor.config.container).hasClass('map-initialized')) {\n return;\n }\n spinner.show($(fitMapPodbor.config.container));\n if (typeof ymaps == 'undefined') {\n $.getScript('https://api-maps.yandex.ru/2.1/?apikey=607007ed-0904-4368-8445-809187c8313d&load=package.standard&lang=ru-RU', function () {\n if (typeof ymaps !== 'undefined') {\n fitMapPodbor.initYandexMap();\n }\n });\n } else {\n fitMapPodbor.initYandexMap();\n }\n $(fitMapPodbor.config.container).addClass('map-initialized');\n\n const maskCarNumber = document.querySelector('.input-carnumber');\n if (maskCarNumber) {\n require(['imask'], function () {\n IMask(maskCarNumber, {\n mask: /^[\\dAaBbEeKkMmHhOoPpCcTtXxYyÐаВвЕеКкМмÐнОоРрСÑТтХхУу]+$/,\n lazy: true,\n });\n });\n }\n },\n initYandexMap: function () {\n ymaps.ready(function () {\n const paramsMainSearch = collectForm('.mainSearchForm');\n const data = {};\n for (const pair of paramsMainSearch.entries()) {\n data[pair[0]] = pair[1];\n }\n let d = data;\n $.when(config.doRequest('/orders/stolistwithoutgoods/', { data })).done(function (data) {\n const points = data.searchResult;\n $('#serviceCode').val(data.searchResult[0].serviceCode);\n const myMap = new ymaps.Map('fitMap', {\n center: [55.751574, 37.573856],\n zoom: 9,\n }, {\n searchControlProvider: 'yandex#search',\n });\n\n const MyIconContentLayout = ymaps.templateLayoutFactory.createClass(\n `
\n
от 0 ₽
\n
{{ properties.geoObjects.length }}
\n
`);\n const clusterer = new ymaps.Clusterer({\n clusterIcons: [\n {\n href: '',\n size: [100, 32],\n offset: [-50, -16],\n }],\n hasBalloon: false,\n clusterIconContent: null,\n clusterIconContentLayout: MyIconContentLayout,\n });\n\n clusterer.options.set({\n groupByCoordinates: false, // Специальный режим работы клаÑтеризатора при котором клаÑтеры образуютÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ из геобъектов Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñ‹Ð¼Ð¸ координатами.\n clusterDisableClickZoom: false, // запрещение маÑÑˆÑ‚Ð°Ð±Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ°Ñ€Ñ‚Ñ‹ при щелчке по клаÑтеру\n clusterBalloonMinHeight: 260,\n gridSize: 128, // Размер Ñчейки клаÑтеризации в пикÑелÑÑ…. Значение должно быть равно 2^n (в облаÑÑ‚ÑŒ 256 на 256 пикÑелей должно умещатьÑÑ Ñ€Ð¾Ð²Ð½Ð¾Ðµ количеÑтво Ñчеек).\n });\n\n $(document).on('change', 'select#address', function () {\n const id = $(this).find(':selected').val();\n const geoObjs = clusterer.getGeoObjects();\n geoObjs.forEach(function (elem) {\n if (elem.id == id) {\n if (activePlacemark) {\n if (activePlacemark === elem) {\n activePlacemark.options.unset('preset');\n } else {\n activePlacemark.options.set('iconColor', '#446DD7');\n activePlacemark = elem;\n }\n } else {\n activePlacemark = elem;\n }\n elem.options.set('iconColor', 'red');\n }\n });\n });\n\n const geoObjects = [];\n let listHtml = '';\n\n let counter = 0;\n let coords = {};\n for (let i = 0; i < points.length; i++) {\n let priceWithDiscount = points[i].amount - points[i].discount;\n let txtPriceWithDiscount = '';\n if (priceWithDiscount < 0) priceWithDiscount = 0;\n coords = points[i].geoData.coordinates;\n if (priceWithDiscount == 0) {\n txtPriceWithDiscount = points[i].name;\n } else {\n txtPriceWithDiscount = priceWithDiscount + ' ₽';\n }\n // reverse Ñ‚.к. Ñ Ñ€ÐµÑтаера приходит д,ш\n geoObjects[counter] = new ymaps.Placemark(coords.reverse(), {\n iconCaption: txtPriceWithDiscount,\n price: priceWithDiscount,\n }, {\n iconColor: '#446DD7',\n });\n geoObjects[counter].id = points[i].stoId;\n const pointsData = {\n name: points[i].name,\n address: points[i].address,\n id: points[i].stoId,\n amount: points[i].amount,\n discount: points[i].discount,\n };\n listHtml += templateList(pointsData);\n counter += 1;\n }\n spinner.hide($(fitMapPodbor.config.container));\n fitMapList.init(listHtml);\n\n clusterer.add(geoObjects);\n clusterer.events.add('click', function (e) {\n const obj = e.get('target');\n if (!obj.properties.get('balloonContent')) {\n $.when(config.doRequest('/orders/pontInfo/', { 'stoid': obj.id, 'formating': true })).done(function (data) {\n const content = baloonTemplate(data);\n obj.properties.set('balloonContent', content);\n obj.balloon.open();\n });\n }\n if (activePlacemark) {\n if (activePlacemark === obj) {\n activePlacemark.options.unset('preset');\n } else {\n activePlacemark.options.set('iconColor', '#446DD7');\n activePlacemark = obj;\n }\n } else {\n activePlacemark = obj;\n }\n obj.options.set('iconColor', 'red');\n if (obj.id !== undefined) {\n fitMapList.selectAddress(obj.id);\n }\n });\n\n myMap.events.add(['actionend'], function (e) {\n const clusters = clusterer.getClusters();\n window.test = clusters;\n clusters.forEach((element) => {\n const points = element.properties.get('geoObjects');\n const priceArray = [];\n points.forEach((e) => {\n priceArray.push(e.properties.get('price'));\n });\n const MyIconContentLayout2 = ymaps.templateLayoutFactory.createClass(\n `
\n
от ${Math.min(...priceArray)} ₽
\n
{{ properties.geoObjects.length }}
\n
`);\n element.options.set('clusterIconContentLayout', MyIconContentLayout2);\n });\n });\n myMap.geoObjects.add(clusterer);\n\n myMap.setBounds(clusterer.getBounds(), {\n checkZoomRange: true,\n }).then(function () {\n if (myMap.getZoom() > 15) myMap.setZoom(15);\n });\n\n // Блокировка \"зума\" при Ñкроле поверх карты\n myMap.behaviors.disable('scrollZoom');\n if ((d.searchType === 'param' && !d.Std && !d.Stprof && !d.Stsh) || (d.searchType === 'auto' && !d.TypeSize)) {\n hideLayout.show('Ð”Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи на шиномонтаж укажите параметры автомобилÑ.', document.querySelector('.hideWithoutType'), '/static/public/images/arrow-to-top.png');\n hideLayout.show('Ð”Ð»Ñ Ð·Ð°Ð¿Ð¸Ñи на шиномонтаж укажите параметры автомобилÑ.', document.querySelector('.hideWithoutType2'));\n }\n });\n });\n },\n hidePostfactPayments: function () {\n $(fitMapPodbor.config.postfactPayment).hide();\n $('#pills-infact-tab').hide();\n const onlineInstance = Tab.getOrCreateInstance(document.querySelector('#pills-online-tab'));\n onlineInstance.show();\n // $('#pills-online-tab').tab('show');\n $('label[data-id=\"5\"]').hide();\n $('#pills-online label').first().trigger('click');\n },\n showPostfactPayments: function () {\n $(fitMapPodbor.config.postfactPayment).show();\n\n $('#pills-infact-tab').show();\n $('#pills-infact-tab').addClass('active');\n $('#pills-infact').addClass('active');\n $('#pills-infact').addClass('show');\n const infactInstance = Tab.getOrCreateInstance(document.querySelector('#pills-infact-tab'));\n infactInstance.show();\n // $('#pills-infact-tab').tab('show');\n $('#pills-online-tab').removeClass('active');\n $('#pills-online').removeClass('active').removeClass('show');\n $('.paymentInfo__content').hide();\n $('label[data-id=\"5\"]').show();\n $('#pills-infact label').first().trigger('click');\n },\n};\n","import {config} from 'core/config';\nimport Dropdown from 'bootstrap/js/dist/dropdown';\n\nexport function getAvailableInfo(goodAvailableObj) {\n if (goodAvailableObj.jquery !== undefined) goodAvailableObj = $(goodAvailableObj)[0];\n const availableType = goodAvailableObj.dataset.available_type;\n if (availableType === undefined) {\n return false;\n }\n const param = {\n availableType: availableType,\n goodId: goodAvailableObj.dataset.item,\n };\n if (!goodAvailableObj.classList.contains(`was-loaded-${availableType}`) && param.goodId > 0) {\n config.get('/catalog/availableinfo/', param, 'html').then((response) => {\n const dropdown = goodAvailableObj.nextElementSibling;\n goodAvailableObj.classList.add(`was-loaded-${availableType}`);\n dropdown.innerHTML = response;\n\n const $dropdownMenu = goodAvailableObj.nextElementSibling;\n if ($dropdownMenu.querySelector('.btn-close') !== null) {\n const dropdownInstance = Dropdown.getOrCreateInstance(goodAvailableObj);\n const $dropdownIframe = $dropdownMenu.querySelector('iframe');\n $dropdownMenu.querySelector('.btn-close').addEventListener('click', () => {\n dropdownInstance.hide();\n if ($dropdownIframe !== null) {\n $dropdownIframe.remove();\n goodAvailableObj.classList.remove(`was-loaded-${availableType}`);\n }\n });\n }\n });\n }\n goodAvailableObj.addEventListener('hide.bs.dropdown', function(e) {\n goodAvailableObj.classList.remove(`was-loaded-${availableType}`);\n });\n};\n\nfunction initVideoBudget() {\n const $$smallVideoLoad = document.querySelectorAll('.js-smallVideoLoad');\n if ($$smallVideoLoad.length > 0) {\n $$smallVideoLoad.forEach((element) => {\n element.addEventListener('click', () => {\n const $badgeVideoContainer = document.querySelector('.dropdown-menu.show .js-videoContainer');\n const videoLink = element.dataset.smallVideoLink;\n const tpl = `
\n
\n
\n
\n
`;\n $badgeVideoContainer.classList.add('videoContainer--open');\n $badgeVideoContainer.insertAdjacentHTML('beforeend', tpl);\n const videoContainerHeight = $badgeVideoContainer.offsetHeight+'px';\n document.querySelector('.dropdown-menu--video').style.height = videoContainerHeight;\n\n document.querySelector('.videoContainer__close').addEventListener('click', () => {\n $badgeVideoContainer.classList.remove('videoContainer--open');\n $badgeVideoContainer.innerHTML = '';\n document.querySelector('.dropdown-menu--video').style.height = 'auto';\n });\n });\n });\n }\n}\n","import {config} from 'core/config';\nimport Dropdown from 'bootstrap/js/dist/dropdown';\n\nexport function getBadgetInfo(badgetObj) {\n if (badgetObj.jquery !== undefined) badgetObj = $(badgetObj)[0];\n const badgetType = badgetObj.dataset.badget_type;\n if (badgetType === undefined) {\n return false;\n }\n const param = {\n badgetType: badgetType,\n goodId: badgetObj.dataset.item,\n type: badgetObj.dataset.object_type ? badgetObj.dataset.object_type : 'goGood',\n };\n if (!badgetObj.classList.contains(`was-loaded-${badgetType}`) && param.goodId > 0) {\n config.get('/catalog/badgetinfo/', param, 'html').then((response) => {\n const dropdown = badgetObj.nextElementSibling;\n badgetObj.classList.add(`was-loaded-${badgetType}`);\n dropdown.innerHTML = response;\n if (badgetObj.dataset.badget_type === 'video') {\n initVideoBudget();\n const videoDiv = dropdown.querySelectorAll('[data-video-id]');\n if (videoDiv.length > 0 && dropdown.classList.contains('show')) {\n videoDiv.forEach((element) => {\n const videoLink = element.dataset.videoLink;\n element.innerHTML = `\n
\n
\n
\n `;\n });\n }\n }\n const $dropdownMenu = badgetObj.nextElementSibling;\n if ($dropdownMenu.querySelector('.btn-close') !== null) {\n const dropdownInstance = Dropdown.getOrCreateInstance(badgetObj);\n const $dropdownIframe = $dropdownMenu.querySelector('iframe');\n $dropdownMenu.querySelector('.btn-close').addEventListener('click', () => {\n dropdownInstance.hide();\n if ($dropdownIframe !== null) {\n $dropdownIframe.remove();\n badgetObj.classList.remove(`was-loaded-${badgetType}`);\n }\n });\n }\n });\n }\n badgetObj.addEventListener('hide.bs.dropdown', function(e) {\n badgetObj.classList.remove(`was-loaded-${badgetType}`);\n });\n};\n\nfunction initVideoBudget() {\n const $$smallVideoLoad = document.querySelectorAll('.js-smallVideoLoad');\n if ($$smallVideoLoad.length > 0) {\n $$smallVideoLoad.forEach((element) => {\n element.addEventListener('click', () => {\n const $badgeVideoContainer = document.querySelector('.dropdown-menu.show .js-videoContainer');\n const videoLink = element.dataset.smallVideoLink;\n const tpl = `
\n
\n
\n
\n
`;\n $badgeVideoContainer.classList.add('videoContainer--open');\n $badgeVideoContainer.insertAdjacentHTML('beforeend', tpl);\n const videoContainerHeight = $badgeVideoContainer.offsetHeight+'px';\n document.querySelector('.dropdown-menu--video').style.height = videoContainerHeight;\n\n document.querySelector('.videoContainer__close').addEventListener('click', () => {\n $badgeVideoContainer.classList.remove('videoContainer--open');\n $badgeVideoContainer.innerHTML = '';\n document.querySelector('.dropdown-menu--video').style.height = 'auto';\n });\n });\n });\n }\n}\n","import {config} from 'core/config';\n\nconst SELECT = {\n 'searchForm': 'form.searchForm',\n};\n\nexport const collectForm = (selector) => {\n const $$elements = document.querySelectorAll(selector);\n if ($$elements.length > 0) {\n let formHtml;\n if ($$elements.length === 1) {\n formHtml = document.querySelector(selector);\n } else {\n formHtml = config.getFirstVisibleElement($$elements);\n }\n if (formHtml.tagName !== 'FORM') {\n formHtml = formHtml.querySelector('form');\n }\n\n const formData = new FormData();\n\n for (const el of formHtml.elements) {\n if ((el.type === 'hidden' || el.checkVisibility()) && (el.type !== 'checkbox' && el.type !== 'radio' || el.checked)) {\n if (el.value) {\n formData.set(el.name, el.value);\n }\n }\n }\n\n const $tabSwitch = document.querySelector('.tab-pane.active [data-switch].active');\n if ($tabSwitch !== null) {\n let dataSwitch = $tabSwitch.dataset.switch;\n if (dataSwitch === 'avto') dataSwitch = 'auto'; // Ñтот коÑтыль заÑлуживает приз\n formData.set('searchType', dataSwitch);\n }\n\n const searchFormType = document.querySelector(SELECT.searchForm).dataset.type;\n const $searchParamsAction = document.querySelector('#searchParamsAction');\n const $searchParamsThread = document.querySelector('#searchParamsThread');\n if ($searchParamsAction) {\n document.querySelector('#searchParamsAction').value = `search/${searchFormType}`;\n }\n if ($searchParamsThread) {\n document.querySelector('#searchParamsThread').value = `search/${searchFormType}`;\n }\n\n return formData;\n } else {\n return new FormData();\n }\n};\n","const SELECT = {\n 'markSelector': '.tabSearchParams.active .tab-pane.active .mark-selector',\n 'modelSelector': '.tabSearchParams.active .tab-pane.active .model-selector',\n 'yearSelector': '.tabSearchParams.active .tab-pane.active .year-selector',\n 'modificationSelector': '.tabSearchParams.active .tab-pane.active .modification-selector',\n};\n\nexport const avtoStorage = {\n set: () => {\n const markSelector = document.querySelector(SELECT.markSelector);\n const modelSelector = document.querySelector(SELECT.modelSelector);\n const yearSelector = document.querySelector(SELECT.yearSelector);\n const modificationSelector = document.querySelector(SELECT.modificationSelector);\n\n localStorage.setItem('car', JSON.stringify({\n mark: markSelector.value,\n model: modelSelector.options[modelSelector.selectedIndex].outerHTML,\n year: yearSelector.options[yearSelector.selectedIndex].outerHTML,\n mod: modificationSelector.options[modificationSelector.selectedIndex].outerHTML,\n }));\n },\n get: (callback) => {\n const markSelector = document.querySelector('.searchForm .mark-selector');\n const modelSelector = document.querySelector('.searchForm .model-selector');\n const yearSelector = document.querySelector('.searchForm .year-selector');\n const modificationSelector = document.querySelector('.searchForm .modification-selector');\n\n if (localStorage.hasOwnProperty('car') && markSelector !== null) {\n const car = JSON.parse(localStorage.getItem('car'));\n markSelector.value = car.mark;\n modelSelector.innerHTML = car.model;\n yearSelector.innerHTML = car.year;\n modificationSelector.innerHTML = car.mod;\n callback();\n }\n },\n remove: () => {\n localStorage.removeItem('car');\n },\n};\n","\nimport Collapse from 'bootstrap/js/dist/collapse';\n\nconst SELECT = {\n 'sideFilterSeason': '#collapseSideFilter #sideFilter__season',\n 'collapseWinter': '#collapseWinter',\n};\n\nfunction syncFilters(element) {\n const name = element.dataset.name;\n const val = element.value;\n const isChecked = element.checked;\n\n const $studAll = document.querySelector('[data-sync=\"allSpikes\"]');\n const $studWith = document.querySelector('[data-sync=\"withSpikes\"]');\n const $studWithout = document.querySelector('[data-sync=\"withoutSpikes\"]');\n\n document.querySelectorAll(`.syncFilters[data-name=\"${name}\"]`).forEach((element) => {\n element.checked = false;\n });\n const filtersArray = document.querySelectorAll(`.syncFilters[data-name=\"${name}\"][value=\"${val}\"]`);\n filtersArray.forEach((input) => {\n input.checked = isChecked;\n });\n\n if (element.dataset.sync !== undefined) {\n document.querySelectorAll(`.syncFilters[data-sync=${element.dataset.sync}]`).forEach((element) => {\n element.checked = isChecked;\n });\n }\n if (element.id === 'summer' || element.dataset.name === 'stud' && element.checked === false) {\n if ($studAll !== null) $studAll.checked = true;\n if ($studWith !== null) $studWith.checked = false;\n if ($studWithout !== null) $studWithout.checked = false;\n }\n if (element.classList.contains('seasonchange')) {\n const $myCollapse = document.querySelector(SELECT.sideFilterSeason);\n if ($myCollapse) {\n const bsCollapse = Collapse.getOrCreateInstance($myCollapse);\n bsCollapse.show();\n }\n }\n if (element.dataset.name === 'season' && element.value === '1') {\n if (element.checked === true) {\n collapseWinterShow();\n } else {\n collapseWinterShow(false);\n document.querySelectorAll('.syncFilters[data-name=\"stud\"]').forEach((element) => {\n element.checked = false;\n });\n if ($studAll !== null) $studAll.checked = true;\n if ($studWith !== null) $studWith.checked = false;\n if ($studWithout !== null) $studWithout.checked = false;\n }\n }\n if (name === 'season' && val === '2' && isChecked) {\n if (document.querySelector(SELECT.collapseWinter).classList.contains('show')) {\n collapseWinterShow(false);\n }\n document.querySelectorAll('.syncFilters[data-name=\"stud\"]').forEach((element) => {\n element.checked = false;\n });\n }\n if ((element.id === 'sn1' || element.id === 'sn2') && element.checked) {\n document.querySelectorAll('input[data-name=season]').forEach((element) => {\n element.checked = false;\n });\n document.querySelectorAll('#winter').forEach((element) => {\n element.checked = true;\n });\n if (document.querySelector('#dopseason1') !== null) {\n document.querySelector('#dopseason1').checked = true;\n }\n collapseWinterShow();\n }\n};\n\nfunction collapseWinterShow(show = true) {\n document.querySelectorAll(SELECT.collapseWinter).forEach(($collapse) => {\n const bsCollapse = Collapse.getOrCreateInstance($collapse);\n show ? bsCollapse.show() : bsCollapse.hide();\n });\n}\n\nexport {syncFilters};\n","import { config } from 'core/config';\nimport { avtoStorage } from './avtoStorage';\nimport { syncFilters } from './syncFilters';\nimport { mainSearchbar } from 'modules/mainSearchbar/index';\n\nconst SELECT = {\n 'advDatas': '#advancedTpl',\n 'newAvtoSearch': '.new_search',\n 'searchForm': 'form.searchForm',\n 'searchButton': '.mainSearchbar__button-submit',\n 'newSearchButon': '.mainSearchbar__button-close',\n 'markSelector': 'form.searchForm .mark-selector',\n 'modelSelector': 'form.searchForm .model-selector',\n 'yearSelector': 'form.searchForm .year-selector',\n 'modificationSelector': 'form.searchForm .modification-selector',\n 'activeButtonSubmit': '.tab-pane.active .tab-pane.active .mainSearchbar__button-submit',\n 'activeButtonClose': '.tab-pane.active .tab-pane.active .mainSearchbar__button-close',\n};\n\nexport const selectionByCar = {\n init: () => {\n selectionByCar.bindEvents();\n avtoStorage.get(() => selectionByCar.searchByCar());\n },\n bindEvents: () => {\n const $$syncFilters = document.querySelectorAll('.syncFilters');\n $$syncFilters.forEach((element) => {\n element.addEventListener('click', () => {\n syncFilters(element);\n });\n });\n\n // подбор авто\n document.querySelectorAll('.selectionByCar select').forEach((element) => {\n element.addEventListener('change', (event) => selectionByCar.selection(event.target));\n });\n\n // ÑÐ±Ñ€Ð¾Ñ Ð¿Ð¾Ð´Ð¾Ð±Ñ€Ð°Ð½Ð½Ð¾Ð³Ð¾ авто\n document.querySelectorAll(SELECT.newAvtoSearch).forEach((element) => {\n element.addEventListener('click', () => selectionByCar.selectionReset());\n });\n },\n selection: function (element) {\n const $$selectModel = document.querySelectorAll(SELECT.modelSelector);\n const $$selectYear = document.querySelectorAll(SELECT.yearSelector);\n const $$selectMod = document.querySelectorAll(SELECT.modificationSelector);\n const $$selectCurrent = document.querySelectorAll(`select[name=${element.name}]`);\n const selectName = element.name;\n const currentValue = element.value;\n let requestUrl = '/index/callback/adaptiveGetModels.php';\n\n selectionByCar.resetButtonVisible();\n\n const params = {\n '_id': currentValue,\n 'thread': document.querySelector(SELECT.searchForm).dataset.type,\n };\n\n // дублируем value вÑем таким-же Ñелектам\n $$selectCurrent.forEach((element) => element.value = currentValue);\n\n if (selectName === 'search_mark') {\n config.setDropdown({}, document.querySelectorAll(SELECT.modelSelector));\n config.setDropdown({}, document.querySelectorAll(SELECT.yearSelector));\n config.setDropdown({}, document.querySelectorAll(SELECT.modificationSelector));\n $$selectModel.forEach((element) => element.disabled = true);\n $$selectYear.forEach((element) => element.disabled = true);\n $$selectMod.forEach((element) => element.disabled = true);\n }\n if (selectName === 'search_model') {\n requestUrl = '/index/callback/adaptiveGetYears.php';\n config.setDropdown({}, document.querySelectorAll(SELECT.yearSelector));\n config.setDropdown({}, document.querySelectorAll(SELECT.modificationSelector));\n $$selectYear.forEach((element) => element.disabled = true);\n $$selectMod.forEach((element) => element.disabled = true);\n }\n if (selectName === 'search_year') {\n requestUrl = '/index/callback/adaptiveGetModifications.php';\n params['_id'] = document.querySelector(SELECT.modelSelector).value;\n params['year'] = currentValue;\n config.setDropdown({}, document.querySelectorAll(SELECT.modificationSelector));\n $$selectMod.forEach((element) => element.disabled = true);\n }\n if (selectName === 'search_modification') {\n avtoStorage.set();\n selectionByCar.searchByCar();\n return;\n }\n\n if (currentValue == 0) return;\n\n config.get(requestUrl, params).then(function (response) {\n if (selectName === 'search_mark') {\n config.setDropdown(response, document.querySelectorAll(SELECT.modelSelector), true);\n $$selectModel.forEach((element) => element.disabled = false);\n }\n if (selectName === 'search_model') {\n if (document.querySelector(SELECT.searchForm).dataset.type === 'sensors') {\n config.setDropdown(response, document.querySelectorAll(SELECT.yearSelector), false, true, false);\n } else {\n config.setDropdown(response, document.querySelectorAll(SELECT.yearSelector), true, true, true);\n }\n $$selectYear.forEach((element) => element.disabled = false);\n }\n if (selectName === 'search_year') {\n config.setDropdown(response, document.querySelectorAll(SELECT.modificationSelector), true);\n $$selectMod.forEach((element) => element.disabled = false);\n }\n });\n },\n selectionReset: function () {\n const $$selectModel = document.querySelectorAll(SELECT.modelSelector);\n const $$selectYear = document.querySelectorAll(SELECT.yearSelector);\n const $$selectMod = document.querySelectorAll(SELECT.modificationSelector);\n avtoStorage.remove();\n document.querySelector('.complectationId').value = '';\n const $buttonSubmit = document.querySelector(SELECT.activeButtonSubmit);\n const $activeButtonClose = document.querySelector(SELECT.$activeButtonClose);\n if ($buttonSubmit !== null) {\n $buttonSubmit.style.display = 'block';\n }\n if ($activeButtonClose !== null) {\n $activeButtonClose.style.display = 'block';\n }\n document.querySelectorAll(SELECT.markSelector).forEach((element) => {\n element.value = 0;\n });\n config.setDropdown({}, document.querySelectorAll(SELECT.modelSelector));\n config.setDropdown({}, document.querySelectorAll(SELECT.yearSelector));\n config.setDropdown({}, document.querySelectorAll(SELECT.modificationSelector));\n $$selectModel.forEach((element) => element.innerHTML = '
Модель
');\n $$selectYear.forEach((element) => element.innerHTML = '
Год
');\n $$selectMod.forEach((element) => element.innerHTML = '
МодификациÑ
');\n\n window.SIZES_WAS_LOADED = false;\n const $$firstStage = document.querySelectorAll('.first-stage');\n const $$secondStage = document.querySelectorAll('.second-stage');\n const $$searchbar = document.querySelectorAll('.searchbar__search-by-car');\n if ($$firstStage.length > 0) {\n $$firstStage.forEach((element) => {\n element.classList.add('d-flex');\n element.classList.remove('d-none');\n });\n }\n if ($$secondStage.length > 0) {\n $$secondStage.forEach((element) => {\n element.classList.add('d-none');\n element.classList.remove('d-flex');\n });\n }\n if ($$searchbar.length > 0) {\n $$searchbar.forEach((element) => {\n element.style.display = 'none';\n });\n }\n const $searchForm = document.querySelector(SELECT.searchForm);\n if ($searchForm.dataset.type !== 'sensors') {\n selectionByCar.searchButtonVisible();\n }\n },\n searchByCar: function () {\n selectionByCar.resetButtonVisible();\n const $buttonSubmit = document.querySelector(SELECT.activeButtonSubmit);\n if ($buttonSubmit !== null) {\n $buttonSubmit.style.display = 'block';\n }\n const year = document.querySelector(SELECT.yearSelector).value;\n const modification = document.querySelector(SELECT.modificationSelector).value;\n const params = {\n 'year': year,\n 'modificationId': modification,\n 'thread': document.querySelector(SELECT.searchForm).dataset.type,\n };\n config.get('/autosearch/indexresults', params).then((response) => {\n const $$firstStage = document.querySelectorAll('.first-stage');\n const $$secondStage = document.querySelectorAll('.second-stage');\n selectionByCar.loadDiskResults(response);\n selectionByCar.loadTyresResult(response);\n selectionByCar.loadServicesResult(response);\n document.querySelectorAll('.search_result').forEach((element) => {\n element.innerHTML = response.fullName;\n const $$checkboxes = document.querySelectorAll('.shtat input');\n if ($$checkboxes) {\n $$checkboxes.forEach(($checkbox) => {\n $checkbox.checked = true;\n });\n }\n });\n if (document.querySelector('.sverlovka') !== null) {\n document.querySelector('.sverlovka').innerHTML = response.sverlovka;\n }\n document.querySelector('.complectationId').value = response.ComplectationAutos_id;\n if ($$firstStage.length > 0) {\n $$firstStage.forEach((element) => {\n element.classList.add('d-none');\n element.classList.remove('d-flex');\n });\n }\n if ($$secondStage.length > 0) {\n $$secondStage.forEach((element) => {\n element.classList.add('d-flex');\n element.classList.remove('d-none');\n });\n }\n window.SIZES_WAS_LOADED = true;\n selectionByCar.showAutoResults();\n mainSearchbar.bindNotSparkaInputs();\n mainSearchbar.bindSparkaInputs();\n });\n },\n loadSizes: function () {\n if (document.querySelector(SELECT.advDatas) !== null) {\n let answer = document.querySelector(SELECT.advDatas).value;\n answer = answer.replace('', '');\n if (answer) {\n answer = JSON.parse(answer);\n selectionByCar.loadDiskResults(answer);\n selectionByCar.loadTyresResult(answer);\n SIZES_WAS_LOADED = true;\n selectionByCar.showAutoResults();\n }\n } else {\n if (document.querySelectorAll('.sizes_was_loaded').length) {\n SIZES_WAS_LOADED = true;\n }\n }\n },\n searchButtonVisible: () => {\n setTimeout(function () {\n const searchType = selectionByCar.getSearchType();\n let show = false;\n if (searchType === 'auto') {\n if (document.querySelector('.complectationId').value > 0) {\n show = true;\n }\n } else {\n show = true;\n }\n if (show === true) {\n document.querySelector(SELECT.searchButton).hidden = false;\n } else {\n document.querySelector(SELECT.searchButton).hidden = true;\n }\n selectionByCar.resetButtonVisible();\n }, 1);\n },\n resetButtonVisible: () => {\n setTimeout(function () {\n const searchType = selectionByCar.getSearchType();\n let show = false;\n if (searchType === 'auto') {\n show = document.querySelector(SELECT.markSelector).value > 0;\n }\n if (show === true) {\n document.querySelector(SELECT.newSearchButon).hidden = false;\n } else {\n document.querySelector(SELECT.newSearchButon).hidden = true;\n }\n }, 1);\n },\n loadDiskResults: (callback) => {\n let diskParams = '';\n const $sizesTuningDisk = document.querySelector('.sizes_tuning_disk');\n const $sizesStockDisk = document.querySelector('.sizes_tuning_disk');\n if ($sizesTuningDisk !== null) $sizesTuningDisk.innerHTML = '';\n if ($sizesStockDisk !== null) $sizesStockDisk.innerHTML = '';\n\n if (callback.pcd) {\n diskParams += `Ñверловка ${callback.pcd}`;\n }\n if (callback.Fv) {\n if (callback.Ft == 0) diskParams += ' болт ';\n if (callback.Ft == 1) diskParams += ' гайка ';\n diskParams += callback.Fv;\n }\n if (callback.dia) {\n const $asDiai = document.querySelector('input[name=\"as_diai\"]');\n diskParams += ' DIA ' + callback.dia;\n if ($asDiai !== null) {\n document.querySelector('input[name=\"as_diai\"]').value = callback.dia;\n }\n }\n\n const $diskParams = document.querySelector('span.disk_params');\n if ($diskParams !== null) $diskParams.innerHTML = diskParams;\n\n if (callback.disks) {\n const $disksSearchResult = document.querySelector('.disksSearchResult .podborMain');\n const $autoSearchSizesDisks = document.querySelector('.autoSearchSizesDisks');\n const $complectationAutosId = document.querySelector('.ComplectationAutos_id');\n if ($disksSearchResult !== null) {\n $disksSearchResult.classList.remove('d-none');\n }\n if ($autoSearchSizesDisks !== null) {\n $autoSearchSizesDisks.innerHTML = callback.diskVariants;\n }\n if ($complectationAutosId !== null) {\n $complectationAutosId.value = callback.ComplectationAutos_id;\n }\n }\n },\n loadTyresResult: function (callback) {\n const $tyresSearchResult = document.querySelector('.tyresSearchResult .podborMain');\n const $autoSearchSizesTyres = document.querySelector('.autoSearchSizesTyres');\n const $complectationAutosId = document.querySelector('.ComplectationAutos_id');\n\n if ($tyresSearchResult !== null) {\n $tyresSearchResult.classList.add('d-none');\n if (callback.tyres) {\n $tyresSearchResult.classList.remove('d-none');\n if ($autoSearchSizesTyres !== null) {\n $autoSearchSizesTyres.innerHTML = callback.tyresVariants;\n }\n if ($complectationAutosId !== null) {\n $complectationAutosId.value = callback.ComplectationAutos_id;\n }\n }\n }\n },\n loadServicesResult: function (callback) {\n const $tyresSearchResult = document.querySelector('.servicesSearchResult .podborMain');\n const $autoSearchSizesTyres = document.querySelector('.autoSearchSizesTyresService');\n const $complectationAutosId = document.querySelector('.ComplectationAutos_id');\n\n if ($tyresSearchResult !== null) {\n $tyresSearchResult.classList.add('d-none');\n if (callback.tyres) {\n $tyresSearchResult.classList.remove('d-none');\n if ($autoSearchSizesTyres !== null) {\n $autoSearchSizesTyres.innerHTML = callback.servicesVariants;\n }\n if ($complectationAutosId !== null) {\n $complectationAutosId.value = callback.ComplectationAutos_id;\n }\n }\n }\n },\n showAutoResults: () => {\n const $searchForm = document.querySelector(SELECT.searchForm);\n if (window.SIZES_WAS_LOADED && $searchForm.dataset.type !== 'sensors') {\n document.querySelectorAll('.searchbar__search-by-car').forEach((element) => {\n element.style.display = 'none';\n });\n if (selectionByCar.getSearchType() === 'auto') {\n document.querySelector(`.${$searchForm.dataset.type}SearchResult`).style.display = 'block';\n }\n selectionByCar.searchButtonVisible();\n } else {\n document.querySelectorAll('.searchbar__search-by-car').forEach((element) => {\n element.style.display = 'none';\n });\n }\n },\n getSearchType: function () {\n const $activeNavLink = document.querySelector('.tab-pane.active .mainSearchbar__content-nav-link.active');\n let dataSwitch = 'param';\n if ($activeNavLink) {\n dataSwitch = $activeNavLink.dataset.switch;\n }\n return dataSwitch === 'param' ? 'param' : 'auto';\n },\n};\n","import {config} from 'core/config';\nimport Modal from 'bootstrap/js/dist/modal';\n\nexport const formFoundError = {\n updateCaptcha: function() {\n const date = new Date();\n const captchaImg = document.querySelector('.js-foundError-captcha');\n captchaImg.setAttribute('src', `/kcaptcha/imgc.php?d=${date.getTime()}`);\n },\n init: () => {\n // обновление капчи в форме \"Ðашли ошибку?\"\n const $linkCaptchaUpdate = document.querySelector('.js-foundError-captcha-update');\n if ($linkCaptchaUpdate !== null) {\n $linkCaptchaUpdate.addEventListener('click', () => {\n formFoundError.updateCaptcha();\n });\n }\n\n // отправка формы \"Ðашли ошибку?\"\n const buttonSendError = document.querySelector('.sendFoundError');\n if (buttonSendError !== null) {\n const formFoundError = document.querySelector('#autoSearchFeedback');\n buttonSendError.addEventListener('click', function(event) {\n event.preventDefault();\n document.querySelectorAll('#autoSearchFeedback .is-invalid').forEach(function(input) {\n input.classList.remove('is-invalid');\n });\n if (Nette.validateForm(formFoundError)) {\n const formData = new FormData(formFoundError);\n config.post('/AutoSearchCategorys/actionAutoSearchFeedback.php', formData).then((response) => {\n if (response.result) {\n alert('Ваше Ñообщение об ошибке отправлено. СпаÑибо за Ваше внимание.');\n const $modal = document.querySelector('.substrateFoundErrorDialog');\n const modalInstance = Modal.getOrCreateInstance($modal);\n modalInstance.hide();\n return false;\n } else {\n if (response.containers.length > 0) {\n response.containers.forEach(function(container) {\n document.querySelector('#autoSearchFeedback [name=\"' + container + '\"]').classList.add('is-invalid');\n });\n }\n }\n });\n }\n });\n }\n },\n};\n","import './index.scss';\nimport Tab from 'bootstrap/js/dist/tab';\n\nimport { config } from 'core/config';\nimport { sideFilter } from 'modules/sideFilter';\nimport { productItem } from 'modules/productItem';\nimport { search } from './search';\nimport { selectionByCar } from './selectionByCar';\nimport { formFoundError } from './formFoundError';\nimport { fitMapPodbor } from 'modules/fitMapPodbor';\n\nconst SELECT = {\n 'searchButton': '.mainSearchbar__tab-content .mainSearchbar__button-submit',\n 'switchLinkSelector': '.js-car-switch__link',\n 'tabToggleSelector': '#mainSearchbarTabs a[data-bs-toggle=\"tab\"]',\n 'navLinkSelector': '.active .mainSearchbar__content-nav-link',\n 'searchForm': 'form.searchForm',\n 'searchParamsSort': '#searchParamsSort',\n 'searchParamsSortOrder': '#searchParamsSortOrder',\n 'searchContainer': '.items__items',\n 'sortItem': '.items-sort__item',\n 'sparka': '.sparka',\n 'tooltip': '#collapseSideFilter .tooltip.show',\n 'activeSearchType': '.tabSearchParams.active a.active[data-bs-toggle=\"tab\"][data-switch]',\n};\n\nwindow.SIZES_WAS_LOADED = false;\n\nexport const mainSearchbar = {\n init: function () {\n mainSearchbar.bindEvents();\n search.bindEvents();\n search.initBarajaSliders();\n selectionByCar.bindEvents();\n productItem.init();\n selectionByCar.loadSizes();\n mainSearchbar.bindSparkaInputs();\n mainSearchbar.bindNotSparkaInputs();\n formFoundError.init();\n this.processHash();\n\n let tabName = '';\n const activeTab = document.querySelector(`${SELECT.tabToggleSelector}.active`);\n if (activeTab !== null) {\n tabName = activeTab.getAttribute('id');\n }\n if (tabName === 'tab-services') {\n const $sliderArticles = document.querySelector('.sliderArticles');\n if ($sliderArticles !== null) {\n $sliderArticles.style.display = 'none';\n }\n fitMapPodbor.init();\n }\n const sparkaCheckbox = document.querySelector('.sparka-checkbox input[checked]');\n const filterTab = document.querySelector('.sideFilter__' + tabName);\n\n if (sideFilter.wasInited.indexOf(filterTab) < 0) {\n sideFilter.initSlider(`.sideFilter__${tabName}`);\n }\n if (sparkaCheckbox !== null) {\n sparkaCheckbox.closest('.sparka-checkbox').classList.add('sparka-checkbox--all');\n }\n },\n bindEvents: function () {\n Array.from(document.querySelectorAll('#mainSearchbarTabs a[data-bs-toggle=\"tab\"]'))\n .forEach((element) => element.addEventListener('shown.bs.tab', function (event) {\n event.preventDefault();\n history.pushState({}, '', '#' + event.target.getAttribute('data-id'));\n }));\n\n // подбор / шины / диÑки / датчики давлениÑ\n const tabToggleSelector = document.querySelectorAll(SELECT.tabToggleSelector);\n tabToggleSelector.forEach((tab) => {\n tab.addEventListener('shown.bs.tab', function () {\n sideFilter.hideAllTooltips();\n const tabName = this.id;\n const searchForm = document.querySelector(SELECT.searchForm);\n const $sideFilterCurrent = document.querySelector(`.sideFilter__${tabName}`);\n const $$sideFilter = document.querySelectorAll('.sideFilter');\n $$sideFilter.forEach((element) => {\n element.style.display = 'none';\n });\n if (tabName === 'tab-services') {\n document.getElementById('rightBarPodbor').style.display = 'none';\n } else {\n document.getElementById('rightBarPodbor').style.display = 'block';\n }\n $sideFilterCurrent.style.display = '';\n\n const filterTab = document.querySelector('.sideFilter__' + tabName);\n if (sideFilter.wasInited.indexOf(filterTab) < 0) {\n sideFilter.initSlider(`.sideFilter__${tabName}`);\n }\n const searchType = document.querySelector('.tabSearchParams.active').dataset.type;\n const dataSearch = document.querySelector(SELECT.activeSearchType)?.dataset.switch || 'param';\n searchForm.dataset.type = searchType;\n searchForm.dataset.search = dataSearch;\n if (dataSearch === 'param') {\n document.querySelector(SELECT.searchButton).hidden = false;\n }\n selectionByCar.showAutoResults();\n });\n });\n\n // авто / параметры\n const $$switchLinkSelector = document.querySelectorAll(SELECT.switchLinkSelector);\n $$switchLinkSelector.forEach((element) => {\n element.addEventListener('click', () => {\n const dataSwitch = element.dataset.switch;\n document.querySelector(SELECT.searchForm).dataset.search = dataSwitch;\n const $navLink = document.querySelector(SELECT.navLinkSelector + '[data-switch=' + dataSwitch + ']');\n if ($navLink !== null) {\n const navLinkInstance = Tab.getOrCreateInstance($navLink);\n navLinkInstance.show();\n $$switchLinkSelector.forEach((element) => {\n element.style.display = (element.style.display == 'none') ? '' : 'none';\n });\n selectionByCar.searchButtonVisible();\n }\n });\n });\n\n const $$switchLinks = document.querySelectorAll('a[data-bs-toggle=\"tab\"][data-switch]');\n $$switchLinks.forEach((element) => {\n element.addEventListener('click', () => {\n const dataSwitch = element.dataset.switch;\n document.querySelector(SELECT.searchForm).dataset.search = dataSwitch;\n\n // const showTab = document.querySelector(SELECT.navLinkSelector + '[data-switch=' + dataSwitch + ']');\n // const tab = new bootstrap.Tab(showTab);\n // tab.show();\n // $(SELECT.navLinkSelector + '[data-switch=' + dataSwitch + ']').tab('show'); // bootstrap\n $$switchLinkSelector.forEach((element) => {\n element.style.display = (element.style.display == 'none') ? '' : 'none';\n });\n const $$switchImages = document.querySelectorAll(SELECT.switchLinkSelector);\n const dataSwitchLink = config.getFirstVisibleElement($$switchImages).dataset.switch;\n const activeTab = document.querySelector('.tabSearchParams.active').dataset.type;\n const $activeSearchResult = document.querySelector(`.${activeTab}SearchResult`);\n const $$searchBarByCar = document.querySelectorAll('.searchbar__search-by-car');\n if (dataSwitch == 'param') {\n $$searchBarByCar.forEach((element) => {\n element.style.display = 'none';\n });\n } else {\n if (SIZES_WAS_LOADED == true) {\n if ($activeSearchResult) {\n $activeSearchResult.style.display = '';\n }\n }\n }\n if (dataSwitch == dataSwitchLink) {\n $$switchLinkSelector.forEach((element) => {\n element.style.display = (element.style.display == 'none') ? '' : 'none';\n });\n }\n selectionByCar.searchButtonVisible();\n });\n });\n\n // Ñортировка выдачи поиÑка\n const sortItem = document.querySelectorAll(SELECT.sortItem);\n const searchContainer = document.querySelector(SELECT.searchContainer);\n if (sortItem !== null) {\n sortItem.forEach((element) => {\n element.addEventListener('click', () => {\n let sort = element.dataset.sort;\n const sortType = element.dataset.sorttype;\n if (element.classList.contains('active')) {\n sort = parseInt(sort) * -1;\n } else {\n sort = element.dataset.defsort;\n sortItem.forEach((element) => {\n element.classList.remove('active');\n });\n element.classList.add('active');\n searchContainer.dataset.sorttype = sortType;\n }\n element.dataset.sort = sort;\n searchContainer.dataset.sort = sort;\n document.querySelector(SELECT.searchParamsSort).value = sortType;\n document.querySelector(SELECT.searchParamsSortOrder).value = sort > 0 ? 'asc' : 'desc';\n });\n });\n }\n\n const $$diffTyres = document.querySelectorAll('.js-diffTyres');\n const $$removeDiffTyres = document.querySelectorAll('.js-removeDiffTyres');\n\n if ($$diffTyres.length > 0) {\n $$diffTyres.forEach(($diffTyres) => {\n if ($diffTyres !== null) {\n $diffTyres.addEventListener('click', function () {\n document.querySelectorAll('.js-wideTyres select').forEach((el) => {\n el.disabled = false;\n });\n document.querySelectorAll('.js-removeDiffTyres').forEach((el) => {\n el.style.display = '';\n });\n document.querySelector('.js-wideTyres').style.display = '';\n document.querySelector('.js-diffTyres').style.display = 'none';\n document.querySelector('.js-diffTyres2').style.display = '';\n });\n }\n });\n }\n\n if ($$removeDiffTyres.length > 0) {\n $$removeDiffTyres.forEach(($removeDiffTyres) => {\n if ($removeDiffTyres !== null) {\n $removeDiffTyres.addEventListener('click', function () {\n document.querySelectorAll('.js-wideTyres select').forEach((el) => {\n el.disabled = true;\n });\n document.querySelectorAll('.js-removeDiffTyres').forEach((el) => {\n el.style.display = 'none';\n });\n document.querySelector('.js-wideTyres').style.display = 'none';\n document.querySelector('.js-diffTyres').style.display = '';\n const diffTyres = document.querySelector('.js-diffTyres2');\n if (diffTyres) {\n diffTyres.style.display = 'none';\n }\n });\n }\n });\n }\n\n },\n processHash: function() {\n if (window.location.hash.length > 0) {\n const tabId = window.location.hash;\n this.openTab(tabId);\n }\n },\n openTab: function(id) {\n if (Array.from(id)[0] === '#') {\n id = id.substring(1);\n }\n id = id.replace(/[^a-zA-Z0-9-_#]/g, '');\n const tabInstanse = document.querySelector(`.mainSearchbar__nav-link[data-id=${id}]`);\n if (tabInstanse !== null) {\n const tab = Tab.getOrCreateInstance(tabInstanse);\n tab.show();\n }\n },\n bindSparkaInputs: function () {\n const sparkaInputs = document.querySelectorAll(SELECT.sparka);\n if (sparkaInputs.length > 0) {\n sparkaInputs.forEach((el) => {\n el.addEventListener('click', () => {\n const pair = el.getAttribute('pair_id');\n const checkedInputs = document.querySelectorAll('.sparka-checkbox');\n const sparkasPair = document.querySelectorAll('.sparka' + pair);\n const mainSparkasPair = document.querySelectorAll('.main_sparka' + pair);\n sparkasPair.forEach((elementSp) => {\n elementSp.checked = el.checked;\n });\n mainSparkasPair.forEach((elementMsp) => {\n elementMsp.checked = el.checked;\n });\n checkedInputs.forEach((element) => {\n if (element.querySelector('.sparka').checked) {\n document.querySelectorAll('.podbor_block .notSpark').forEach(($notSpark) => {\n const $notSparkCheckbox = $notSpark.querySelector('input[type=\"checkbox\"]');\n if ($notSparkCheckbox) {\n $notSparkCheckbox.checked = false;\n }\n });\n element.classList.add('sparka-checkbox--all');\n } else {\n element.classList.remove('sparka-checkbox--all');\n }\n });\n });\n });\n }\n },\n bindNotSparkaInputs: function () {\n const $$checkboxes = document.querySelectorAll('.podbor_block .notSpark');\n $$checkboxes.forEach(($checkbox) => {\n $checkbox.addEventListener('click', function () {\n document.querySelectorAll('.podbor_block .sparka').forEach(($sparka) => {\n if ($sparka) {\n $sparka.checked = false;\n }\n });\n document.querySelectorAll('.podbor_block .sparka-checkbox--all').forEach(($sparkaAll) => {\n if ($sparkaAll) {\n $sparkaAll.classList.remove('sparka-checkbox--all');\n }\n });\n });\n });\n },\n};","import { config } from 'core/config';\nimport { collectForm } from './collectForm';\nimport { spinner } from 'modules/spinner';\nimport { widgetSlider } from 'modules/sliders/widgetSlider';\nimport Tooltip from 'bootstrap/js/dist/tooltip';\nimport Popover from 'bootstrap/js/dist/popover';\nimport { productItem } from 'modules/productItem';\nimport { fitMapPodbor } from 'modules/fitMapPodbor';\nimport { restListPopover } from 'modules/restListPopovers';\n\n\nconst SELECT = {\n 'searchForm': 'form.searchForm',\n 'searchResult': '#searchResult',\n 'countStr': '.count-of-found',\n 'tooltip': '#collapseSideFilter .tooltip.show',\n 'tooltipInner': '.tooltip.show .tooltip-inner',\n 'sortItem': '.items-sort__item',\n};\n\nlet CURRENT_PAGE = 1;\nconst SEARCH_RESULT = document.querySelector(SELECT.searchResult);\n\nexport const search = {\n init: () => {\n let paramsCurrentForm;\n if (document.querySelector('.searchPriority') !== null) {\n paramsCurrentForm = collectForm('.searchPriority');\n } else {\n paramsCurrentForm = collectForm('.sideFilter');\n }\n const paramsMainSearch = collectForm('.mainSearchForm');\n for (const pair of paramsCurrentForm.entries()) {\n paramsMainSearch.set(pair[0], pair[1]);\n }\n paramsMainSearch.set('page', CURRENT_PAGE);\n\n const $itemsSortRow = document.querySelector('.items-sort-row');\n const $h1Results = document.querySelector('.h1-results');\n const $sliderArticles = document.querySelector('.sliderArticles');\n if ($itemsSortRow && paramsMainSearch.get('thread') !== 'services') {\n $itemsSortRow.style.display = 'flex';\n } else {\n if ($itemsSortRow) $itemsSortRow.style.display = 'none';\n SEARCH_RESULT.innerHTML = '';\n if ($h1Results) {\n $h1Results.style.display = 'none';\n }\n }\n if ($sliderArticles !== null && paramsMainSearch.get('thread') !== 'services') {\n $sliderArticles.style.display = 'none';\n }\n const nextButton = document.querySelector('.doSearch_next');\n const spinnerPlace = document.querySelector('.spinner-place');\n const $pagination = document.querySelector('.hasPagination');\n if (nextButton !== null) {\n nextButton.disabled = true;\n spinner.show(spinnerPlace, 28);\n }\n if (paramsMainSearch.get('page') && paramsMainSearch.get('thread') !== 'services') {\n SEARCH_RESULT.innerHTML = '';\n spinner.show(SEARCH_RESULT, 50);\n } else {\n if ($pagination !== null) {\n spinner.show(SEARCH_RESULT, 50);\n } else {\n spinner.show(spinnerPlace, 28);\n }\n }\n\n if (paramsMainSearch.get('url') === null) paramsMainSearch.set('url', '/catalog/search/');\n search.mobileLoader();\n\n config.get(paramsMainSearch.get('url'), paramsMainSearch).then((result) => {\n if (paramsMainSearch.get('thread') === 'services') {\n const invalids = document.querySelectorAll('#navServicesContentParam .is-invalid');\n invalids.forEach(function (el) {\n el.classList.remove('is-invalid');\n });\n if (result.res === 'false') {\n result.errors.forEach(function (el) {\n document.querySelector('#navServicesContentParam select[name=\"' + el + '\"]').classList.add('is-invalid');\n });\n return false;\n }\n if ($sliderArticles !== null) {\n $sliderArticles.style.display = 'none';\n }\n }\n if (result.template) {\n if (result.meta) {\n const $h1 = document.querySelector('.h1-results h1');\n if ($h1) {\n $h1.textContent = result.meta;\n }\n }\n const $$bItems = document.querySelectorAll('.b-item__container:not(.b-item--loaded)');\n if ($$bItems.length > 0) {\n $$bItems.forEach((el) => {\n el.classList.add('b-item--loaded');\n });\n }\n if (CURRENT_PAGE > 1) {\n SEARCH_RESULT.insertAdjacentHTML('beforeend', result.template);\n } else {\n SEARCH_RESULT.innerHTML = result.template;\n }\n const $countStr = document.querySelector(SELECT.countStr);\n if ($countStr) {\n document.querySelector(SELECT.countStr).innerHTML = result.count;\n }\n if (document.querySelector('.dontchangeurl') == null || document.querySelector('.adaptivePagination')) {\n history.pushState({}, document.title, result.url);\n }\n if (paramsMainSearch.get('page') !== '1') {\n spinner.hide(SEARCH_RESULT);\n }\n console.log('results was loaded');\n restListPopover.initPopoverListener();\n widgetSlider.init();\n const linkShowAllModels = document.querySelector('.showAllModelsButton');\n if (linkShowAllModels !== null) {\n linkShowAllModels.remove();\n }\n window.lazyload();\n if (paramsMainSearch.get('page') !== '1') {\n const nextButton = document.querySelector('.doSearch_next');\n if (nextButton !== null) {\n spinner.hide(spinnerPlace);\n nextButton.closest('.items__showmore').remove();\n }\n }\n search.mobileLoader(true);\n productItem.setCompareStatus();\n restListPopover.loadRests();\n if (paramsMainSearch.get('thread') === 'services') {\n fitMapPodbor.init();\n }\n }\n });\n },\n bindEvents: () => {\n const sortButtons = document.querySelectorAll(SELECT.sortItem);\n sortButtons.forEach((form) => {\n form.addEventListener('click', (event) => {\n CURRENT_PAGE = 1;\n search.init();\n return false;\n });\n });\n const searchForm = document.querySelectorAll(SELECT.searchForm);\n searchForm.forEach((form) => {\n form.addEventListener('submit', (event) => {\n event.preventDefault();\n CURRENT_PAGE = 1;\n search.init();\n return false;\n });\n });\n document.addEventListener('click', (event) => {\n if (event.target.classList.contains('doSearch_next')) {\n CURRENT_PAGE++;\n search.init();\n search.hideAllPopovers();\n }\n if (event.target.classList.contains('js-page-link')) {\n document.getElementById('searchResult').innerHTML = '';\n CURRENT_PAGE = event.target.dataset.page;\n document.querySelector('.items-sort-row').scrollIntoView({\n block: 'center',\n behavior: 'smooth',\n });\n search.init();\n search.hideAllPopovers();\n }\n if (event.target.classList.contains('tooltip-inner')) {\n search.hideAllTooltips();\n CURRENT_PAGE = 1;\n search.init();\n }\n });\n },\n getCount: () => {\n const byFormArray = document.querySelectorAll(SELECT.searchForm);\n const byForm = config.getFirstVisibleElement(byFormArray);\n const paramsMainSearch = collectForm('.mainSearchForm');\n const paramsCurrentForm = collectForm('.sideFilter');\n const $buttonSubmit = document.querySelector(`.sideFilter__tab-${byForm.dataset.type} .js-mobile-btn-tooltip`);\n\n for (const pair of paramsCurrentForm.entries()) {\n paramsMainSearch.set(pair[0], pair[1]);\n }\n paramsMainSearch.set('count', true);\n if (byForm.type === 'sensors' && !paramsMainSearch.has('search_modification')) {\n return false; // ???\n }\n console.log('--getting count--');\n if (window.innerWidth <= config.breakpoints.md) {\n $buttonSubmit.innerHTML = `Ищем...
⚙
`;\n }\n config.get('/catalog/search/', paramsMainSearch, 'html').then((answer) => {\n if (window.innerWidth <= config.breakpoints.md) {\n $buttonSubmit.innerHTML = answer;\n } else {\n document.querySelector(SELECT.tooltipInner).innerHTML = answer;\n search.updateTooltips();\n }\n }).catch((error) => {\n if (window.innerWidth <= config.breakpoints.sm) {\n $buttonSubmit.innerHTML = error.message;\n } else {\n document.querySelector(SELECT.tooltipInner).innerHTML = error.message;\n search.updateTooltips();\n }\n });\n document.querySelectorAll('.filterReset').forEach((element) => {\n element.addEventListener('click', () => {\n if (window.innerWidth <= config.breakpoints.md) {\n $buttonSubmit.innerHTML = 'Показать';\n }\n });\n });\n },\n initBarajaSliders: () => {\n widgetSlider.init();\n },\n updateTooltips: function () {\n const $$tooltips = document.querySelectorAll('.sideFilter input');\n $$tooltips.forEach((tooltip) => {\n const instance = Tooltip.getOrCreateInstance(tooltip, { trigger: 'manual' });\n instance.update();\n });\n },\n hideAllTooltips: function () {\n const $$tooltips = document.querySelectorAll('.sideFilter input');\n $$tooltips.forEach((tooltip) => {\n const instance = Tooltip.getOrCreateInstance(tooltip, { trigger: 'manual' });\n instance.hide();\n });\n },\n hideAllPopovers: function () {\n const $$popovers = document.querySelectorAll('[data-bs-toggle=\"popover\"]');\n $$popovers.forEach((popover) => {\n const instance = Popover.getOrCreateInstance(popover, { trigger: 'manual' });\n instance.hide();\n });\n },\n mobileLoader: (isLoad = false) => {\n const $$btnSearch = document.querySelectorAll('.mainSearchbar__button-submit');\n const $countOfFound = document.querySelector('.count-of-found');\n\n if (window.innerWidth < config.breakpoints.md) {\n if (isLoad) {\n $$btnSearch.forEach((element) => {\n element.innerHTML = '
Ðайти
';\n });\n if ($countOfFound !== null && CURRENT_PAGE === 1) {\n $countOfFound.scrollIntoView({\n block: 'start',\n behavior: 'smooth',\n });\n }\n } else {\n $$btnSearch.forEach((element) => {\n element.innerHTML = '
';\n });\n }\n } else {\n if ($countOfFound !== null && CURRENT_PAGE === 1) {\n $countOfFound.scrollIntoView({\n block: 'center',\n behavior: 'smooth',\n });\n }\n }\n },\n};\n","import {config} from 'core/config';\nimport Modal from 'bootstrap/js/dist/modal';\n\nexport const modalAfterAddToCart = {\n config: {\n modalId: 'modalAfterAddToCart',\n },\n get: function() {\n let modal = document.querySelector('#'+ modalAfterAddToCart.config.modalId);\n if (modal === null) {\n const modalTemplate = `\n
\n
\n
\n
\n
\n `;\n document.body.insertAdjacentHTML('beforeend', modalTemplate);\n modal = document.querySelector('#'+ modalAfterAddToCart.config.modalId);\n }\n return modal;\n },\n setContent: function(content) {\n const modal = modalAfterAddToCart.get();\n modal.querySelector('.modal-content').innerHTML = content;\n },\n show: function() {\n const modalNode = Modal.getOrCreateInstance(this.get());\n modalNode.show();\n // this.get().modal('show');\n\n config.moveHeaderWhenModal(true);\n // document.querySelector(`#${this.config.modalId}`).on('hidden.bs.modal', function() {\n // config.moveHeaderWhenModal(false);\n // });\n },\n yaMetrika: function(){\n window.dataLayer = window.dataLayer || [];\n var products = [];\n document.querySelectorAll('meta.addToCartMeta').forEach((element) => {\n products.push({\n \"id\": element.getAttribute('data-id'),\n \"name\": element.getAttribute('data-name'),\n \"price\": element.getAttribute('data-price'),\n \"brand\": element.getAttribute('data-brand'),\n \"category\": element.getAttribute('data-category'),\n \"variant\": element.getAttribute('data-variant'),\n \"quantity\": element.getAttribute('data-quantity')\n })\n });\n window.dataLayer.push({\n \"ecommerce\": {\n \"currencyCode\": \"RUB\",\n \"add\": {\n \"products\": products\n }\n }\n });\n ym(32042756,'reachGoal','ORDER');\n }\n};\n","import './index.scss';\nimport {metricaModule} from 'modules/metrica';\nimport {compareHead} from 'modules/compare-head';\nimport {config} from 'core/config';\nimport {modalAfterAddToCart} from 'modules/modalAfterAddToCart';\nimport {getBadgetInfo} from 'modules/getBadgetInfo';\nimport {getAvailableInfo} from 'modules/getAvailableInfo';\nimport {restListPopover} from 'modules/restListPopovers';\nimport Dropdown from 'bootstrap/js/dist/dropdown';\n\nconst SELECT = {\n 'icon': '.icon-badget',\n 'available': '.b-item__avail-text',\n 'addedToCompare': 'js-added-to-compare',\n 'changeCount': '.js__decrementer, .js__incrementer',\n 'addToCart': '.b-item__wrap .btn-order',\n 'modalDialogData': '#modalDialogData',\n 'modalButtonlShow': '#modalShowButton',\n 'badgeVideoContainer': '.dropdown-menu.show .js-videoContainer',\n};\n\nexport const productItem = {\n init: function() {\n this.bindEvent();\n compareHead.setCompareStatus();\n restListPopover.loadRests();\n restListPopover.initPopoverListener();\n productItem.removePopoversFromStorage();\n },\n bindEvent: function() {\n const searchResult = document.getElementById('searchResult');\n if (searchResult) {\n searchResult.onclick = function(event) {\n let target = event.target;\n\n if (target.classList.contains('b-item__avail-text')) {\n getAvailableInfo(target);\n }\n if (\n target.tagName == 'svg' ||\n target.tagName == 'use' ||\n target.tagName == 'path'\n ) target = target.closest('div');\n\n if (target.classList.contains('js-compare-good')) {\n compareHead.update(target.dataset);\n if (target.dataset.action == 'remove') {\n target.dataset.action = 'add';\n target.classList.remove(SELECT.addedToCompare);\n } else {\n target.dataset.action = 'remove';\n target.classList.add(SELECT.addedToCompare);\n }\n }\n\n if (target.classList.contains('btn-order')) {\n const goodId = target.getAttribute('orderAddGoodId');\n const orderAddCount = target.parentNode.querySelector('.orderAddCount').value;\n const param = {goGoodId: goodId, count: orderAddCount};\n const url = '/Orders/addtocart/';\n config.get(url, param, 'html').then((answer) => {\n console.log('answer getted');\n modalAfterAddToCart.setContent(answer);\n modalAfterAddToCart.show();\n modalAfterAddToCart.yaMetrika();\n common.cartHead.reloadCarts({\n 'reason': 'add',\n 'good_id': goodId,\n });\n metricaModule.sendEvent(metricaModule.getMetricaRegionId(), 'ORDER');\n return false;\n });\n restListPopover.hideActivePopovers();\n }\n\n if (target.classList.contains('icon-badget')) {\n if (target.dataset.badget_type === 'leader') {\n return;\n }\n getBadgetInfo(target);\n }\n\n if (target.classList.contains('js__decrementer') || target.classList.contains('js__incrementer')) {\n productItem.changeCount(target);\n }\n\n if (target.classList.contains('videoContainer__close')) {\n document.querySelector(SELECT.badgeVideoContainer).classList.remove('videoContainer--open');\n document.querySelector(SELECT.badgeVideoContainer).innerHTML = '';\n document.querySelector('.dropdown-menu--video').style.height = 'auto';\n }\n };\n }else{\n const sizePrices = document.getElementById('sizePrices');\n if (sizePrices) {\n sizePrices.onclick = function(event) {\n let target = event.target;\n if (target.classList.contains('b-item__avail-text')) {\n getAvailableInfo(target);\n }\n }\n }\n }\n\n const selection = document.querySelector('.moreTextButton') !== null;\n if (selection) {\n document.querySelector('.moreTextButton').addEventListener('click', function() {\n this.classList.add('d-none');\n const txtBlock = document.querySelector('.moreText-container');\n txtBlock.style.height = 'max-content';\n txtBlock.classList.add('show');\n txtBlock.classList.add('show');\n });\n }\n\n window.addEventListener('show.bs.modal', function() {\n restListPopover.hideActivePopovers();\n });\n },\n changeCount: function(element) {\n const $container = element.closest('.b-item__container');\n const countMin = 0;\n const $input = $container.querySelector('.b-item__quantity');\n const inputValue = parseInt($input.value);\n let dataRest = $input.dataset.rest;\n let count = inputValue == '' ? 0 : inputValue;\n\n if (dataRest === 12) dataRest = 99;\n if (count === countMin) return;\n\n if (element.classList.contains('js__incrementer')) {\n if (inputValue < dataRest) {\n $input.value = ++count;\n }\n } else {\n if (inputValue > 1) {\n $input.value = --count;\n }\n }\n },\n setCompareStatus: function() {\n compareHead.setCompareStatus();\n },\n removePopoversFromStorage: () => {\n Object.keys(localStorage).forEach((key) => {\n if (key.startsWith('popup')) {\n localStorage.removeItem(key);\n }\n });\n },\n};\n","import './index.scss';\nimport {config} from 'core/config';\nimport Popover from 'bootstrap/js/dist/popover';\n\nexport const restListPopover = {\n init: function() {\n restListPopover.loadRests();\n restListPopover.initPopoverListener();\n },\n initPopoverListener: (target) => {\n let popoverOptions = {};\n\n if (window.innerWidth < config.breakpoints.md) {\n popoverOptions = {\n 'html': true,\n 'trigger': 'click',\n 'placement': 'auto',\n };\n } else {\n popoverOptions = {\n 'html': true,\n 'trigger': 'click',\n 'placement': 'right',\n 'fallbackPlacements': ['left', 'right'],\n };\n }\n\n const popoverTriggerList = document.querySelectorAll('.js-rest-list-popovers:not(.b-item--loaded) [data-bs-toggle=\"popover\"]');\n const popoverList = [...popoverTriggerList].map((popoverTriggerEl) => {\n new Popover(popoverTriggerEl, popoverOptions);\n\n popoverTriggerEl.addEventListener('show.bs.popover', (e) => {\n restListPopover.hideActivePopovers();\n });\n popoverTriggerEl.addEventListener('shown.bs.popover', (e) => {\n const $popoverBtn = e.target;\n $popoverBtn.classList.add('active');\n config.moveHeaderWhenModal(true);\n if (window.innerWidth > config.breakpoints.md) {\n document.body.classList.add('body-locked');\n }\n setTimeout(function () {\n const targetData = e.target.dataset;\n const localValue = 'popup-' + targetData.available_type + targetData.item;\n const $popoverHeader = document.querySelector('.available-popover .popover-header');\n const $popoverContent = document.querySelector('.available-popover .popover-body');\n\n if ($popoverHeader) {\n $popoverHeader.addEventListener('click', function (e) {\n document.body.classList.remove('body-locked');\n Popover.getInstance($popoverBtn).hide();\n config.moveHeaderWhenModal(false);\n });\n }\n\n if (localStorage.getItem(localValue) === null) {\n const param = {\n availableType: popoverTriggerEl.dataset.available_type,\n goodId: popoverTriggerEl.dataset.item,\n };\n config.get('/catalog/availableinfo/', param, 'html').then((response) => {\n $popoverContent.innerHTML = response;\n localStorage.setItem(localValue, response);\n Popover.getOrCreateInstance(e.target).update();\n });\n } else {\n $popoverContent.innerHTML = localStorage.getItem(localValue);\n }\n }, 200);\n });\n popoverTriggerEl.addEventListener('hide.bs.popover', (e) => {\n if (window.innerWidth > config.breakpoints.md) {\n document.body.classList.remove('body-locked');\n }\n });\n });\n },\n hideActivePopovers: () => {\n const popoverSelector = '.js-rest-list-popovers [data-bs-toggle=\"popover\"]';\n const $$popoverBtnActive = document.querySelectorAll(`${popoverSelector}.active`);\n if ($$popoverBtnActive.length > 0) {\n $$popoverBtnActive.forEach((el) => {\n Popover.getInstance(el).hide();\n el.classList.remove('active');\n });\n };\n },\n loadRests: () => {\n const ids = {};\n document.querySelectorAll('.js-rest-list-popovers.needrests').forEach((el) => {\n const id = el.getAttribute('itemId');\n ids[id] = id;\n });\n config.get('/catalog/availablesbygoods/', { 'goodIds': JSON.stringify(ids) }).then((response) => {\n if (response.length > 0) {\n response.forEach((goodInfo) => {\n const $$goodBlocks = document.querySelectorAll(`.js-rest-list-popovers[itemId=\"${goodInfo.good_id}\"]`);\n $$goodBlocks.forEach(($goodBlock) => {\n $goodBlock.classList.remove('needrests');\n if (goodInfo.stock) {\n $goodBlock.querySelector('.availabilityBlock.stockAvailability').setAttribute('data-available', goodInfo.maxStock);\n $goodBlock.querySelector('.availabilityBlock.stockAvailability .stockShopsCount').innerHTML = goodInfo.stock;\n $goodBlock.querySelector('.availabilityBlock.stockAvailability .stockShopsNames').innerHTML = goodInfo.pointNameStock;\n } else {\n $goodBlock.querySelector('.availabilityBlock.stockAvailability').classList.add('d-none');\n }\n if (goodInfo.delivery) {\n $goodBlock.querySelector('.availabilityBlock.deliveryAvailability').setAttribute('data-available', goodInfo.maxDelivery);\n $goodBlock.querySelector('.availabilityBlock.deliveryAvailability .deliveryShopsCount').innerHTML = goodInfo.delivery;\n $goodBlock.querySelector('.availabilityBlock.deliveryAvailability .deliveryLength').innerHTML = goodInfo.minDeliveryLogist;\n $goodBlock.querySelector('.availabilityBlock.deliveryAvailability .deliveryShopsNames').innerHTML = goodInfo.pointNameDelivery;\n $goodBlock.querySelector('.availabilityBlock.deliveryAvailability .deliveryLengthNames').innerHTML = goodInfo.daysNameDelivery;\n } else {\n $goodBlock.querySelector('.availabilityBlock.deliveryAvailability').classList.add('d-none');\n }\n if (goodInfo.tk) {\n $goodBlock.querySelector('.availabilityBlock.tkAvailability').setAttribute('data-available', goodInfo.maxTk);\n $goodBlock.querySelector('.availabilityBlock.tkAvailability .tkShopsCount').innerHTML = goodInfo.tk;\n $goodBlock.querySelector('.availabilityBlock.tkAvailability .tkLength').innerHTML = goodInfo.minTkLogist;\n $goodBlock.querySelector('.availabilityBlock.tkAvailability .tkShopsNames').innerHTML = goodInfo.pointNameTK;\n $goodBlock.querySelector('.availabilityBlock.tkAvailability .tkLengthNames').innerHTML = goodInfo.daysNameTK;\n } else {\n $goodBlock.querySelector('.availabilityBlock.tkAvailability').classList.add('d-none');\n }\n });\n });\n }\n });\n },\n};\n","/* NO JQUERY */\nimport './index.scss';\n\nimport {config} from 'core/config';\nimport Tooltip from 'bootstrap/js/dist/tooltip';\nimport {search} from 'modules/mainSearchbar/search';\nimport {collapseSideFilter} from 'modules/collapseSideFilter';\nimport Popover from 'bootstrap/js/dist/popover';\n\nconst SELECT = {\n 'sliderTyres': '.sideFilter__tab-tyres',\n 'sliderDisks': '.sideFilter__tab-disks',\n 'priceSlider': '.sideFilter__price-slider',\n 'priceInput': '.js-sideFilter__price-input',\n 'priceFrom': '#sideFilter__price-from',\n 'priceTo': '#sideFilter__price-to',\n 'tooltip': '.tooltip.show',\n 'filterReset': '.filterReset',\n};\n\nexport const sideFilter = {\n wasInited: [],\n init: function() {\n const obj = this;\n collapseSideFilter();\n obj.bindEvents();\n obj.initSlider();\n obj.initPopovers();\n },\n initPopovers: () => {\n const popoverTriggerList = document.querySelectorAll('[data-bs-toggle=\"popover\"][data-bs-trigger=\"hover focus\"]');\n const popoverList = [...popoverTriggerList].map((popoverTriggerEl) => new Popover(popoverTriggerEl));\n },\n setCompareStatus: function () {\n compareHead.setCompareStatus();\n productItem.initPopovers();\n },\n bindEvents: function() {\n document.querySelectorAll('.sideFilter input').forEach(element => {\n element.addEventListener('change', () => {\n if (element.type === 'checkbox' && [460, 1084544].includes(+element.value)) {\n const secondPartner = document.querySelector(`.sideFilter input#qb${element.value === '460' ? '1084544' : '460'}`);\n if (secondPartner !== null) {\n secondPartner.checked = element.checked;\n }\n }\n let $container = element.closest('.searchForm');\n if ($container === null) $container = false;\n sideFilter.hideAllTooltips();\n const tooltip = new Tooltip(element, {\n trigger: 'manual',\n placement: 'left',\n html: true,\n container: $container,\n title: `Ищем..
⚙
`, boundary: document.body // or document.querySelector('#boundary')\n });\n tooltip.show();\n search.getCount(element);\n })\n });\n // reset filter\n if (document.querySelector(SELECT.filterReset) !== null) {\n document.querySelector(SELECT.filterReset).addEventListener('click', function(event) {\n const form = this.closest('form');\n const arrayInputs = form.querySelectorAll('input');\n \n arrayInputs.forEach(element => {\n if(element.type === 'checkbox' && element.checked) {\n element.checked = false;\n } else if (element.type === 'radio') {\n if (element.classList.contains('defaultValue')) {\n element.checked = true;\n } else {\n element.checked = false;\n }\n } else {\n if(element.name !== 'thread') {\n element.value = '';\n }\n }\n });\n sideFilter.hideAllTooltips();\n });\n }\n const searchbarSizes = document.querySelector('.searchbar-sizes');\n if (searchbarSizes) {\n searchbarSizes.addEventListener('submit', function(e) {\n e.preventDefault();\n const formData = new FormData(this);\n for (var pair of formData.entries()) {\n const sideBarHiddenInput = document.querySelector(`.doSearchForm_additionalParams input[name=\"${pair[0]}\"]`);\n if (sideBarHiddenInput) {\n sideBarHiddenInput.value = pair[1];\n };\n };\n search.init();\n });\n };\n },\n initSlider: function(sliderParent = SELECT.sliderTyres) {\n const sliderPrice = document.querySelector(sliderParent + ' ' + SELECT.priceSlider) || 0;\n const priceFrom = document.querySelector(sliderParent + ' ' + SELECT.priceFrom);\n const priceTo = document.querySelector(sliderParent + ' ' + SELECT.priceTo);\n const minDiskCost = controllerConfigHead.get('minDiskCost');\n const maxDiskCost = controllerConfigHead.get('maxDiskCost');\n const minTyreCost = controllerConfigHead.get('minTyreCost');\n const maxTyreCost = controllerConfigHead.get('maxTyreCost');\n\n if (sliderPrice) {\n let minCost = parseInt(minTyreCost);\n let maxCost = parseInt(maxTyreCost);\n\n if (sliderParent == SELECT.sliderDisks) {\n minCost = parseInt(minDiskCost);\n maxCost = parseInt(maxDiskCost);\n }\n\n let isSliderInit = false;\n if (sliderPrice.length > 0) {\n isSliderInit = sliderPrice.classList.contains('noUi-target');\n } else {\n isSliderInit = true;\n }\n\n import('nouislider')\n .then(noUiSlider => {\n if (isSliderInit) {\n noUiSlider.create(sliderPrice, {\n start: [minCost, maxCost],\n connect: true,\n range: {\n 'min': minCost,\n 'max': maxCost,\n },\n pips: {\n mode: 'count',\n values: 5,\n density: 4,\n },\n });\n\n sliderPrice.noUiSlider.on('update', function (values, handle) {\n const value = Math.round(values[handle]);\n\n if (handle) {\n priceTo.value = value;\n } else {\n priceFrom.value = value;\n }\n });\n sliderPrice.noUiSlider.on('change', function () {\n let $container = sliderPrice.closest('.searchForm');\n if ($container === null) $container = false;\n sideFilter.hideAllTooltips();\n const tooltip = new Tooltip(sliderPrice, {\n trigger: 'manual',\n placement: 'left',\n html: true,\n container: $container,\n title: `Ищем..
⚙
`,\n });\n sideFilter.hideAllTooltips();\n tooltip.show();\n search.getCount();\n });\n\n priceFrom.addEventListener('change', function () {\n sliderPrice.noUiSlider.set([this.value, null]);\n });\n priceTo.addEventListener('change', function () {\n sliderPrice.noUiSlider.set([null, this.value]);\n });\n }\n })\n .catch(err => {\n main.textContent = err.message;\n });\n }\n // sideFilter.hideAllTooltips();\n sideFilter.wasInited.push(sliderParent);\n },\n hideAllTooltips: function() {\n const $$tooltips = document.querySelectorAll(`.sideFilter input, ${SELECT.priceSlider}`);\n $$tooltips.forEach((tooltip) => {\n const instance = Tooltip.getOrCreateInstance(tooltip, {trigger: 'manual'});\n instance.hide();\n });\n },\n};\n","/**\n * base64.ts\n *\n * Licensed under the BSD 3-Clause License.\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * References:\n * http://en.wikipedia.org/wiki/Base64\n *\n * @author Dan Kogai (https://github.com/dankogai)\n */\nconst version = '3.7.2';\n/**\n * @deprecated use lowercase `version`.\n */\nconst VERSION = version;\nconst _hasatob = typeof atob === 'function';\nconst _hasbtoa = typeof btoa === 'function';\nconst _hasBuffer = typeof Buffer === 'function';\nconst _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined;\nconst _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined;\nconst b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst b64chs = Array.prototype.slice.call(b64ch);\nconst b64tab = ((a) => {\n let tab = {};\n a.forEach((c, i) => tab[c] = i);\n return tab;\n})(b64chs);\nconst b64re = /^(?:[A-Za-z\\d+\\/]{4})*?(?:[A-Za-z\\d+\\/]{2}(?:==)?|[A-Za-z\\d+\\/]{3}=?)?$/;\nconst _fromCC = String.fromCharCode.bind(String);\nconst _U8Afrom = typeof Uint8Array.from === 'function'\n ? Uint8Array.from.bind(Uint8Array)\n : (it, fn = (x) => x) => new Uint8Array(Array.prototype.slice.call(it, 0).map(fn));\nconst _mkUriSafe = (src) => src\n .replace(/=/g, '').replace(/[+\\/]/g, (m0) => m0 == '+' ? '-' : '_');\nconst _tidyB64 = (s) => s.replace(/[^A-Za-z0-9\\+\\/]/g, '');\n/**\n * polyfill version of `btoa`\n */\nconst btoaPolyfill = (bin) => {\n // console.log('polyfilled');\n let u32, c0, c1, c2, asc = '';\n const pad = bin.length % 3;\n for (let i = 0; i < bin.length;) {\n if ((c0 = bin.charCodeAt(i++)) > 255 ||\n (c1 = bin.charCodeAt(i++)) > 255 ||\n (c2 = bin.charCodeAt(i++)) > 255)\n throw new TypeError('invalid character found');\n u32 = (c0 << 16) | (c1 << 8) | c2;\n asc += b64chs[u32 >> 18 & 63]\n + b64chs[u32 >> 12 & 63]\n + b64chs[u32 >> 6 & 63]\n + b64chs[u32 & 63];\n }\n return pad ? asc.slice(0, pad - 3) + \"===\".substring(pad) : asc;\n};\n/**\n * does what `window.btoa` of web browsers do.\n * @param {String} bin binary string\n * @returns {string} Base64-encoded string\n */\nconst _btoa = _hasbtoa ? (bin) => btoa(bin)\n : _hasBuffer ? (bin) => Buffer.from(bin, 'binary').toString('base64')\n : btoaPolyfill;\nconst _fromUint8Array = _hasBuffer\n ? (u8a) => Buffer.from(u8a).toString('base64')\n : (u8a) => {\n // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326\n const maxargs = 0x1000;\n let strs = [];\n for (let i = 0, l = u8a.length; i < l; i += maxargs) {\n strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs)));\n }\n return _btoa(strs.join(''));\n };\n/**\n * converts a Uint8Array to a Base64 string.\n * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5\n * @returns {string} Base64 string\n */\nconst fromUint8Array = (u8a, urlsafe = false) => urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const utob = (src: string) => unescape(encodeURIComponent(src));\n// reverting good old fationed regexp\nconst cb_utob = (c) => {\n if (c.length < 2) {\n var cc = c.charCodeAt(0);\n return cc < 0x80 ? c\n : cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6))\n + _fromCC(0x80 | (cc & 0x3f)))\n : (_fromCC(0xe0 | ((cc >>> 12) & 0x0f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n else {\n var cc = 0x10000\n + (c.charCodeAt(0) - 0xD800) * 0x400\n + (c.charCodeAt(1) - 0xDC00);\n return (_fromCC(0xf0 | ((cc >>> 18) & 0x07))\n + _fromCC(0x80 | ((cc >>> 12) & 0x3f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n};\nconst re_utob = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFFF]|[^\\x00-\\x7F]/g;\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-8 string\n * @returns {string} UTF-16 string\n */\nconst utob = (u) => u.replace(re_utob, cb_utob);\n//\nconst _encode = _hasBuffer\n ? (s) => Buffer.from(s, 'utf8').toString('base64')\n : _TE\n ? (s) => _fromUint8Array(_TE.encode(s))\n : (s) => _btoa(utob(s));\n/**\n * converts a UTF-8-encoded string to a Base64 string.\n * @param {boolean} [urlsafe] if `true` make the result URL-safe\n * @returns {string} Base64 string\n */\nconst encode = (src, urlsafe = false) => urlsafe\n ? _mkUriSafe(_encode(src))\n : _encode(src);\n/**\n * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5.\n * @returns {string} Base64 string\n */\nconst encodeURI = (src) => encode(src, true);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const btou = (src: string) => decodeURIComponent(escape(src));\n// reverting good old fationed regexp\nconst re_btou = /[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}/g;\nconst cb_btou = (cccc) => {\n switch (cccc.length) {\n case 4:\n var cp = ((0x07 & cccc.charCodeAt(0)) << 18)\n | ((0x3f & cccc.charCodeAt(1)) << 12)\n | ((0x3f & cccc.charCodeAt(2)) << 6)\n | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000;\n return (_fromCC((offset >>> 10) + 0xD800)\n + _fromCC((offset & 0x3FF) + 0xDC00));\n case 3:\n return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12)\n | ((0x3f & cccc.charCodeAt(1)) << 6)\n | (0x3f & cccc.charCodeAt(2)));\n default:\n return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6)\n | (0x3f & cccc.charCodeAt(1)));\n }\n};\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-16 string\n * @returns {string} UTF-8 string\n */\nconst btou = (b) => b.replace(re_btou, cb_btou);\n/**\n * polyfill version of `atob`\n */\nconst atobPolyfill = (asc) => {\n // console.log('polyfilled');\n asc = asc.replace(/\\s+/g, '');\n if (!b64re.test(asc))\n throw new TypeError('malformed base64.');\n asc += '=='.slice(2 - (asc.length & 3));\n let u24, bin = '', r1, r2;\n for (let i = 0; i < asc.length;) {\n u24 = b64tab[asc.charAt(i++)] << 18\n | b64tab[asc.charAt(i++)] << 12\n | (r1 = b64tab[asc.charAt(i++)]) << 6\n | (r2 = b64tab[asc.charAt(i++)]);\n bin += r1 === 64 ? _fromCC(u24 >> 16 & 255)\n : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255)\n : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255);\n }\n return bin;\n};\n/**\n * does what `window.atob` of web browsers do.\n * @param {String} asc Base64-encoded string\n * @returns {string} binary string\n */\nconst _atob = _hasatob ? (asc) => atob(_tidyB64(asc))\n : _hasBuffer ? (asc) => Buffer.from(asc, 'base64').toString('binary')\n : atobPolyfill;\n//\nconst _toUint8Array = _hasBuffer\n ? (a) => _U8Afrom(Buffer.from(a, 'base64'))\n : (a) => _U8Afrom(_atob(a), c => c.charCodeAt(0));\n/**\n * converts a Base64 string to a Uint8Array.\n */\nconst toUint8Array = (a) => _toUint8Array(_unURI(a));\n//\nconst _decode = _hasBuffer\n ? (a) => Buffer.from(a, 'base64').toString('utf8')\n : _TD\n ? (a) => _TD.decode(_toUint8Array(a))\n : (a) => btou(_atob(a));\nconst _unURI = (a) => _tidyB64(a.replace(/[-_]/g, (m0) => m0 == '-' ? '+' : '/'));\n/**\n * converts a Base64 string to a UTF-8 string.\n * @param {String} src Base64 string. Both normal and URL-safe are supported\n * @returns {string} UTF-8 string\n */\nconst decode = (src) => _decode(_unURI(src));\n/**\n * check if a value is a valid Base64 string\n * @param {String} src a value to check\n */\nconst isValid = (src) => {\n if (typeof src !== 'string')\n return false;\n const s = src.replace(/\\s+/g, '').replace(/={0,2}$/, '');\n return !/[^\\s0-9a-zA-Z\\+/]/.test(s) || !/[^\\s0-9a-zA-Z\\-_]/.test(s);\n};\n//\nconst _noEnum = (v) => {\n return {\n value: v, enumerable: false, writable: true, configurable: true\n };\n};\n/**\n * extend String.prototype with relevant methods\n */\nconst extendString = function () {\n const _add = (name, body) => Object.defineProperty(String.prototype, name, _noEnum(body));\n _add('fromBase64', function () { return decode(this); });\n _add('toBase64', function (urlsafe) { return encode(this, urlsafe); });\n _add('toBase64URI', function () { return encode(this, true); });\n _add('toBase64URL', function () { return encode(this, true); });\n _add('toUint8Array', function () { return toUint8Array(this); });\n};\n/**\n * extend Uint8Array.prototype with relevant methods\n */\nconst extendUint8Array = function () {\n const _add = (name, body) => Object.defineProperty(Uint8Array.prototype, name, _noEnum(body));\n _add('toBase64', function (urlsafe) { return fromUint8Array(this, urlsafe); });\n _add('toBase64URI', function () { return fromUint8Array(this, true); });\n _add('toBase64URL', function () { return fromUint8Array(this, true); });\n};\n/**\n * extend Builtin prototypes with relevant methods\n */\nconst extendBuiltins = () => {\n extendString();\n extendUint8Array();\n};\nconst gBase64 = {\n version: version,\n VERSION: VERSION,\n atob: _atob,\n atobPolyfill: atobPolyfill,\n btoa: _btoa,\n btoaPolyfill: btoaPolyfill,\n fromBase64: decode,\n toBase64: encode,\n encode: encode,\n encodeURI: encodeURI,\n encodeURL: encodeURI,\n utob: utob,\n btou: btou,\n decode: decode,\n isValid: isValid,\n fromUint8Array: fromUint8Array,\n toUint8Array: toUint8Array,\n extendString: extendString,\n extendUint8Array: extendUint8Array,\n extendBuiltins: extendBuiltins,\n};\n// makecjs:CUT //\nexport { version };\nexport { VERSION };\nexport { _atob as atob };\nexport { atobPolyfill };\nexport { _btoa as btoa };\nexport { btoaPolyfill };\nexport { decode as fromBase64 };\nexport { encode as toBase64 };\nexport { utob };\nexport { encode };\nexport { encodeURI };\nexport { encodeURI as encodeURL };\nexport { btou };\nexport { decode };\nexport { isValid };\nexport { fromUint8Array };\nexport { toUint8Array };\nexport { extendString };\nexport { extendUint8Array };\nexport { extendBuiltins };\n// and finally,\nexport { gBase64 as Base64 };\n","import './index.scss';\nimport {Base64} from 'js-base64';\n\nexport const base64Decode = {\n init: function() {\n const $$base64Element = document.querySelectorAll('.base64_decode');\n if ($$base64Element.length > 0) {\n $$base64Element.forEach((element) => {\n if (element.classList.contains('base64--decoded')) return;\n\n const base64Text = Base64.decode(element.innerHTML);\n element.innerHTML = base64Text;\n element.classList.add('base64--decoded');\n });\n }\n },\n};\n","import './index.scss';\nimport {base64Decode} from 'modules/base64Decode';\nimport Carousel from 'bootstrap/js/dist/carousel';\n\nconst SLIDER_SELECTOR = '.widgetSlider';\nconst SLIDER_PREV = '.widgetSlider-control[data-type=\"prev\"]';\nconst SLIDER_NEXT = '.widgetSlider-control[data-type=\"next\"]';\nconst SLIDER_PAUSE = '.widgetSlider-control[data-type=pause]';\nconst SLIDER_INTERVAL = 4000;\n\nexport const widgetSlider = {\n init: function() {\n base64Decode.init();\n widgetSlider.bindEvents();\n },\n bindEvents: function() {\n document.querySelectorAll(SLIDER_SELECTOR).forEach((slider) => {\n const carousel = Carousel.getOrCreateInstance(slider, {interval: SLIDER_INTERVAL, pause: false});\n\n if (slider.querySelectorAll('.carousel-indicators li').length > 1) {\n slider.querySelectorAll('.js-sliderNav').forEach((el) => el.style.display = 'flex');\n };\n\n slider.querySelector(SLIDER_PAUSE).onclick = function() {\n this.classList.toggle('paused');\n this.classList.contains('paused') ? carousel.pause() : carousel.cycle();\n };\n\n function mouseEvent(state) {\n if (slider.querySelector(SLIDER_PAUSE).classList.contains('paused')) return;\n state === 'leave' ? carousel.cycle() : carousel.pause();\n };\n\n slider.querySelector(SLIDER_PREV).onclick = () => carousel.prev();\n slider.querySelector(SLIDER_NEXT).onclick = () => carousel.next();\n slider.onmouseenter = () => mouseEvent('enter');\n slider.onmouseleave = () => mouseEvent('leave');\n });\n },\n};\n","export const textExpand = {\n init: () => {\n textExpand.bindEvents();\n },\n bindEvents: () => {\n const linkMore = document.querySelector('.js-moreTextLink');\n if (linkMore !== null) {\n const arrayVideos = document.querySelectorAll('.js-moreText .video');\n linkMore.addEventListener('click', () => {\n document.querySelector('.js-moreText').classList.remove('d-none');\n if (arrayVideos.length > 0) {\n arrayVideos.forEach((element) => {\n element.innerHTML = textExpand.getTemplate(element);\n });\n }\n });\n }\n },\n getTemplate: (element) => {\n const width = element.dataset.width !== 'undefined' ? element.dataset.width : '';\n const height = element.dataset.height !== 'undefined' ? element.dataset.height : '';\n const videoLink = element.dataset.videoLink !== 'undefined' ? element.dataset.videoLink : '';\n return `\n
\n
\n `;\n },\n};\n","/*!\n * Bootstrap carousel.js v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./base-component.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./dom/selector-engine.js'), require('./util/index.js'), require('./util/swipe.js')) :\n typeof define === 'function' && define.amd ? define(['./base-component', './dom/event-handler', './dom/manipulator', './dom/selector-engine', './util/index', './util/swipe'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Carousel = factory(global.BaseComponent, global.EventHandler, global.Manipulator, global.SelectorEngine, global.Index, global.Swipe));\n})(this, (function (BaseComponent, EventHandler, Manipulator, SelectorEngine, index_js, Swipe) { 'use strict';\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME = 'carousel';\n const DATA_KEY = 'bs.carousel';\n const EVENT_KEY = `.${DATA_KEY}`;\n const DATA_API_KEY = '.data-api';\n const ARROW_LEFT_KEY = 'ArrowLeft';\n const ARROW_RIGHT_KEY = 'ArrowRight';\n const TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\n const ORDER_NEXT = 'next';\n const ORDER_PREV = 'prev';\n const DIRECTION_LEFT = 'left';\n const DIRECTION_RIGHT = 'right';\n const EVENT_SLIDE = `slide${EVENT_KEY}`;\n const EVENT_SLID = `slid${EVENT_KEY}`;\n const EVENT_KEYDOWN = `keydown${EVENT_KEY}`;\n const EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`;\n const EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`;\n const EVENT_DRAG_START = `dragstart${EVENT_KEY}`;\n const EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`;\n const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\n const CLASS_NAME_CAROUSEL = 'carousel';\n const CLASS_NAME_ACTIVE = 'active';\n const CLASS_NAME_SLIDE = 'slide';\n const CLASS_NAME_END = 'carousel-item-end';\n const CLASS_NAME_START = 'carousel-item-start';\n const CLASS_NAME_NEXT = 'carousel-item-next';\n const CLASS_NAME_PREV = 'carousel-item-prev';\n const SELECTOR_ACTIVE = '.active';\n const SELECTOR_ITEM = '.carousel-item';\n const SELECTOR_ACTIVE_ITEM = SELECTOR_ACTIVE + SELECTOR_ITEM;\n const SELECTOR_ITEM_IMG = '.carousel-item img';\n const SELECTOR_INDICATORS = '.carousel-indicators';\n const SELECTOR_DATA_SLIDE = '[data-bs-slide], [data-bs-slide-to]';\n const SELECTOR_DATA_RIDE = '[data-bs-ride=\"carousel\"]';\n const KEY_TO_DIRECTION = {\n [ARROW_LEFT_KEY]: DIRECTION_RIGHT,\n [ARROW_RIGHT_KEY]: DIRECTION_LEFT\n };\n const Default = {\n interval: 5000,\n keyboard: true,\n pause: 'hover',\n ride: false,\n touch: true,\n wrap: true\n };\n const DefaultType = {\n interval: '(number|boolean)',\n // TODO:v6 remove boolean support\n keyboard: 'boolean',\n pause: '(string|boolean)',\n ride: '(boolean|string)',\n touch: 'boolean',\n wrap: 'boolean'\n };\n\n /**\n * Class definition\n */\n\n class Carousel extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._interval = null;\n this._activeElement = null;\n this._isSliding = false;\n this.touchTimeout = null;\n this._swipeHelper = null;\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);\n this._addEventListeners();\n if (this._config.ride === CLASS_NAME_CAROUSEL) {\n this.cycle();\n }\n }\n\n // Getters\n static get Default() {\n return Default;\n }\n static get DefaultType() {\n return DefaultType;\n }\n static get NAME() {\n return NAME;\n }\n\n // Public\n next() {\n this._slide(ORDER_NEXT);\n }\n nextWhenVisible() {\n // FIXME TODO use `document.visibilityState`\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && index_js.isVisible(this._element)) {\n this.next();\n }\n }\n prev() {\n this._slide(ORDER_PREV);\n }\n pause() {\n if (this._isSliding) {\n index_js.triggerTransitionEnd(this._element);\n }\n this._clearInterval();\n }\n cycle() {\n this._clearInterval();\n this._updateInterval();\n this._interval = setInterval(() => this.nextWhenVisible(), this._config.interval);\n }\n _maybeEnableCycle() {\n if (!this._config.ride) {\n return;\n }\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.cycle());\n return;\n }\n this.cycle();\n }\n to(index) {\n const items = this._getItems();\n if (index > items.length - 1 || index < 0) {\n return;\n }\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index));\n return;\n }\n const activeIndex = this._getItemIndex(this._getActive());\n if (activeIndex === index) {\n return;\n }\n const order = index > activeIndex ? ORDER_NEXT : ORDER_PREV;\n this._slide(order, items[index]);\n }\n dispose() {\n if (this._swipeHelper) {\n this._swipeHelper.dispose();\n }\n super.dispose();\n }\n\n // Private\n _configAfterMerge(config) {\n config.defaultInterval = config.interval;\n return config;\n }\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event));\n }\n if (this._config.pause === 'hover') {\n EventHandler.on(this._element, EVENT_MOUSEENTER, () => this.pause());\n EventHandler.on(this._element, EVENT_MOUSELEAVE, () => this._maybeEnableCycle());\n }\n if (this._config.touch && Swipe.isSupported()) {\n this._addTouchEventListeners();\n }\n }\n _addTouchEventListeners() {\n for (const img of SelectorEngine.find(SELECTOR_ITEM_IMG, this._element)) {\n EventHandler.on(img, EVENT_DRAG_START, event => event.preventDefault());\n }\n const endCallBack = () => {\n if (this._config.pause !== 'hover') {\n return;\n }\n\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause();\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout);\n }\n this.touchTimeout = setTimeout(() => this._maybeEnableCycle(), TOUCHEVENT_COMPAT_WAIT + this._config.interval);\n };\n const swipeConfig = {\n leftCallback: () => this._slide(this._directionToOrder(DIRECTION_LEFT)),\n rightCallback: () => this._slide(this._directionToOrder(DIRECTION_RIGHT)),\n endCallback: endCallBack\n };\n this._swipeHelper = new Swipe(this._element, swipeConfig);\n }\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return;\n }\n const direction = KEY_TO_DIRECTION[event.key];\n if (direction) {\n event.preventDefault();\n this._slide(this._directionToOrder(direction));\n }\n }\n _getItemIndex(element) {\n return this._getItems().indexOf(element);\n }\n _setActiveIndicatorElement(index) {\n if (!this._indicatorsElement) {\n return;\n }\n const activeIndicator = SelectorEngine.findOne(SELECTOR_ACTIVE, this._indicatorsElement);\n activeIndicator.classList.remove(CLASS_NAME_ACTIVE);\n activeIndicator.removeAttribute('aria-current');\n const newActiveIndicator = SelectorEngine.findOne(`[data-bs-slide-to=\"${index}\"]`, this._indicatorsElement);\n if (newActiveIndicator) {\n newActiveIndicator.classList.add(CLASS_NAME_ACTIVE);\n newActiveIndicator.setAttribute('aria-current', 'true');\n }\n }\n _updateInterval() {\n const element = this._activeElement || this._getActive();\n if (!element) {\n return;\n }\n const elementInterval = Number.parseInt(element.getAttribute('data-bs-interval'), 10);\n this._config.interval = elementInterval || this._config.defaultInterval;\n }\n _slide(order, element = null) {\n if (this._isSliding) {\n return;\n }\n const activeElement = this._getActive();\n const isNext = order === ORDER_NEXT;\n const nextElement = element || index_js.getNextActiveElement(this._getItems(), activeElement, isNext, this._config.wrap);\n if (nextElement === activeElement) {\n return;\n }\n const nextElementIndex = this._getItemIndex(nextElement);\n const triggerEvent = eventName => {\n return EventHandler.trigger(this._element, eventName, {\n relatedTarget: nextElement,\n direction: this._orderToDirection(order),\n from: this._getItemIndex(activeElement),\n to: nextElementIndex\n });\n };\n const slideEvent = triggerEvent(EVENT_SLIDE);\n if (slideEvent.defaultPrevented) {\n return;\n }\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n // TODO: change tests that use empty divs to avoid this check\n return;\n }\n const isCycling = Boolean(this._interval);\n this.pause();\n this._isSliding = true;\n this._setActiveIndicatorElement(nextElementIndex);\n this._activeElement = nextElement;\n const directionalClassName = isNext ? CLASS_NAME_START : CLASS_NAME_END;\n const orderClassName = isNext ? CLASS_NAME_NEXT : CLASS_NAME_PREV;\n nextElement.classList.add(orderClassName);\n index_js.reflow(nextElement);\n activeElement.classList.add(directionalClassName);\n nextElement.classList.add(directionalClassName);\n const completeCallBack = () => {\n nextElement.classList.remove(directionalClassName, orderClassName);\n nextElement.classList.add(CLASS_NAME_ACTIVE);\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName);\n this._isSliding = false;\n triggerEvent(EVENT_SLID);\n };\n this._queueCallback(completeCallBack, activeElement, this._isAnimated());\n if (isCycling) {\n this.cycle();\n }\n }\n _isAnimated() {\n return this._element.classList.contains(CLASS_NAME_SLIDE);\n }\n _getActive() {\n return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element);\n }\n _getItems() {\n return SelectorEngine.find(SELECTOR_ITEM, this._element);\n }\n _clearInterval() {\n if (this._interval) {\n clearInterval(this._interval);\n this._interval = null;\n }\n }\n _directionToOrder(direction) {\n if (index_js.isRTL()) {\n return direction === DIRECTION_LEFT ? ORDER_PREV : ORDER_NEXT;\n }\n return direction === DIRECTION_LEFT ? ORDER_NEXT : ORDER_PREV;\n }\n _orderToDirection(order) {\n if (index_js.isRTL()) {\n return order === ORDER_PREV ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return order === ORDER_PREV ? DIRECTION_RIGHT : DIRECTION_LEFT;\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Carousel.getOrCreateInstance(this, config);\n if (typeof config === 'number') {\n data.to(config);\n return;\n }\n if (typeof config === 'string') {\n if (data[config] === undefined || config.startsWith('_') || config === 'constructor') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n }\n });\n }\n }\n\n /**\n * Data API implementation\n */\n\n EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, function (event) {\n const target = SelectorEngine.getElementFromSelector(this);\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return;\n }\n event.preventDefault();\n const carousel = Carousel.getOrCreateInstance(target);\n const slideIndex = this.getAttribute('data-bs-slide-to');\n if (slideIndex) {\n carousel.to(slideIndex);\n carousel._maybeEnableCycle();\n return;\n }\n if (Manipulator.getDataAttribute(this, 'slide') === 'next') {\n carousel.next();\n carousel._maybeEnableCycle();\n return;\n }\n carousel.prev();\n carousel._maybeEnableCycle();\n });\n EventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE);\n for (const carousel of carousels) {\n Carousel.getOrCreateInstance(carousel);\n }\n });\n\n /**\n * jQuery\n */\n\n index_js.defineJQueryPlugin(Carousel);\n\n return Carousel;\n\n}));\n//# sourceMappingURL=carousel.js.map\n","/*!\n * Bootstrap collapse.js v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./base-component.js'), require('./dom/event-handler.js'), require('./dom/selector-engine.js'), require('./util/index.js')) :\n typeof define === 'function' && define.amd ? define(['./base-component', './dom/event-handler', './dom/selector-engine', './util/index'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Collapse = factory(global.BaseComponent, global.EventHandler, global.SelectorEngine, global.Index));\n})(this, (function (BaseComponent, EventHandler, SelectorEngine, index_js) { 'use strict';\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME = 'collapse';\n const DATA_KEY = 'bs.collapse';\n const EVENT_KEY = `.${DATA_KEY}`;\n const DATA_API_KEY = '.data-api';\n const EVENT_SHOW = `show${EVENT_KEY}`;\n const EVENT_SHOWN = `shown${EVENT_KEY}`;\n const EVENT_HIDE = `hide${EVENT_KEY}`;\n const EVENT_HIDDEN = `hidden${EVENT_KEY}`;\n const EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`;\n const CLASS_NAME_SHOW = 'show';\n const CLASS_NAME_COLLAPSE = 'collapse';\n const CLASS_NAME_COLLAPSING = 'collapsing';\n const CLASS_NAME_COLLAPSED = 'collapsed';\n const CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;\n const CLASS_NAME_HORIZONTAL = 'collapse-horizontal';\n const WIDTH = 'width';\n const HEIGHT = 'height';\n const SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\n const SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"collapse\"]';\n const Default = {\n parent: null,\n toggle: true\n };\n const DefaultType = {\n parent: '(null|element)',\n toggle: 'boolean'\n };\n\n /**\n * Class definition\n */\n\n class Collapse extends BaseComponent {\n constructor(element, config) {\n super(element, config);\n this._isTransitioning = false;\n this._triggerArray = [];\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE);\n for (const elem of toggleList) {\n const selector = SelectorEngine.getSelectorFromElement(elem);\n const filterElement = SelectorEngine.find(selector).filter(foundElement => foundElement === this._element);\n if (selector !== null && filterElement.length) {\n this._triggerArray.push(elem);\n }\n }\n this._initializeChildren();\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\n }\n if (this._config.toggle) {\n this.toggle();\n }\n }\n\n // Getters\n static get Default() {\n return Default;\n }\n static get DefaultType() {\n return DefaultType;\n }\n static get NAME() {\n return NAME;\n }\n\n // Public\n toggle() {\n if (this._isShown()) {\n this.hide();\n } else {\n this.show();\n }\n }\n show() {\n if (this._isTransitioning || this._isShown()) {\n return;\n }\n let activeChildren = [];\n\n // find active children\n if (this._config.parent) {\n activeChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES).filter(element => element !== this._element).map(element => Collapse.getOrCreateInstance(element, {\n toggle: false\n }));\n }\n if (activeChildren.length && activeChildren[0]._isTransitioning) {\n return;\n }\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW);\n if (startEvent.defaultPrevented) {\n return;\n }\n for (const activeInstance of activeChildren) {\n activeInstance.hide();\n }\n const dimension = this._getDimension();\n this._element.classList.remove(CLASS_NAME_COLLAPSE);\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n this._element.style[dimension] = 0;\n this._addAriaAndCollapsedClass(this._triggerArray, true);\n this._isTransitioning = true;\n const complete = () => {\n this._isTransitioning = false;\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\n this._element.style[dimension] = '';\n EventHandler.trigger(this._element, EVENT_SHOWN);\n };\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n const scrollSize = `scroll${capitalizedDimension}`;\n this._queueCallback(complete, this._element, true);\n this._element.style[dimension] = `${this._element[scrollSize]}px`;\n }\n hide() {\n if (this._isTransitioning || !this._isShown()) {\n return;\n }\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE);\n if (startEvent.defaultPrevented) {\n return;\n }\n const dimension = this._getDimension();\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;\n index_js.reflow(this._element);\n this._element.classList.add(CLASS_NAME_COLLAPSING);\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\n for (const trigger of this._triggerArray) {\n const element = SelectorEngine.getElementFromSelector(trigger);\n if (element && !this._isShown(element)) {\n this._addAriaAndCollapsedClass([trigger], false);\n }\n }\n this._isTransitioning = true;\n const complete = () => {\n this._isTransitioning = false;\n this._element.classList.remove(CLASS_NAME_COLLAPSING);\n this._element.classList.add(CLASS_NAME_COLLAPSE);\n EventHandler.trigger(this._element, EVENT_HIDDEN);\n };\n this._element.style[dimension] = '';\n this._queueCallback(complete, this._element, true);\n }\n _isShown(element = this._element) {\n return element.classList.contains(CLASS_NAME_SHOW);\n }\n\n // Private\n _configAfterMerge(config) {\n config.toggle = Boolean(config.toggle); // Coerce string values\n config.parent = index_js.getElement(config.parent);\n return config;\n }\n _getDimension() {\n return this._element.classList.contains(CLASS_NAME_HORIZONTAL) ? WIDTH : HEIGHT;\n }\n _initializeChildren() {\n if (!this._config.parent) {\n return;\n }\n const children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE);\n for (const element of children) {\n const selected = SelectorEngine.getElementFromSelector(element);\n if (selected) {\n this._addAriaAndCollapsedClass([element], this._isShown(selected));\n }\n }\n }\n _getFirstLevelChildren(selector) {\n const children = SelectorEngine.find(CLASS_NAME_DEEPER_CHILDREN, this._config.parent);\n // remove children if greater depth\n return SelectorEngine.find(selector, this._config.parent).filter(element => !children.includes(element));\n }\n _addAriaAndCollapsedClass(triggerArray, isOpen) {\n if (!triggerArray.length) {\n return;\n }\n for (const element of triggerArray) {\n element.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);\n element.setAttribute('aria-expanded', isOpen);\n }\n }\n\n // Static\n static jQueryInterface(config) {\n const _config = {};\n if (typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n return this.each(function () {\n const data = Collapse.getOrCreateInstance(this, _config);\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n }\n });\n }\n }\n\n /**\n * Data API implementation\n */\n\n EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for
elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A' || event.delegateTarget && event.delegateTarget.tagName === 'A') {\n event.preventDefault();\n }\n for (const element of SelectorEngine.getMultipleElementsFromSelector(this)) {\n Collapse.getOrCreateInstance(element, {\n toggle: false\n }).toggle();\n }\n });\n\n /**\n * jQuery\n */\n\n index_js.defineJQueryPlugin(Collapse);\n\n return Collapse;\n\n}));\n//# sourceMappingURL=collapse.js.map\n","/*!\n * Bootstrap popover.js v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./tooltip.js'), require('./util/index.js')) :\n typeof define === 'function' && define.amd ? define(['./tooltip', './util/index'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.Tooltip, global.Index));\n})(this, (function (Tooltip, index_js) { 'use strict';\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME = 'popover';\n const SELECTOR_TITLE = '.popover-header';\n const SELECTOR_CONTENT = '.popover-body';\n const Default = {\n ...Tooltip.Default,\n content: '',\n offset: [0, 8],\n placement: 'right',\n template: '
' + '
' + '
' + '
' + '
',\n trigger: 'click'\n };\n const DefaultType = {\n ...Tooltip.DefaultType,\n content: '(null|string|element|function)'\n };\n\n /**\n * Class definition\n */\n\n class Popover extends Tooltip {\n // Getters\n static get Default() {\n return Default;\n }\n static get DefaultType() {\n return DefaultType;\n }\n static get NAME() {\n return NAME;\n }\n\n // Overrides\n _isWithContent() {\n return this._getTitle() || this._getContent();\n }\n\n // Private\n _getContentForTemplate() {\n return {\n [SELECTOR_TITLE]: this._getTitle(),\n [SELECTOR_CONTENT]: this._getContent()\n };\n }\n _getContent() {\n return this._resolvePossibleFunction(this._config.content);\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Popover.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n }\n\n /**\n * jQuery\n */\n\n index_js.defineJQueryPlugin(Popover);\n\n return Popover;\n\n}));\n//# sourceMappingURL=popover.js.map\n","/*!\n * Bootstrap tooltip.js v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('@popperjs/core'), require('./base-component.js'), require('./dom/event-handler.js'), require('./dom/manipulator.js'), require('./util/index.js'), require('./util/sanitizer.js'), require('./util/template-factory.js')) :\n typeof define === 'function' && define.amd ? define(['@popperjs/core', './base-component', './dom/event-handler', './dom/manipulator', './util/index', './util/sanitizer', './util/template-factory'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Tooltip = factory(global[\"@popperjs/core\"], global.BaseComponent, global.EventHandler, global.Manipulator, global.Index, global.Sanitizer, global.TemplateFactory));\n})(this, (function (Popper, BaseComponent, EventHandler, Manipulator, index_js, sanitizer_js, TemplateFactory) { 'use strict';\n\n function _interopNamespaceDefault(e) {\n const n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } });\n if (e) {\n for (const k in e) {\n if (k !== 'default') {\n const d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: () => e[k]\n });\n }\n }\n }\n n.default = e;\n return Object.freeze(n);\n }\n\n const Popper__namespace = /*#__PURE__*/_interopNamespaceDefault(Popper);\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME = 'tooltip';\n const DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn']);\n const CLASS_NAME_FADE = 'fade';\n const CLASS_NAME_MODAL = 'modal';\n const CLASS_NAME_SHOW = 'show';\n const SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\n const SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`;\n const EVENT_MODAL_HIDE = 'hide.bs.modal';\n const TRIGGER_HOVER = 'hover';\n const TRIGGER_FOCUS = 'focus';\n const TRIGGER_CLICK = 'click';\n const TRIGGER_MANUAL = 'manual';\n const EVENT_HIDE = 'hide';\n const EVENT_HIDDEN = 'hidden';\n const EVENT_SHOW = 'show';\n const EVENT_SHOWN = 'shown';\n const EVENT_INSERTED = 'inserted';\n const EVENT_CLICK = 'click';\n const EVENT_FOCUSIN = 'focusin';\n const EVENT_FOCUSOUT = 'focusout';\n const EVENT_MOUSEENTER = 'mouseenter';\n const EVENT_MOUSELEAVE = 'mouseleave';\n const AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: index_js.isRTL() ? 'left' : 'right',\n BOTTOM: 'bottom',\n LEFT: index_js.isRTL() ? 'right' : 'left'\n };\n const Default = {\n allowList: sanitizer_js.DefaultAllowlist,\n animation: true,\n boundary: 'clippingParents',\n container: false,\n customClass: '',\n delay: 0,\n fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n html: false,\n offset: [0, 6],\n placement: 'top',\n popperConfig: null,\n sanitize: true,\n sanitizeFn: null,\n selector: false,\n template: '
' + '
' + '
' + '
',\n title: '',\n trigger: 'hover focus'\n };\n const DefaultType = {\n allowList: 'object',\n animation: 'boolean',\n boundary: '(string|element)',\n container: '(string|element|boolean)',\n customClass: '(string|function)',\n delay: '(number|object)',\n fallbackPlacements: 'array',\n html: 'boolean',\n offset: '(array|string|function)',\n placement: '(string|function)',\n popperConfig: '(null|object|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n selector: '(string|boolean)',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string'\n };\n\n /**\n * Class definition\n */\n\n class Tooltip extends BaseComponent {\n constructor(element, config) {\n if (typeof Popper__namespace === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n }\n super(element, config);\n\n // Private\n this._isEnabled = true;\n this._timeout = 0;\n this._isHovered = null;\n this._activeTrigger = {};\n this._popper = null;\n this._templateFactory = null;\n this._newContent = null;\n\n // Protected\n this.tip = null;\n this._setListeners();\n if (!this._config.selector) {\n this._fixTitle();\n }\n }\n\n // Getters\n static get Default() {\n return Default;\n }\n static get DefaultType() {\n return DefaultType;\n }\n static get NAME() {\n return NAME;\n }\n\n // Public\n enable() {\n this._isEnabled = true;\n }\n disable() {\n this._isEnabled = false;\n }\n toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n }\n toggle() {\n if (!this._isEnabled) {\n return;\n }\n this._activeTrigger.click = !this._activeTrigger.click;\n if (this._isShown()) {\n this._leave();\n return;\n }\n this._enter();\n }\n dispose() {\n clearTimeout(this._timeout);\n EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n if (this._element.getAttribute('data-bs-original-title')) {\n this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'));\n }\n this._disposePopper();\n super.dispose();\n }\n show() {\n if (this._element.style.display === 'none') {\n throw new Error('Please use show on visible elements');\n }\n if (!(this._isWithContent() && this._isEnabled)) {\n return;\n }\n const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW));\n const shadowRoot = index_js.findShadowRoot(this._element);\n const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element);\n if (showEvent.defaultPrevented || !isInTheDom) {\n return;\n }\n\n // TODO: v6 remove this or make it optional\n this._disposePopper();\n const tip = this._getTipElement();\n this._element.setAttribute('aria-describedby', tip.getAttribute('id'));\n const {\n container\n } = this._config;\n if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n container.append(tip);\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED));\n }\n this._popper = this._createPopper(tip);\n tip.classList.add(CLASS_NAME_SHOW);\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.on(element, 'mouseover', index_js.noop);\n }\n }\n const complete = () => {\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN));\n if (this._isHovered === false) {\n this._leave();\n }\n this._isHovered = false;\n };\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n hide() {\n if (!this._isShown()) {\n return;\n }\n const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE));\n if (hideEvent.defaultPrevented) {\n return;\n }\n const tip = this._getTipElement();\n tip.classList.remove(CLASS_NAME_SHOW);\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n for (const element of [].concat(...document.body.children)) {\n EventHandler.off(element, 'mouseover', index_js.noop);\n }\n }\n this._activeTrigger[TRIGGER_CLICK] = false;\n this._activeTrigger[TRIGGER_FOCUS] = false;\n this._activeTrigger[TRIGGER_HOVER] = false;\n this._isHovered = null; // it is a trick to support manual triggering\n\n const complete = () => {\n if (this._isWithActiveTrigger()) {\n return;\n }\n if (!this._isHovered) {\n this._disposePopper();\n }\n this._element.removeAttribute('aria-describedby');\n EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN));\n };\n this._queueCallback(complete, this.tip, this._isAnimated());\n }\n update() {\n if (this._popper) {\n this._popper.update();\n }\n }\n\n // Protected\n _isWithContent() {\n return Boolean(this._getTitle());\n }\n _getTipElement() {\n if (!this.tip) {\n this.tip = this._createTipElement(this._newContent || this._getContentForTemplate());\n }\n return this.tip;\n }\n _createTipElement(content) {\n const tip = this._getTemplateFactory(content).toHtml();\n\n // TODO: remove this check in v6\n if (!tip) {\n return null;\n }\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);\n // TODO: v6 the following can be achieved with CSS only\n tip.classList.add(`bs-${this.constructor.NAME}-auto`);\n const tipId = index_js.getUID(this.constructor.NAME).toString();\n tip.setAttribute('id', tipId);\n if (this._isAnimated()) {\n tip.classList.add(CLASS_NAME_FADE);\n }\n return tip;\n }\n setContent(content) {\n this._newContent = content;\n if (this._isShown()) {\n this._disposePopper();\n this.show();\n }\n }\n _getTemplateFactory(content) {\n if (this._templateFactory) {\n this._templateFactory.changeContent(content);\n } else {\n this._templateFactory = new TemplateFactory({\n ...this._config,\n // the `content` var has to be after `this._config`\n // to override config.content in case of popover\n content,\n extraClass: this._resolvePossibleFunction(this._config.customClass)\n });\n }\n return this._templateFactory;\n }\n _getContentForTemplate() {\n return {\n [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n };\n }\n _getTitle() {\n return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title');\n }\n\n // Private\n _initializeOnDelegatedTarget(event) {\n return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig());\n }\n _isAnimated() {\n return this._config.animation || this.tip && this.tip.classList.contains(CLASS_NAME_FADE);\n }\n _isShown() {\n return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW);\n }\n _createPopper(tip) {\n const placement = index_js.execute(this._config.placement, [this, tip, this._element]);\n const attachment = AttachmentMap[placement.toUpperCase()];\n return Popper__namespace.createPopper(this._element, tip, this._getPopperConfig(attachment));\n }\n _getOffset() {\n const {\n offset\n } = this._config;\n if (typeof offset === 'string') {\n return offset.split(',').map(value => Number.parseInt(value, 10));\n }\n if (typeof offset === 'function') {\n return popperData => offset(popperData, this._element);\n }\n return offset;\n }\n _resolvePossibleFunction(arg) {\n return index_js.execute(arg, [this._element]);\n }\n _getPopperConfig(attachment) {\n const defaultBsPopperConfig = {\n placement: attachment,\n modifiers: [{\n name: 'flip',\n options: {\n fallbackPlacements: this._config.fallbackPlacements\n }\n }, {\n name: 'offset',\n options: {\n offset: this._getOffset()\n }\n }, {\n name: 'preventOverflow',\n options: {\n boundary: this._config.boundary\n }\n }, {\n name: 'arrow',\n options: {\n element: `.${this.constructor.NAME}-arrow`\n }\n }, {\n name: 'preSetPlacement',\n enabled: true,\n phase: 'beforeMain',\n fn: data => {\n // Pre-set Popper's placement attribute in order to read the arrow sizes properly.\n // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement\n this._getTipElement().setAttribute('data-popper-placement', data.state.placement);\n }\n }]\n };\n return {\n ...defaultBsPopperConfig,\n ...index_js.execute(this._config.popperConfig, [defaultBsPopperConfig])\n };\n }\n _setListeners() {\n const triggers = this._config.trigger.split(' ');\n for (const trigger of triggers) {\n if (trigger === 'click') {\n EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK), this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context.toggle();\n });\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSEENTER) : this.constructor.eventName(EVENT_FOCUSIN);\n const eventOut = trigger === TRIGGER_HOVER ? this.constructor.eventName(EVENT_MOUSELEAVE) : this.constructor.eventName(EVENT_FOCUSOUT);\n EventHandler.on(this._element, eventIn, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n context._enter();\n });\n EventHandler.on(this._element, eventOut, this._config.selector, event => {\n const context = this._initializeOnDelegatedTarget(event);\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = context._element.contains(event.relatedTarget);\n context._leave();\n });\n }\n }\n this._hideModalHandler = () => {\n if (this._element) {\n this.hide();\n }\n };\n EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler);\n }\n _fixTitle() {\n const title = this._element.getAttribute('title');\n if (!title) {\n return;\n }\n if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n this._element.setAttribute('aria-label', title);\n }\n this._element.setAttribute('data-bs-original-title', title); // DO NOT USE IT. Is only for backwards compatibility\n this._element.removeAttribute('title');\n }\n _enter() {\n if (this._isShown() || this._isHovered) {\n this._isHovered = true;\n return;\n }\n this._isHovered = true;\n this._setTimeout(() => {\n if (this._isHovered) {\n this.show();\n }\n }, this._config.delay.show);\n }\n _leave() {\n if (this._isWithActiveTrigger()) {\n return;\n }\n this._isHovered = false;\n this._setTimeout(() => {\n if (!this._isHovered) {\n this.hide();\n }\n }, this._config.delay.hide);\n }\n _setTimeout(handler, timeout) {\n clearTimeout(this._timeout);\n this._timeout = setTimeout(handler, timeout);\n }\n _isWithActiveTrigger() {\n return Object.values(this._activeTrigger).includes(true);\n }\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this._element);\n for (const dataAttribute of Object.keys(dataAttributes)) {\n if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n delete dataAttributes[dataAttribute];\n }\n }\n config = {\n ...dataAttributes,\n ...(typeof config === 'object' && config ? config : {})\n };\n config = this._mergeConfigObj(config);\n config = this._configAfterMerge(config);\n this._typeCheckConfig(config);\n return config;\n }\n _configAfterMerge(config) {\n config.container = config.container === false ? document.body : index_js.getElement(config.container);\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n if (typeof config.title === 'number') {\n config.title = config.title.toString();\n }\n if (typeof config.content === 'number') {\n config.content = config.content.toString();\n }\n return config;\n }\n _getDelegateConfig() {\n const config = {};\n for (const [key, value] of Object.entries(this._config)) {\n if (this.constructor.Default[key] !== value) {\n config[key] = value;\n }\n }\n config.selector = false;\n config.trigger = 'manual';\n\n // In the future can be replaced with:\n // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n // `Object.fromEntries(keysWithDifferentValues)`\n return config;\n }\n _disposePopper() {\n if (this._popper) {\n this._popper.destroy();\n this._popper = null;\n }\n if (this.tip) {\n this.tip.remove();\n this.tip = null;\n }\n }\n\n // Static\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Tooltip.getOrCreateInstance(this, config);\n if (typeof config !== 'string') {\n return;\n }\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config]();\n });\n }\n }\n\n /**\n * jQuery\n */\n\n index_js.defineJQueryPlugin(Tooltip);\n\n return Tooltip;\n\n}));\n//# sourceMappingURL=tooltip.js.map\n","/*!\n * Bootstrap sanitizer.js v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Sanitizer = {}));\n})(this, (function (exports) { 'use strict';\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n // js-docs-start allow-list\n const ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n const DefaultAllowlist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n dd: [],\n div: [],\n dl: [],\n dt: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n };\n // js-docs-end allow-list\n\n const uriAttributes = new Set(['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href']);\n\n /**\n * A pattern that recognizes URLs that are safe wrt. XSS in URL navigation\n * contexts.\n *\n * Shout-out to Angular https://github.com/angular/angular/blob/15.2.8/packages/core/src/sanitization/url_sanitizer.ts#L38\n */\n // eslint-disable-next-line unicorn/better-regex\n const SAFE_URL_PATTERN = /^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i;\n const allowedAttribute = (attribute, allowedAttributeList) => {\n const attributeName = attribute.nodeName.toLowerCase();\n if (allowedAttributeList.includes(attributeName)) {\n if (uriAttributes.has(attributeName)) {\n return Boolean(SAFE_URL_PATTERN.test(attribute.nodeValue));\n }\n return true;\n }\n\n // Check if a regular expression validates the attribute.\n return allowedAttributeList.filter(attributeRegex => attributeRegex instanceof RegExp).some(regex => regex.test(attributeName));\n };\n function sanitizeHtml(unsafeHtml, allowList, sanitizeFunction) {\n if (!unsafeHtml.length) {\n return unsafeHtml;\n }\n if (sanitizeFunction && typeof sanitizeFunction === 'function') {\n return sanitizeFunction(unsafeHtml);\n }\n const domParser = new window.DOMParser();\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'));\n for (const element of elements) {\n const elementName = element.nodeName.toLowerCase();\n if (!Object.keys(allowList).includes(elementName)) {\n element.remove();\n continue;\n }\n const attributeList = [].concat(...element.attributes);\n const allowedAttributes = [].concat(allowList['*'] || [], allowList[elementName] || []);\n for (const attribute of attributeList) {\n if (!allowedAttribute(attribute, allowedAttributes)) {\n element.removeAttribute(attribute.nodeName);\n }\n }\n }\n return createdDocument.body.innerHTML;\n }\n\n exports.DefaultAllowlist = DefaultAllowlist;\n exports.sanitizeHtml = sanitizeHtml;\n\n Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\n}));\n//# sourceMappingURL=sanitizer.js.map\n","/*!\n * Bootstrap swipe.js v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('../dom/event-handler.js'), require('./config.js'), require('./index.js')) :\n typeof define === 'function' && define.amd ? define(['../dom/event-handler', './config', './index'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Swipe = factory(global.EventHandler, global.Config, global.Index));\n})(this, (function (EventHandler, Config, index_js) { 'use strict';\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap util/swipe.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME = 'swipe';\n const EVENT_KEY = '.bs.swipe';\n const EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`;\n const EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`;\n const EVENT_TOUCHEND = `touchend${EVENT_KEY}`;\n const EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`;\n const EVENT_POINTERUP = `pointerup${EVENT_KEY}`;\n const POINTER_TYPE_TOUCH = 'touch';\n const POINTER_TYPE_PEN = 'pen';\n const CLASS_NAME_POINTER_EVENT = 'pointer-event';\n const SWIPE_THRESHOLD = 40;\n const Default = {\n endCallback: null,\n leftCallback: null,\n rightCallback: null\n };\n const DefaultType = {\n endCallback: '(function|null)',\n leftCallback: '(function|null)',\n rightCallback: '(function|null)'\n };\n\n /**\n * Class definition\n */\n\n class Swipe extends Config {\n constructor(element, config) {\n super();\n this._element = element;\n if (!element || !Swipe.isSupported()) {\n return;\n }\n this._config = this._getConfig(config);\n this._deltaX = 0;\n this._supportPointerEvents = Boolean(window.PointerEvent);\n this._initEvents();\n }\n\n // Getters\n static get Default() {\n return Default;\n }\n static get DefaultType() {\n return DefaultType;\n }\n static get NAME() {\n return NAME;\n }\n\n // Public\n dispose() {\n EventHandler.off(this._element, EVENT_KEY);\n }\n\n // Private\n _start(event) {\n if (!this._supportPointerEvents) {\n this._deltaX = event.touches[0].clientX;\n return;\n }\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX;\n }\n }\n _end(event) {\n if (this._eventIsPointerPenTouch(event)) {\n this._deltaX = event.clientX - this._deltaX;\n }\n this._handleSwipe();\n index_js.execute(this._config.endCallback);\n }\n _move(event) {\n this._deltaX = event.touches && event.touches.length > 1 ? 0 : event.touches[0].clientX - this._deltaX;\n }\n _handleSwipe() {\n const absDeltaX = Math.abs(this._deltaX);\n if (absDeltaX <= SWIPE_THRESHOLD) {\n return;\n }\n const direction = absDeltaX / this._deltaX;\n this._deltaX = 0;\n if (!direction) {\n return;\n }\n index_js.execute(direction > 0 ? this._config.rightCallback : this._config.leftCallback);\n }\n _initEvents() {\n if (this._supportPointerEvents) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => this._start(event));\n EventHandler.on(this._element, EVENT_POINTERUP, event => this._end(event));\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => this._start(event));\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => this._move(event));\n EventHandler.on(this._element, EVENT_TOUCHEND, event => this._end(event));\n }\n }\n _eventIsPointerPenTouch(event) {\n return this._supportPointerEvents && (event.pointerType === POINTER_TYPE_PEN || event.pointerType === POINTER_TYPE_TOUCH);\n }\n\n // Static\n static isSupported() {\n return 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;\n }\n }\n\n return Swipe;\n\n}));\n//# sourceMappingURL=swipe.js.map\n","/*!\n * Bootstrap template-factory.js v5.3.3 (https://getbootstrap.com/)\n * Copyright 2011-2024 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('../dom/selector-engine.js'), require('./config.js'), require('./sanitizer.js'), require('./index.js')) :\n typeof define === 'function' && define.amd ? define(['../dom/selector-engine', './config', './sanitizer', './index'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.TemplateFactory = factory(global.SelectorEngine, global.Config, global.Sanitizer, global.Index));\n})(this, (function (SelectorEngine, Config, sanitizer_js, index_js) { 'use strict';\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap util/template-factory.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n\n /**\n * Constants\n */\n\n const NAME = 'TemplateFactory';\n const Default = {\n allowList: sanitizer_js.DefaultAllowlist,\n content: {},\n // { selector : text , selector2 : text2 , }\n extraClass: '',\n html: false,\n sanitize: true,\n sanitizeFn: null,\n template: '
'\n };\n const DefaultType = {\n allowList: 'object',\n content: 'object',\n extraClass: '(string|function)',\n html: 'boolean',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n template: 'string'\n };\n const DefaultContentType = {\n entry: '(string|element|function|null)',\n selector: '(string|element)'\n };\n\n /**\n * Class definition\n */\n\n class TemplateFactory extends Config {\n constructor(config) {\n super();\n this._config = this._getConfig(config);\n }\n\n // Getters\n static get Default() {\n return Default;\n }\n static get DefaultType() {\n return DefaultType;\n }\n static get NAME() {\n return NAME;\n }\n\n // Public\n getContent() {\n return Object.values(this._config.content).map(config => this._resolvePossibleFunction(config)).filter(Boolean);\n }\n hasContent() {\n return this.getContent().length > 0;\n }\n changeContent(content) {\n this._checkContent(content);\n this._config.content = {\n ...this._config.content,\n ...content\n };\n return this;\n }\n toHtml() {\n const templateWrapper = document.createElement('div');\n templateWrapper.innerHTML = this._maybeSanitize(this._config.template);\n for (const [selector, text] of Object.entries(this._config.content)) {\n this._setContent(templateWrapper, text, selector);\n }\n const template = templateWrapper.children[0];\n const extraClass = this._resolvePossibleFunction(this._config.extraClass);\n if (extraClass) {\n template.classList.add(...extraClass.split(' '));\n }\n return template;\n }\n\n // Private\n _typeCheckConfig(config) {\n super._typeCheckConfig(config);\n this._checkContent(config.content);\n }\n _checkContent(arg) {\n for (const [selector, content] of Object.entries(arg)) {\n super._typeCheckConfig({\n selector,\n entry: content\n }, DefaultContentType);\n }\n }\n _setContent(template, content, selector) {\n const templateElement = SelectorEngine.findOne(selector, template);\n if (!templateElement) {\n return;\n }\n content = this._resolvePossibleFunction(content);\n if (!content) {\n templateElement.remove();\n return;\n }\n if (index_js.isElement(content)) {\n this._putElementInTemplate(index_js.getElement(content), templateElement);\n return;\n }\n if (this._config.html) {\n templateElement.innerHTML = this._maybeSanitize(content);\n return;\n }\n templateElement.textContent = content;\n }\n _maybeSanitize(arg) {\n return this._config.sanitize ? sanitizer_js.sanitizeHtml(arg, this._config.allowList, this._config.sanitizeFn) : arg;\n }\n _resolvePossibleFunction(arg) {\n return index_js.execute(arg, [this]);\n }\n _putElementInTemplate(element, templateElement) {\n if (this._config.html) {\n templateElement.innerHTML = '';\n templateElement.append(element);\n return;\n }\n templateElement.textContent = element.textContent;\n }\n }\n\n return TemplateFactory;\n\n}));\n//# sourceMappingURL=template-factory.js.map\n"],"names":["mainSearchbar","textExpand","sideFilter","collapseSideFilter","$sideFilter","document","querySelector","sideFilterInstance","Collapse","toggle","window","innerWidth","config","hide","show","SELECT","compareHead","bindEvents","$addTofavorites","addEventListener","this","classList","contains","textContent","remove","removeGoodFromCompare","dataset","goodId","add","addGoodToCompare","setCompareStatus","update","data","$compareHead","$comparHeadName","$comparHeadCount","$comparHeadAction","style","display","name","innerHTML","action","id","getElementById","insertAdjacentHTML","templateCompareHead","cookie","gogoods_id","then","response","updateInHead","$headCount","count_goods","Object","values","goods","length","mobileCompare","mobileLinkCompareVal","createElement","appendChild","forEach","$goodLink","$goodItem","title","baloonTemplate","bln","icon","actual_address","phone","workgrafic","paymentsInfo","payments","pointInfo","iconUrl","shm","define","$","undefined","UTCDate","Date","UTC","apply","arguments","UTCToday","today","getFullYear","getMonth","getDate","isUTCEquals","date1","date2","getUTCFullYear","getUTCMonth","getUTCDate","alias","method","deprecationMsg","fn","datepicker","deprecated","isValidDate","d","isNaN","getTime","extras","DateArray","get","i","slice","val","valueOf","l","splice","replace","new_array","isArray","clear","push","copy","a","extend","Datepicker","element","options","_events","_secondaryEvents","_process_options","dates","viewDate","o","defaultViewDate","focusDate","isInput","is","inputField","find","component","hasClass","isInline","picker","DPGlobal","template","_check_template","templates","leftArrow","html","rightArrow","_buildEvents","_attachEvents","addClass","appendTo","rtl","calendarWeeks","attr","Number","startDate","_o","endDate","daysOfWeekDisabled","daysOfWeekHighlighted","datesDisabled","_allow_update","setViewMode","startView","fillDow","fillMonths","prototype","constructor","_resolveViewName","view","each","viewModes","viewMode","inArray","names","_resolveDaysOfWeek","daysOfWeek","split","map","tmp","match","ex","opts","lang","language","defaults","minViewMode","maxViewMode","Math","max","min","multidate","multidateSeparator","String","weekStart","weekEnd","format","parseFormat","_local_to_utc","_zero_time","parseDate","assumeNearbyYear","Infinity","plc","orientation","toLowerCase","_plc","grep","word","test","x","y","year","month","day","_applyEvents","evs","el","ch","ev","on","_unapplyEvents","off","events","keyup","proxy","e","keyCode","keydown","paste","showOnFocus","focus","click","blur","_focused_from","target","immediateUpdates","date","navArrowsClick","dayCellClick","resize","place","_detachEvents","_attachSecondaryEvents","_detachSecondaryEvents","_trigger","event","altdate","local_date","_utc_to_local","trigger","type","ix","formatDate","prop","enableOnReadonly","container","navigator","msMaxTouchPoints","disableTouchKeyboard","detach","forceParse","setValue","destroy","dateString","originalEvent","clipboardData","types","getData","setDate","preventDefault","utc","local","getTimezoneOffset","_zero_utc_time","getDates","getUTCDates","selected_date","clearDates","autoclose","setDates","args","setUTCDates","setUTCDate","formatted","getFormattedDate","join","getStartDate","setStartDate","updateNavArrows","getEndDate","setEndDate","setDaysOfWeekDisabled","setDaysOfWeekHighlighted","setDatesDisabled","calendarWidth","outerWidth","calendarHeight","outerHeight","visualPadding","windowWidth","width","scrollTop","appendOffset","offset","parentsZindex","parents","itemZIndex","css","zIndex","zIndexOffset","parent","height","left","top","removeClass","yorient","parseInt","right","oldDates","fromArgs","dateWithinRange","updateViewDate","change","fill","showWeekDays","dowCnt","daysMin","append","localDate","monthsShort","setRange","range","getClassNames","cls","todayHighlight","dateIsDisabled","getUTCDay","_fill_yearsView","selector","cssClass","factor","startYear","endYear","beforeFn","classes","tooltip","before","step","startVal","floor","endVal","focusedVal","selected","currVal","noop","enabled","concat","text","startMonth","endMonth","todaytxt","cleartxt","titleFormat","todayDate","titleBtnVisible","todayBtn","weekOfDateIsDisabled","clearBtn","prevMonth","nextMonth","setUTCFullYear","weekDay","clsName","ws","th","yth","calWeek","content","beforeShowDay","isFunction","uniqueSort","unique","toString","monthsTitle","months","end","eq","beforeShowMonth","that","moDate","beforeShowYear","beforeShowDecade","beforeShowCentury","prevIsDisabled","nextIsDisabled","toggleClass","stopPropagation","_setDate","index","setUTCMonth","timestamp","currentTarget","dir","navStep","moveMonth","_toggle_multidate","toggleActive","which","moveDay","newDate","moveWeek","new_month","new_date","mag","abs","moveYear","moveAvailableDate","newViewDate","dateChanged","keyboardNavigation","ctrlKey","shiftKey","children","filter","DateRangePicker","inputs","jquery","keepEmptyValues","datepickerPlugin","call","dateUpdated","pickers","updateDates","opts_from_el","prefix","out","RegExp","re_lower","_","key","opts_from_locale","locale_opts","k","updateRanges","p","updating","dp","keep_empty_values","j","old","option","internal_return","Array","shift","$this","elopts","locopts","toArray","Error","Constructor","en","days","daysShort","ru","validParts","nonpunctuation","toValue","toDisplay","separators","parts","assumeNearby","part","fn_map","m","w","dateAliases","yesterday","tomorrow","applyNearbyYear","threshold","filtered","parsed","setters_order","setters_map","yyyy","v","fparts","match_part","cnt","_date","s","D","DD","M","MM","yy","substring","dd","mm","seps","headTemplate","contTemplate","footTemplate","noConflict","version","msg","console","warn","templateList","amount","discount","address","templateListItem","selectDateSto","jQuery","fitMapList","init","list","initCalendar","listItem","listItemActive","listItemInner","pointId","appendForm","selectedVal","spinner","selectedId","timeBlock","when","done","answer","scheduleItems","availableTime","dropdown","maskPhone","maskCarNumber","require","IMask","mask","lazy","stoid","stoaddress","serialize","result","tireFittingTime","formatDatetime","padStart","getHours","getMinutes","serviceInfo","price","error","item","topPos","offsetTop","shopListUrl","getJSON","json","tempDate","fRest","fChpu","b","selectAddress","iconArrowLeft","iconArrowRight","enableDays","indexOf","hideLayout","body","getLayoutTemplate","hideLayoutClass","activePlacemark","fitMapPodbor","podbor","initYandexMap","select","time","paramsMainSearch","collectForm","pair","entries","serviceCode","carNumber","location","href","alert","comment","ymaps","getScript","ready","points","searchResult","myMap","Map","center","zoom","searchControlProvider","MyIconContentLayout","templateLayoutFactory","createClass","clusterer","Clusterer","clusterIcons","size","hasBalloon","clusterIconContent","clusterIconContentLayout","set","groupByCoordinates","clusterDisableClickZoom","clusterBalloonMinHeight","gridSize","getGeoObjects","elem","unset","geoObjects","listHtml","counter","coords","priceWithDiscount","txtPriceWithDiscount","geoData","coordinates","Placemark","reverse","iconCaption","iconColor","stoId","pointsData","obj","properties","balloon","open","clusters","getClusters","priceArray","MyIconContentLayout2","setBounds","getBounds","checkZoomRange","getZoom","setZoom","behaviors","disable","searchType","Std","Stprof","Stsh","TypeSize","hidePostfactPayments","postfactPayment","Tab","first","showPostfactPayments","getAvailableInfo","goodAvailableObj","availableType","available_type","param","nextElementSibling","$dropdownMenu","dropdownInstance","Dropdown","$dropdownIframe","getBadgetInfo","badgetObj","badgetType","badget_type","object_type","$$smallVideoLoad","querySelectorAll","$badgeVideoContainer","videoLink","smallVideoLink","tpl","videoContainerHeight","offsetHeight","initVideoBudget","videoDiv","$$elements","formHtml","tagName","formData","FormData","elements","checkVisibility","checked","value","$tabSwitch","dataSwitch","switch","searchFormType","$searchParamsAction","$searchParamsThread","avtoStorage","markSelector","modelSelector","yearSelector","modificationSelector","localStorage","setItem","JSON","stringify","mark","model","selectedIndex","outerHTML","mod","callback","hasOwnProperty","car","parse","getItem","removeItem","collapseWinterShow","$collapse","bsCollapse","selectionByCar","searchByCar","isChecked","$studAll","$studWith","$studWithout","input","sync","$myCollapse","syncFilters","selection","newAvtoSearch","selectionReset","$$selectModel","$$selectYear","$$selectMod","$$selectCurrent","selectName","currentValue","requestUrl","resetButtonVisible","params","searchForm","disabled","$buttonSubmit","activeButtonSubmit","$activeButtonClose","SIZES_WAS_LOADED","$$firstStage","$$secondStage","$$searchbar","searchButtonVisible","loadDiskResults","loadTyresResult","loadServicesResult","fullName","$$checkboxes","$checkbox","sverlovka","ComplectationAutos_id","showAutoResults","bindNotSparkaInputs","bindSparkaInputs","loadSizes","advDatas","setTimeout","getSearchType","searchButton","hidden","newSearchButon","diskParams","$sizesTuningDisk","$sizesStockDisk","pcd","Fv","Ft","dia","$asDiai","$diskParams","disks","$disksSearchResult","$autoSearchSizesDisks","$complectationAutosId","diskVariants","$tyresSearchResult","$autoSearchSizesTyres","tyres","tyresVariants","servicesVariants","$searchForm","$activeNavLink","formFoundError","updateCaptcha","setAttribute","$linkCaptchaUpdate","buttonSendError","Nette","validateForm","$modal","Modal","containers","search","productItem","processHash","tabName","activeTab","getAttribute","$sliderArticles","sparkaCheckbox","filterTab","closest","from","history","pushState","tab","$sideFilterCurrent","dataSearch","$$switchLinkSelector","$navLink","$$switchImages","dataSwitchLink","$activeSearchResult","$$searchBarByCar","sortItem","searchContainer","sort","sortType","sorttype","defsort","$$diffTyres","$$removeDiffTyres","$diffTyres","$removeDiffTyres","diffTyres","hash","tabId","openTab","tabInstanse","sparkaInputs","checkedInputs","sparkasPair","mainSparkasPair","elementSp","elementMsp","$notSpark","$notSparkCheckbox","$sparka","$sparkaAll","CURRENT_PAGE","SEARCH_RESULT","paramsCurrentForm","$itemsSortRow","$h1Results","nextButton","spinnerPlace","$pagination","mobileLoader","res","errors","meta","$h1","$$bItems","count","url","log","restListPopover","widgetSlider","linkShowAllModels","lazyload","form","hideAllPopovers","page","scrollIntoView","block","behavior","hideAllTooltips","getCount","byFormArray","byForm","has","updateTooltips","catch","message","initBarajaSliders","Tooltip","popover","Popover","isLoad","$$btnSearch","$countOfFound","modalAfterAddToCart","modalId","modal","modalTemplate","setContent","yaMetrika","dataLayer","products","ym","bindEvent","removePopoversFromStorage","onclick","orderAddCount","parentNode","goGoodId","common","cartHead","reloadCarts","metricaModule","changeCount","sizePrices","txtBlock","$input","inputValue","dataRest","rest","keys","startsWith","loadRests","initPopoverListener","popoverOptions","popoverTriggerEl","hideActivePopovers","$popoverBtn","targetData","localValue","$popoverHeader","$popoverContent","$$popoverBtnActive","ids","goodInfo","good_id","$goodBlock","stock","maxStock","pointNameStock","delivery","maxDelivery","minDeliveryLogist","pointNameDelivery","daysNameDelivery","tk","maxTk","minTkLogist","pointNameTK","daysNameTK","wasInited","initSlider","initPopovers","includes","secondPartner","$container","placement","boundary","searchbarSizes","sideBarHiddenInput","sliderParent","sliderPrice","priceFrom","priceTo","minDiskCost","controllerConfigHead","maxDiskCost","minTyreCost","maxTyreCost","minCost","maxCost","isSliderInit","noUiSlider","create","start","connect","pips","mode","density","handle","round","err","main","_hasatob","atob","_hasBuffer","Buffer","_TD","TextDecoder","b64chs","TextEncoder","b64tab","c","b64re","_fromCC","fromCharCode","bind","_U8Afrom","Uint8Array","it","_tidyB64","re_btou","cb_btou","cccc","charCodeAt","btou","atobPolyfill","asc","TypeError","u24","r1","r2","bin","charAt","_atob","_toUint8Array","_decode","decode","_unURI","m0","src","gBase64","base64Decode","$$base64Element","base64Text","Base64","SLIDER_PAUSE","slider","carousel","Carousel","interval","pause","mouseEvent","state","cycle","prev","next","onmouseenter","onmouseleave","linkMore","arrayVideos","getTemplate","module","exports","BaseComponent","EventHandler","Manipulator","SelectorEngine","index_js","Swipe","NAME","EVENT_KEY","DATA_API_KEY","TOUCHEVENT_COMPAT_WAIT","ORDER_NEXT","ORDER_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_DRAG_START","EVENT_LOAD_DATA_API","EVENT_CLICK_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_ACTIVE","CLASS_NAME_SLIDE","CLASS_NAME_END","CLASS_NAME_START","CLASS_NAME_NEXT","CLASS_NAME_PREV","SELECTOR_ACTIVE","SELECTOR_ITEM","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM_IMG","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","KEY_TO_DIRECTION","Default","keyboard","ride","touch","wrap","DefaultType","super","_interval","_activeElement","_isSliding","touchTimeout","_swipeHelper","_indicatorsElement","findOne","_element","_addEventListeners","_config","_slide","nextWhenVisible","isVisible","triggerTransitionEnd","_clearInterval","_updateInterval","setInterval","_maybeEnableCycle","one","to","items","_getItems","activeIndex","_getItemIndex","_getActive","order","dispose","_configAfterMerge","defaultInterval","_keydown","isSupported","_addTouchEventListeners","img","swipeConfig","leftCallback","_directionToOrder","rightCallback","endCallback","clearTimeout","direction","_setActiveIndicatorElement","activeIndicator","removeAttribute","newActiveIndicator","elementInterval","activeElement","isNext","nextElement","getNextActiveElement","nextElementIndex","triggerEvent","eventName","relatedTarget","_orderToDirection","defaultPrevented","isCycling","Boolean","directionalClassName","orderClassName","reflow","completeCallBack","_queueCallback","_isAnimated","clearInterval","isRTL","static","getOrCreateInstance","getElementFromSelector","slideIndex","getDataAttribute","carousels","defineJQueryPlugin","factory","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","CLASS_NAME_DEEPER_CHILDREN","CLASS_NAME_HORIZONTAL","WIDTH","HEIGHT","SELECTOR_ACTIVES","SELECTOR_DATA_TOGGLE","_isTransitioning","_triggerArray","toggleList","getSelectorFromElement","filterElement","foundElement","_initializeChildren","_addAriaAndCollapsedClass","_isShown","activeChildren","_getFirstLevelChildren","activeInstance","dimension","_getDimension","complete","scrollSize","toUpperCase","getBoundingClientRect","getElement","triggerArray","isOpen","delegateTarget","getMultipleElementsFromSelector","SELECTOR_TITLE","SELECTOR_CONTENT","_isWithContent","_getTitle","_getContent","_getContentForTemplate","_resolvePossibleFunction","Popper","sanitizer_js","TemplateFactory","_interopNamespaceDefault","n","Symbol","toStringTag","getOwnPropertyDescriptor","defineProperty","enumerable","default","freeze","Popper__namespace","DISALLOWED_ATTRIBUTES","Set","CLASS_NAME_FADE","SELECTOR_TOOLTIP_INNER","SELECTOR_MODAL","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","EVENT_INSERTED","EVENT_CLICK","EVENT_FOCUSIN","EVENT_FOCUSOUT","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","allowList","DefaultAllowlist","animation","customClass","delay","fallbackPlacements","popperConfig","sanitize","sanitizeFn","_isEnabled","_timeout","_isHovered","_activeTrigger","_popper","_templateFactory","_newContent","tip","_setListeners","_fixTitle","enable","toggleEnabled","_leave","_enter","_hideModalHandler","_disposePopper","showEvent","isInTheDom","findShadowRoot","ownerDocument","documentElement","_getTipElement","_createPopper","_isWithActiveTrigger","_createTipElement","_getTemplateFactory","toHtml","tipId","getUID","changeContent","extraClass","_initializeOnDelegatedTarget","_getDelegateConfig","execute","attachment","createPopper","_getPopperConfig","_getOffset","popperData","arg","defaultBsPopperConfig","modifiers","phase","triggers","eventIn","eventOut","context","trim","_setTimeout","handler","timeout","_getConfig","dataAttributes","getDataAttributes","dataAttribute","_mergeConfigObj","_typeCheckConfig","area","br","col","code","div","dl","dt","em","hr","h1","h2","h3","h4","h5","h6","li","ol","pre","small","span","sub","sup","strong","u","ul","uriAttributes","SAFE_URL_PATTERN","allowedAttribute","attribute","allowedAttributeList","attributeName","nodeName","nodeValue","attributeRegex","some","regex","sanitizeHtml","unsafeHtml","sanitizeFunction","createdDocument","DOMParser","parseFromString","elementName","attributeList","attributes","allowedAttributes","Config","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","POINTER_TYPE_TOUCH","POINTER_TYPE_PEN","CLASS_NAME_POINTER_EVENT","SWIPE_THRESHOLD","_deltaX","_supportPointerEvents","PointerEvent","_initEvents","_start","_eventIsPointerPenTouch","clientX","touches","_end","_handleSwipe","_move","absDeltaX","pointerType","maxTouchPoints","DefaultContentType","entry","getContent","hasContent","_checkContent","templateWrapper","_maybeSanitize","_setContent","templateElement","isElement","_putElementInTemplate"],"sourceRoot":""}