vgapp 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"vgapp.js","mappings":"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","sources":["webpack://vg/webpack/bootstrap","webpack://vg/webpack/runtime/define property getters","webpack://vg/webpack/runtime/hasOwnProperty shorthand","webpack://vg/webpack/runtime/make namespace object","webpack://vg/./app/utils/js/functions.js","webpack://vg/./app/utils/js/dom/selectors.js","webpack://vg/./app/utils/js/dom/data.js","webpack://vg/./app/utils/js/dom/manipulator.js","webpack://vg/./app/utils/js/components/params.js","webpack://vg/./app/utils/js/dom/event.js","webpack://vg/./app/modules/module-fn.js","webpack://vg/./app/utils/js/components/animation.js","webpack://vg/./app/modules/base-module.js","webpack://vg/./app/utils/js/components/overflow.js","webpack://vg/./app/utils/js/components/backdrop.js","webpack://vg/./app/modules/vgsidebar/js/vgsidebar.js","webpack://vg/./app/modules/vgcollapse/js/vgcollapse.js","webpack://vg/./app/utils/js/components/responsive.js","webpack://vg/./app/modules/vgnav/js/vgnav.js","webpack://vg/./app/utils/js/components/placement.js","webpack://vg/./app/modules/vgdropdown/js/vgdropdown.js","webpack://vg/./app/utils/js/components/scrollbar.js","webpack://vg/./app/modules/vgmodal/js/vgmodal.js","webpack://vg/./app/modules/vgformsender/js/vgformsender.js","webpack://vg/./app/modules/vgrollup/js/vgrollup.js","webpack://vg/./app/utils/js/dom/cookie.js","webpack://vg/./app/modules/vglawcookie/js/vglawcookie.js","webpack://vg/./app/modules/vgselect/js/vgselect.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\r\n * Набор скриптов для широкого применения\r\n */\r\n\r\n/**\r\n * Если что-нибудь в объекте\r\n * @param obj\r\n * @returns {boolean}\r\n */\r\nfunction isEmptyObj(obj) {\r\n\tfor (let prop in obj) {\r\n\t\tif (Object.prototype.hasOwnProperty.call(obj, prop)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\treturn true\r\n}\r\n\r\n/**\r\n * isElement\r\n * @param object\r\n * @returns {boolean}\r\n */\r\nconst isElement = object => {\r\n\tif (!isObject(object)) {\r\n\t\treturn false\r\n\t}\r\n\r\n\treturn typeof object.nodeType !== 'undefined'\r\n}\r\n\r\n/**\r\n * isDisabled\r\n * @param element\r\n * @returns {boolean}\r\n */\r\nconst isDisabled = element => {\r\n\tif (!element || element.nodeType !== Node.ELEMENT_NODE) {\r\n\t\treturn true\r\n\t}\r\n\r\n\tif (element.classList.contains('disabled')) {\r\n\t\treturn true\r\n\t}\r\n\r\n\tif (typeof element.disabled !== 'undefined') {\r\n\t\treturn element.disabled\r\n\t}\r\n\r\n\treturn element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\r\n}\r\n\r\n/**\r\n * isVisible\r\n * @param element\r\n * @returns {boolean}\r\n */\r\nfunction isVisible (element) {\r\n\tif (!isElement(element) || element.getClientRects().length === 0) {\r\n\t\treturn false\r\n\t}\r\n\r\n\tconst elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\r\n\tconst closedDetails = element.closest('details:not([open])')\r\n\r\n\tif (!closedDetails) {\r\n\t\treturn elementIsVisible\r\n\t}\r\n\r\n\tif (closedDetails !== element) {\r\n\t\tconst summary = element.closest('summary')\r\n\t\tif (summary && summary.parentNode !== closedDetails) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tif (summary === null) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t}\r\n\r\n\treturn elementIsVisible\r\n}\r\n\r\n/**\r\n * isObject\r\n * @param obj\r\n * @returns {boolean}\r\n */\r\nfunction isObject(obj) {\r\n\treturn obj && typeof obj === 'object'\r\n}\r\n\r\n/**\r\n * Приводим в порядок типы данных\r\n * @param value\r\n * @returns {any}\r\n */\r\nfunction normalizeData(value) {\r\n\tif (value === 'true') {\r\n\t\treturn true\r\n\t}\r\n\r\n\tif (value === 'false') {\r\n\t\treturn false\r\n\t}\r\n\r\n\tif (value === Number(value).toString()) {\r\n\t\treturn Number(value)\r\n\t}\r\n\r\n\tif (value === '' || value === 'null') {\r\n\t\treturn null\r\n\t}\r\n\r\n\tif (typeof value !== 'string') {\r\n\t\treturn value\r\n\t}\r\n\r\n\ttry {\r\n\t\treturn JSON.parse(decodeURIComponent(value))\r\n\t} catch {\r\n\t\treturn value\r\n\t}\r\n}\r\n\r\n/**\r\n * Удаляем элементы с массива\r\n * @param arr\r\n * @param el\r\n */\r\nfunction removeElementArray(arr, el) {\r\n\treturn arr.filter((item) => !el.includes(item));\r\n}\r\n\r\n/**\r\n * Глубокое объединение объектов\r\n * @param objects\r\n * @returns {*}\r\n */\r\nfunction mergeDeepObject(...objects) {\r\n\tconst isObject = obj => obj && typeof obj === 'object';\r\n\r\n\treturn objects.reduce((prev, obj) => {\r\n\t\tObject.keys(obj).forEach(key => {\r\n\t\t\tconst pVal = prev[key];\r\n\t\t\tconst oVal = obj[key];\r\n\r\n\t\t\tif (Array.isArray(pVal) && Array.isArray(oVal)) {\r\n\t\t\t\tprev[key] = pVal.concat(...oVal);\r\n\t\t\t}\r\n\t\t\telse if (isObject(pVal) && isObject(oVal)) {\r\n\t\t\t\tprev[key] = mergeDeepObject(pVal, oVal);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tprev[key] = oVal;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn prev;\r\n\t}, {});\r\n}\r\n\r\n/**\r\n * Callback\r\n * @param possibleCallback\r\n * @param args\r\n * @param defaultValue\r\n * @returns {*}\r\n */\r\nfunction execute(possibleCallback, args = [], defaultValue = possibleCallback) {\r\n\treturn typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue\r\n}\r\n\r\n/**\r\n * Transition\r\n * @param callback\r\n * @param transitionElement\r\n * @param waitForTransition\r\n */\r\nconst TRANSITION_END = 'transitionend';\r\nconst MILLISECONDS_MULTIPLIER = 1000;\r\n\r\nfunction executeAfterTransition (callback, transitionElement, waitForTransition = true, timeOutMs) {\r\n\tif (!waitForTransition) {\r\n\t\texecute(callback)\r\n\t\treturn\r\n\t}\r\n\r\n\tconst durationPadding = 5\r\n\tconst emulatedDuration = timeOutMs ? timeOutMs : getTransitionDurationFromElement(transitionElement) + durationPadding;\r\n\r\n\tlet called = false\r\n\r\n\tconst handler = ({ target }) => {\r\n\t\tif (target !== transitionElement) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tcalled = true\r\n\t\ttransitionElement.removeEventListener(TRANSITION_END, handler)\r\n\t\texecute(callback)\r\n\t}\r\n\r\n\ttransitionElement.addEventListener(TRANSITION_END, handler)\r\n\tsetTimeout(() => {\r\n\t\tif (!called) {\r\n\t\t\ttriggerTransitionEnd(transitionElement)\r\n\t\t}\r\n\t}, emulatedDuration)\r\n}\r\n\r\nconst getTransitionDurationFromElement = element => {\r\n\tif (!element) {\r\n\t\treturn 0\r\n\t}\r\n\r\n\t// Get transition-duration of the element\r\n\tlet { transitionDuration, transitionDelay } = window.getComputedStyle(element)\r\n\r\n\tconst floatTransitionDuration = Number.parseFloat(transitionDuration)\r\n\tconst floatTransitionDelay = Number.parseFloat(transitionDelay)\r\n\r\n\t// Return 0 if element or transition duration is not found\r\n\tif (!floatTransitionDuration && !floatTransitionDelay) {\r\n\t\treturn 0\r\n\t}\r\n\r\n\t// If multiple durations are defined, take the first\r\n\ttransitionDuration = transitionDuration.split(',')[0]\r\n\ttransitionDelay = transitionDelay.split(',')[0]\r\n\r\n\treturn (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\r\n}\r\n\r\nconst triggerTransitionEnd = element => {\r\n\telement.dispatchEvent(new Event(TRANSITION_END))\r\n}\r\n\r\n/**\r\n * Трюк для перезапуска анимации элемента\r\n *\r\n * @param {HTMLElement} element\r\n * @return void\r\n *\r\n * @смотри https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\r\n */\r\nconst reflow = element => {\r\n\telement.offsetHeight // eslint-disable-line no-unused-expressions\r\n}\r\n\r\n/**\r\n * Noop\r\n */\r\nconst noop = () => {};\r\n\r\n/**\r\n * Генерация случайной строки\r\n */\r\nfunction makeRandomString(length = 7) {\r\n\tlet result = '';\r\n\tconst characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n\tconst charactersLength = characters.length;\r\n\tlet counter = 0;\r\n\twhile (counter < length) {\r\n\t\tresult += characters.charAt(Math.floor(Math.random() * charactersLength));\r\n\t\tcounter += 1;\r\n\t}\r\n\treturn result;\r\n}\r\n\r\n/**\r\n * Транслитерация символов с латиницы на кириллицу и обратно\r\n * @param text\r\n * @param enToRu\r\n * @returns {*}\r\n */\r\nfunction transliterate(text, enToRu) {\r\n\tlet ru = \"й ц у к е н г ш щ з х ъ ф ы в а п р о л д ж э я ч с м и т ь б ю\".split(/ +/g);\r\n\tlet en = \"q w e r t y u i o p [ ] a s d f g h j k l ; ' z x c v b n m , .\".split(/ +/g);\r\n\tlet x;\r\n\r\n\tfor (x = 0; x < ru.length; x++) {\r\n\t\ttext = text.split(enToRu ? en[x] : ru[x]).join(enToRu ? ru[x] : en[x]);\r\n\t\ttext = text.split(enToRu ? en[x].toUpperCase() : ru[x].toUpperCase()).join(enToRu ? ru[x].toUpperCase() : en[x].toUpperCase());\r\n\t}\r\n\r\n\treturn text;\r\n}\r\n\r\n/**\r\n *\r\n */\r\nconst isRTL = () => document.documentElement.dir === 'rtl'\r\n\r\nexport {isElement, isVisible, isDisabled, isObject, isEmptyObj, mergeDeepObject, removeElementArray, normalizeData, execute, executeAfterTransition, reflow, noop, makeRandomString, isRTL, transliterate}","/**\r\n * Работа с DOM\r\n * @param selector\r\n * @returns {*}\r\n */\r\nimport {isElement} from \"../functions\";\r\n\r\nconst parseSelector = selector => {\r\n\tif (selector && window.CSS && window.CSS.escape) {\r\n\t\tselector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\r\n\t}\r\n\r\n\treturn selector\r\n}\r\n\r\nconst getSelector = element => {\r\n\tlet selector = element.getAttribute('data-vg-target');\r\n\r\n\tif (!selector || selector === '#') {\r\n\t\tlet hrefAttribute = element.getAttribute('href');\r\n\t\tif (!hrefAttribute || (!hrefAttribute.includes('#') && !hrefAttribute.startsWith('.'))) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tif (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\r\n\t\t\threfAttribute = `#${hrefAttribute.split('#')[1]}`;\r\n\t\t}\r\n\r\n\t\tselector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;\r\n\t}\r\n\r\n\treturn selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null;\r\n}\r\n\r\nconst Selectors = {\r\n\tfind(selector, element = document.documentElement) {\r\n\t\tif (isElement(selector)) {\r\n\t\t\treturn selector;\r\n\t\t} else {\r\n\t\t\treturn Element.prototype.querySelector.call(element, selector);\r\n\t\t}\r\n\t},\r\n\r\n\tfindAll(selector, container = document.documentElement) {\r\n\t\treturn [].concat(...Element.prototype.querySelectorAll.call(container, selector));\r\n\t},\r\n\r\n\tgetSelectorFromElement(element) {\r\n\t\tconst selector = getSelector(element);\r\n\t\tif (selector) return Selectors.find(selector) ? selector : null\r\n\t\treturn null\r\n\t},\r\n\r\n\tgetElementFromSelector(element) {\r\n\t\tconst selector = getSelector(element);\r\n\t\treturn selector ? Selectors.find(selector) : null\r\n\t},\r\n\r\n\tgetMultipleElementsFromSelector(element) {\r\n\t\tconst selector = getSelector(element);\r\n\t\treturn selector ? Selectors.findAll(selector) : []\r\n\t}\r\n}\r\n\r\nexport default Selectors;","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap data.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n * Скрипт работает с коллекцией модулей. Подробнее тут https://learn.javascript.ru/map-set\r\n */\r\n\r\n/**\r\n * Константы\r\n */\r\n\r\nconst elementMap = new Map()\r\n\r\nexport default {\r\n\tset(element, key, instance) {\r\n\t\tif (!elementMap.has(element)) {\r\n\t\t\telementMap.set(element, new Map())\r\n\t\t}\r\n\r\n\t\tconst instanceMap = elementMap.get(element)\r\n\t\tif (!instanceMap.has(key) && instanceMap.size !== 0) {\r\n\t\t\tconsole.error(`VGApp не допускает более одного экземпляра для каждого элемента. Связанный экземпляр: ${Array.from(instanceMap.keys())[0]}.`)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tinstanceMap.set(key, instance);\r\n\t},\r\n\r\n\tget(element, key) {\r\n\t\tif (elementMap.has(element)) {\r\n\t\t\treturn elementMap.get(element).get(key) || null\r\n\t\t}\r\n\r\n\t\treturn null\r\n\t},\r\n\r\n\tremove(element, key) {\r\n\t\tif (!elementMap.has(element)) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst instanceMap = elementMap.get(element)\r\n\r\n\t\tinstanceMap.delete(key);\r\n\r\n\t\tif (instanceMap.size === 0) {\r\n\t\t\telementMap.delete(element)\r\n\t\t}\r\n\t}\r\n}\r\n","import {isElement, normalizeData} from \"../functions\";\r\n\r\n/**\r\n * Манипуляции с атрибутами у элемента:\r\n * get (элемент, имя, флаг - вырезать data-) - метод выбирает значение атрибута по его имени, если в поле имени передать 'data' -> будут выбраны только дата атрибуты, если 'all' -> метод вернет значение всех атрибутов\r\n * has (элемент, имя) - есть ли атрибут у элемента\r\n * set (элемент, имя, значение) - установка у элемента атрибута или его изменение\r\n * remove (элемент, имя) - удаляет атрибут у элемента\r\n */\r\nconst Manipulator = {\r\n\tget(element, nameAttribute = 'data', isRemoveDataName = true) {\r\n\t\tif (!element) {\r\n\t\t\treturn {}\r\n\t\t}\r\n\r\n\t\tif (nameAttribute === 'data') {\r\n\t\t\tlet elmBase = ['data-vg-toggle', 'data-vg-target', 'data-vg-dismiss'],\r\n\t\t\t\tattributes = {};\r\n\r\n\t\t\tlet arr = [].filter.call(element.attributes, function (at) {\r\n\t\t\t\treturn /^data-/.test(at.name);\r\n\t\t\t});\r\n\r\n\t\t\tif (arr.length) {\r\n\t\t\t\tarr.forEach(function (v) {\r\n\t\t\t\t\tlet name = v.name;\r\n\r\n\t\t\t\t\tif (!elmBase.includes(name)) {\r\n\t\t\t\t\t\tif (isRemoveDataName) name = name.slice(5);\r\n\t\t\t\t\t\tattributes[name] = normalizeData(v.value)\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\treturn attributes;\r\n\t\t} else if (nameAttribute === 'all') {\r\n\t\t\treturn element.getAttributeNames().reduce((acc, name) => {\r\n\t\t\t\treturn {...acc, [name]: element.getAttribute(name)};\r\n\t\t\t}, {});\r\n\t\t} else {\r\n\t\t\treturn element.getAttribute(nameAttribute);\r\n\t\t}\r\n\t},\r\n\r\n\thas(element, nameAttribute) {\r\n\t\treturn element.hasAttribute(nameAttribute);\r\n\t},\r\n\r\n\tset(element, name, value) {\r\n\t\tif (isElement(element) && name) {\r\n\t\t\telement.setAttribute(name, value);\r\n\t\t}\r\n\t},\r\n\r\n\tremove(element, nameAttribute) {\r\n\t\tif (isElement(element) && nameAttribute) {\r\n\t\t\telement.removeAttribute(nameAttribute);\r\n\t\t}\r\n\t},\r\n\r\n\thide(el) {\r\n\t\tel.style.display = 'none';\r\n\t},\r\n\r\n\tshow(el, state = 'block') {\r\n\t\tel.style.display = state;\r\n\t},\r\n}\r\n\r\nexport {Manipulator}\r\n","import {isElement, mergeDeepObject, normalizeData} from \"../functions\";\r\nimport {Manipulator} from \"../dom/manipulator\";\r\n\r\nclass Params {\r\n\tconstructor(params, element = null) {\r\n\t\tthis._params = this.merge(params, element);\r\n\t}\r\n\r\n\tget() {\r\n\t\treturn this._params;\r\n\t}\r\n\r\n\tfromElement(element) {\r\n\t\treturn isElement(element) ? Manipulator.get(element) : {};\r\n\t}\r\n\r\n\tmerge(params, element) {\r\n\t\tlet mParams = mergeDeepObject(params, this.fromElement(element));\r\n\r\n\t\tfor (let key in mParams) {\r\n\t\t\tif (key.indexOf('-') !== -1) {\r\n\t\t\t\tlet keys = key.split('-'),\r\n\t\t\t\t\tvalue = normalizeData(mParams[key]);\r\n\r\n\t\t\t\tif (keys[0] in mParams) {\r\n\t\t\t\t\tif (keys[1] in mParams[keys[0]]) {\r\n\t\t\t\t\t\tmParams[keys[0]][keys[1]] = value;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdelete mParams[key];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ('params' in mParams) {\r\n\t\t\tmParams = mergeDeepObject(mParams, mParams.params);\r\n\t\t\tdelete mParams.params;\r\n\t\t}\r\n\r\n\t\treturn mParams;\r\n\t}\r\n}\r\n\r\nexport default Params;","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap event.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n * Скрипт для прослушивания события\r\n */\r\n\r\n/**\r\n * Константы\r\n */\r\n\r\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\r\nconst stripNameRegex = /\\..*/\r\nconst stripUidRegex = /::\\d+$/\r\nconst eventRegistry = {} // Events storage\r\nlet uidEvent = 1\r\nconst customEvents = {\r\n\tmouseenter: 'mouseover',\r\n\tmouseleave: 'mouseout'\r\n}\r\n\r\nconst nativeEvents = new Set([\r\n\t'click',\r\n\t'dblclick',\r\n\t'mouseup',\r\n\t'mousedown',\r\n\t'contextmenu',\r\n\t'mousewheel',\r\n\t'DOMMouseScroll',\r\n\t'mouseover',\r\n\t'mouseout',\r\n\t'mousemove',\r\n\t'selectstart',\r\n\t'selectend',\r\n\t'submit',\r\n\t'keydown',\r\n\t'keypress',\r\n\t'keyup',\r\n\t'orientationchange',\r\n\t'touchstart',\r\n\t'touchmove',\r\n\t'touchend',\r\n\t'touchcancel',\r\n\t'pointerdown',\r\n\t'pointermove',\r\n\t'pointerup',\r\n\t'pointerleave',\r\n\t'pointercancel',\r\n\t'gesturestart',\r\n\t'gesturechange',\r\n\t'gestureend',\r\n\t'focus',\r\n\t'blur',\r\n\t'change',\r\n\t'reset',\r\n\t'select',\r\n\t'submit',\r\n\t'focusin',\r\n\t'focusout',\r\n\t'load',\r\n\t'unload',\r\n\t'beforeunload',\r\n\t'resize',\r\n\t'move',\r\n\t'DOMContentLoaded',\r\n\t'readystatechange',\r\n\t'error',\r\n\t'abort',\r\n\t'scroll'\r\n])\r\n\r\n/**\r\n * Приватные методы\r\n */\r\n\r\nfunction makeEventUid(element, uid) {\r\n\treturn (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\r\n}\r\n\r\nfunction getElementEvents(element) {\r\n\tconst uid = makeEventUid(element)\r\n\r\n\telement.uidEvent = uid\r\n\teventRegistry[uid] = eventRegistry[uid] || {}\r\n\r\n\treturn eventRegistry[uid]\r\n}\r\n\r\nfunction bootstrapHandler(element, fn) {\r\n\treturn function handler(event) {\r\n\t\thydrateObj(event, { delegateTarget: element })\r\n\r\n\t\tif (handler.oneOff) {\r\n\t\t\tEventHandler.off(element, event.type, fn)\r\n\t\t}\r\n\r\n\t\treturn fn.apply(element, [event])\r\n\t}\r\n}\r\n\r\nfunction bootstrapDelegationHandler(element, selector, fn) {\r\n\treturn function handler(event) {\r\n\t\tconst domElements = element.querySelectorAll(selector)\r\n\r\n\t\tfor (let { target } = event; target && target !== this; target = target.parentNode) {\r\n\t\t\tfor (const domElement of domElements) {\r\n\t\t\t\tif (domElement !== target) {\r\n\t\t\t\t\tcontinue\r\n\t\t\t\t}\r\n\r\n\t\t\t\thydrateObj(event, { delegateTarget: target })\r\n\r\n\t\t\t\tif (handler.oneOff) {\r\n\t\t\t\t\tEventHandler.off(element, event.type, selector, fn)\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn fn.apply(target, [event])\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction findHandler(events, callable, delegationSelector = null) {\r\n\treturn Object.values(events)\r\n\t\t.find(event => event.callable === callable && event.delegationSelector === delegationSelector)\r\n}\r\n\r\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\r\n\tconst isDelegated = typeof handler === 'string'\r\n\t// TODO: выдает \"false\" вместо селектора, поэтому нужно проверить. boot\r\n\tconst callable = isDelegated ? delegationFunction : (handler || delegationFunction)\r\n\tlet typeEvent = getTypeEvent(originalTypeEvent)\r\n\r\n\tif (!nativeEvents.has(typeEvent)) {\r\n\t\ttypeEvent = originalTypeEvent\r\n\t}\r\n\r\n\treturn [isDelegated, callable, typeEvent]\r\n}\r\n\r\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\r\n\tif (typeof originalTypeEvent !== 'string' || !element) {\r\n\t\treturn\r\n\t}\r\n\r\n\tlet [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\r\n\r\n\t// in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\r\n\t// this prevents the handler from being dispatched the same way as mouseover or mouseout does\r\n\tif (originalTypeEvent in customEvents) {\r\n\t\tconst wrapFunction = fn => {\r\n\t\t\treturn function (event) {\r\n\t\t\t\tif (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\r\n\t\t\t\t\treturn fn.call(this, event)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tcallable = wrapFunction(callable)\r\n\t}\r\n\r\n\tconst events = getElementEvents(element)\r\n\tconst handlers = events[typeEvent] || (events[typeEvent] = {})\r\n\tconst previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\r\n\r\n\tif (previousFunction) {\r\n\t\tpreviousFunction.oneOff = previousFunction.oneOff && oneOff\r\n\r\n\t\treturn\r\n\t}\r\n\r\n\tconst uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\r\n\tconst fn = isDelegated ?\r\n\t\tbootstrapDelegationHandler(element, handler, callable) :\r\n\t\tbootstrapHandler(element, callable)\r\n\r\n\tfn.delegationSelector = isDelegated ? handler : null\r\n\tfn.callable = callable\r\n\tfn.oneOff = oneOff\r\n\tfn.uidEvent = uid\r\n\thandlers[uid] = fn\r\n\r\n\telement.addEventListener(typeEvent, fn, isDelegated)\r\n}\r\n\r\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\r\n\tconst fn = findHandler(events[typeEvent], handler, delegationSelector)\r\n\r\n\tif (!fn) {\r\n\t\treturn\r\n\t}\r\n\r\n\telement.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\r\n\tdelete events[typeEvent][fn.uidEvent]\r\n}\r\n\r\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\r\n\tconst storeElementEvent = events[typeEvent] || {}\r\n\r\n\tfor (const [handlerKey, event] of Object.entries(storeElementEvent)) {\r\n\t\tif (handlerKey.includes(namespace)) {\r\n\t\t\tremoveHandler(element, events, typeEvent, event.callable, event.delegationSelector)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction getTypeEvent(event) {\r\n\t// allow to get the native events from namespaced events ('click.bs.button' --> 'click')\r\n\tevent = event.replace(stripNameRegex, '')\r\n\treturn customEvents[event] || event\r\n}\r\n\r\nfunction hydrateObj(obj, meta = {}) {\r\n\tfor (const [key, value] of Object.entries(meta)) {\r\n\t\ttry {\r\n\t\t\tobj[key] = value\r\n\t\t} catch {\r\n\t\t\tObject.defineProperty(obj, key, {\r\n\t\t\t\tconfigurable: true,\r\n\t\t\t\tget() {\r\n\t\t\t\t\treturn value\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\treturn obj\r\n}\r\n\r\n/**\r\n * События\r\n * @type {{one(*, *, *, *): void, trigger(*, *, *): (null|*), off(*, *, *, *): void, on(*, *, *, *): void}}\r\n */\r\nconst EventHandler = {\r\n\t/**\r\n\t * Прослушиватель событий (элемент, событие (полный список смотри в константе nativeEvents, источник события или хендлер, функция обратного вызова))\r\n\t * @param element\r\n\t * @param event\r\n\t * @param handler\r\n\t * @param delegationFunction\r\n\t */\r\n\ton(element, event, handler, delegationFunction) {\r\n\t\taddHandler(element, event, handler, delegationFunction, false)\r\n\t},\r\n\r\n\t/**\r\n\t * Прослушиватель событий, но замыкается и больше не повторяется на элементе\r\n\t * @param element\r\n\t * @param event\r\n\t * @param handler\r\n\t * @param delegationFunction\r\n\t */\r\n\tone(element, event, handler, delegationFunction) {\r\n\t\taddHandler(element, event, handler, delegationFunction, true)\r\n\t},\r\n\r\n\t/**\r\n\t * Удаление обработчика\r\n\t * @param element\r\n\t * @param originalTypeEvent\r\n\t * @param handler\r\n\t * @param delegationFunction\r\n\t */\r\n\toff(element, originalTypeEvent, handler, delegationFunction) {\r\n\t\tif (typeof originalTypeEvent !== 'string' || !element) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\r\n\t\tconst inNamespace = typeEvent !== originalTypeEvent\r\n\t\tconst events = getElementEvents(element)\r\n\t\tconst storeElementEvent = events[typeEvent] || {}\r\n\t\tconst isNamespace = originalTypeEvent.startsWith('.')\r\n\r\n\t\tif (typeof callable !== 'undefined') {\r\n\t\t\t// Simplest case: handler is passed, remove that listener ONLY.\r\n\t\t\tif (!Object.keys(storeElementEvent).length) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tremoveHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (isNamespace) {\r\n\t\t\tfor (const elementEvent of Object.keys(events)) {\r\n\t\t\t\tremoveNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\r\n\t\t\tconst handlerKey = keyHandlers.replace(stripUidRegex, '')\r\n\r\n\t\t\tif (!inNamespace || originalTypeEvent.includes(handlerKey)) {\r\n\t\t\t\tremoveHandler(element, events, typeEvent, event.callable, event.delegationSelector)\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Пользовательские события. Подробнее тут https://learn.javascript.ru/dispatch-events\r\n\t * @param element\r\n\t * @param event\r\n\t * @param args\r\n\t * @returns {*|null}\r\n\t */\r\n\ttrigger(element, event, args) {\r\n\t\tif (typeof event !== 'string' || !element) {\r\n\t\t\treturn null\r\n\t\t}\r\n\r\n\t\tlet bubbles = true;\r\n\t\tlet nativeDispatch = true;\r\n\t\tlet defaultPrevented = false;\r\n\r\n\t\tconst evt = hydrateObj(new Event(event, { bubbles, cancelable: true }), args)\r\n\r\n\t\tif (defaultPrevented) {\r\n\t\t\tevt.preventDefault()\r\n\t\t}\r\n\r\n\t\tif (nativeDispatch) {\r\n\t\t\telement.dispatchEvent(evt)\r\n\t\t}\r\n\r\n\t\treturn evt\r\n\t}\r\n}\r\n\r\nexport default EventHandler\r\n","import EventHandler from \"../utils/js/dom/event\";\r\nimport {isDisabled, isEmptyObj} from \"../utils/js/functions\";\r\nimport Selectors from \"../utils/js/dom/selectors\";\r\n\r\n/**\r\n * Тут собраны вспомогательные скрипты для работы модулей\r\n */\r\n\r\n/**\r\n * Набор svg элементов\r\n * @param name\r\n * @returns {*|{}}\r\n */\r\nconst getSVG = (name) => {\r\n\tconst svg = {\r\n\t\terror: '<svg viewBox=\"0 0 87 87\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><g id=\"ui-success\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"Group-2\" transform=\"translate(2.000000, 2.000000)\"><circle id=\"Oval-2\" stroke=\"rgba(252, 191, 191, .5)\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><circle class=\"ui-error-circle\" stroke=\"#F74444\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><path class=\"ui-error-line1\" d=\"M22.244224,22 L60.4279902,60.1837662\" id=\"Line\" stroke=\"#F74444\" stroke-width=\"3\" stroke-linecap=\"square\"></path><path class=\"ui-error-line2\" d=\"M60.755776,21 L23.244224,59.8443492\" id=\"Line\" stroke=\"#F74444\" stroke-width=\"3\" stroke-linecap=\"square\"></path></g></g></svg>',\r\n\t\tsuccess: '<svg viewBox=\"0 0 87 87\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><g id=\"ui-error\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"Group-3\" transform=\"translate(2.000000, 2.000000)\"><circle id=\"Oval-2\" stroke=\"rgba(117, 183, 152, 0.4)\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><circle class=\"ui-success-circle\" id=\"Oval-2\" stroke=\"#A5DC86\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><polyline class=\"ui-success-path\" id=\"Path-2\" stroke=\"#A5DC86\" stroke-width=\"4\" points=\"19 38.8036813 31.1020744 54.8046875 63.299221 28\"></polyline></g></g></svg>',\r\n\t\twaiting: '<svg viewBox=\"0 0 87 87\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><g id=\"ui-waiting\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"Group-3\" transform=\"translate(2.000000, 2.000000)\"><circle id=\"Oval-2\" stroke=\"rgba(255, 218, 106, 0.4)\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><circle class=\"ui-waiting-circle\" id=\"Oval-2\" stroke=\"#ffda6a\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><path class=\"ui-waiting-line1\" d=\"M43 63C54.598 63 64 53.598 64 42C64 30.402 54.598 21 43 21C31.402 21 22 30.402 22 42C22 53.598 31.402 63 43 63Z\" stroke-width=\"3\" stroke=\"#ffda6a\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path class=\"ui-waiting-line2\" d=\"M40.6667 32.6641V44.3307H52.3334\" stroke=\"#ffda6a\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g></g></svg>',\r\n\t\tdots: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-three-dots-vertical\" viewBox=\"0 0 16 16\"><path d=\"M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z\"/></svg>',\r\n\t\tcross: '<svg version=\"1.1\" id=\"Capa_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 224.512 224.512\" xml:space=\"preserve\"><g><polygon points=\"224.507,6.997 217.521,0 112.256,105.258 6.998,0 0.005,6.997 105.263,112.254 0.005,217.512 6.998,224.512 112.256,119.24 217.521,224.512 224.507,217.512 119.249,112.254 \"/></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg>'\r\n\t};\r\n\r\n\treturn svg[name] ?? {};\r\n}\r\n\r\n/**\r\n * Вешаем событие \"Закрыть\" на все модалки, сайдбары и т.п.\r\n * @param module\r\n * @param method\r\n */\r\nconst dismissTrigger = (module, method = 'hide') => {\r\n\tconst clickEvent = `click.dismiss.${module.EVENT_KEY}`\r\n\tconst name = module.NAME;\r\n\r\n\tEventHandler.on(document, clickEvent, `[data-vg-dismiss=\"${name}\"]`, function (event) {\r\n\t\tif (['A', 'AREA'].includes(this.tagName)) {\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\r\n\t\tif (isDisabled(this)) return;\r\n\r\n\t\tconst target = Selectors.getSelectorFromElement(this) || this.closest(`.vg-${name}`);\r\n\t\tconst instance = module.getOrCreateInstance(target);\r\n\r\n\t\tinstance[method]();\r\n\t})\r\n}\r\n\r\n/**\r\n * AJAX REQUEST\r\n * @type {{post: ajax.post, get: ajax.get, x: ((function(): (XMLHttpRequest))|*), send: ajax.send}}\r\n */\r\nconst Ajax = {\r\n\tx: function () {\r\n\t\tif (typeof XMLHttpRequest !== 'undefined') {\r\n\t\t\treturn new XMLHttpRequest();\r\n\t\t}\r\n\t\tlet versions = [\r\n\t\t\t\"MSXML2.XmlHttp.6.0\",\r\n\t\t\t\"MSXML2.XmlHttp.5.0\",\r\n\t\t\t\"MSXML2.XmlHttp.4.0\",\r\n\t\t\t\"MSXML2.XmlHttp.3.0\",\r\n\t\t\t\"MSXML2.XmlHttp.2.0\",\r\n\t\t\t\"Microsoft.XmlHttp\"\r\n\t\t];\r\n\r\n\t\tlet xhr;\r\n\t\tfor (let i = 0; i < versions.length; i++) {\r\n\t\t\ttry {\r\n\t\t\t\txhr = new ActiveXObject(versions[i]);\r\n\t\t\t\tbreak;\r\n\t\t\t} catch (e) {}\r\n\t\t}\r\n\r\n\t\treturn xhr;\r\n\t},\r\n\r\n\tsend: function (url, callback, method, data, async) {\r\n\t\tif (async === undefined) {\r\n\t\t\tasync = true;\r\n\t\t}\r\n\t\tlet x = Ajax.x();\r\n\t\tx.open(method, url, async);\r\n\t\tx.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n\t\tx.onreadystatechange = function () {\r\n\t\t\tif (x.readyState === 4) {\r\n\t\t\t\tswitch (x.status) {\r\n\t\t\t\t\tcase 200:\r\n\t\t\t\t\t\tcallback('success', {text: x.statusText, response: x.responseText, code: x.status})\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tcallback('error', {text: x.statusText, response: x.responseText, code: x.status})\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\tx.send(data)\r\n\t},\r\n\r\n\tget: function (url, data, callback, async) {\r\n\t\tlet query = [];\r\n\r\n\t\tif (!isEmptyObj(data)) {\r\n\t\t\tfor (let key of data) {\r\n\t\t\t\tquery.push(encodeURIComponent(key[0]) + '=' + encodeURIComponent(key[1]));\r\n\t\t\t}\r\n\t\t}\r\n\t\tAjax.send(url + (query.length ? '?' + query.join('&') : ''), callback, 'GET', null, async)\r\n\t},\r\n\r\n\tpost: function (url, data, callback, async) {\r\n\t\tAjax.send(url, callback, 'POST', data, async)\r\n\t}\r\n};\r\n\r\nexport {\r\n\tdismissTrigger, Ajax, getSVG\r\n}","import {isElement, mergeDeepObject} from \"../functions\";\r\nimport EventHandler from \"../dom/event\";\r\n\r\n/**\r\n * Классы для анимаций смотрим здесь\r\n * https://animate.style/\r\n *\r\n * Работает с модулями у которых есть события show, hide, hidden\r\n */\r\nclass Animation {\r\n\tconstructor(element, key, params = {}) {\r\n\t\tthis._params = mergeDeepObject({\r\n\t\t\tenable: false,\r\n\t\t\tin: 'animate__backInUp',\r\n\t\t\tout: 'animate__backOutUp',\r\n\t\t\tdelay: 0,\r\n\t\t}, params);\r\n\r\n\t\tthis.classes = {\r\n\t\t\tanimated: 'animate__animated'\r\n\t\t}\r\n\r\n\t\tif (!this._params.enable) return;\r\n\t\tif (!isElement(element)) return;\r\n\r\n\t\tthis._element = element;\r\n\t\tthis._name_key = key;\r\n\r\n\t\tif (!this._element.classList.contains(this.classes.animated)) {\r\n\t\t\tthis._element.classList.add(this.classes.animated);\r\n\t\t}\r\n\r\n\t\tthis._triggers();\r\n\t}\r\n\r\n\t_triggers() {\r\n\t\tEventHandler.on(this._element, this._name_key + '.show', () => {\r\n\t\t\tthis._element.classList.remove(this._params.out);\r\n\t\t\tthis._element.classList.add(this._params.in);\r\n\t\t});\r\n\r\n\t\tEventHandler.on(this._element, this._name_key + '.hide', () => {\r\n\t\t\tthis._element.classList.remove(this._params.in);\r\n\t\t\tthis._element.classList.add(this._params.out);\r\n\t\t});\r\n\r\n\t\tEventHandler.on(this._element, this._name_key + '.hidden', () => {\r\n\t\t\tthis._element.classList.remove(this._params.out);\r\n\t\t});\r\n\t}\r\n}\r\n\r\nexport default Animation;","import {execute, executeAfterTransition, isEmptyObj} from \"../utils/js/functions\";\r\nimport Selectors from \"../utils/js/dom/selectors\";\r\nimport Data from \"../utils/js/dom/data\";\r\nimport Params from \"../utils/js/components/params\";\r\nimport EventHandler from \"../utils/js/dom/event\";\r\nimport {Ajax, getSVG} from \"./module-fn\";\r\nimport Animation from \"../utils/js/components/animation\";\r\n\r\nclass BaseModule {\r\n\tconstructor(element) {\r\n\t\tif (!element) return\r\n\r\n\t\tthis._element = Selectors.find(element);\r\n\t\tif (!this._element){\r\n\t\t\tthrow new Error('Товарищ! Первый параметр не должен быть пустым!');\r\n\t\t}\r\n\r\n\t\tthis._params = {};\r\n\t\tData.set(this._element, this.constructor.NAME_KEY, this);\r\n\t}\r\n\r\n\t_getParams(element, params) {\r\n\t\treturn new Params(params, element).get();\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tData.remove(this._element, this.constructor.NAME_KEY);\r\n\t\tEventHandler.off(this._element, this.constructor.EVENT_KEY)\r\n\r\n\t\tfor (const propertyName of Object.getOwnPropertyNames(this)) {\r\n\t\t\tthis[propertyName] = null\r\n\t\t}\r\n\t}\r\n\r\n\t_route(callback) {\r\n\t\tconst _this = this;\r\n\t\tlet $content = null;\r\n\r\n\t\tconst setData = (data) => {\r\n\t\t\tif ($content) $content.innerHTML = data;\r\n\t\t};\r\n\r\n\t\tif (!_this._params.hasOwnProperty('ajax')) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!_this._params.ajax.route) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!'method' in _this._params.ajax) {\r\n\t\t\t_this._params.ajax.method = 'get';\r\n\t\t}\r\n\r\n\t\tif ('target' in _this._params.ajax && _this._params.ajax.target) {\r\n\t\t\t$content = Selectors.find(_this._params.ajax.target);\r\n\t\t}\r\n\r\n\t\tif ('loader' in _this._params.ajax && _this._params.ajax.loader) {\r\n\t\t\tsetData('<div class=\"vg-loader\"></div>');\r\n\t\t}\r\n\r\n\t\tAjax[_this._params.ajax.method](_this._params.ajax.route, _this._params.ajax.data || {}, function (status, data) {\r\n\t\t\tsetData(data.response);\r\n\t\t\texecute(callback, [status, data]);\r\n\t\t});\r\n\t}\r\n\r\n\t_dismissElement() {\r\n\t\tlet cross = getSVG('cross'),\r\n\t\t\tbutton = this._element.querySelector('.vg-btn-close');\r\n\r\n\t\tif (button) {\r\n\t\t\tlet svg = button.querySelector('svg');\r\n\t\t\tif (!svg) button.insertAdjacentHTML('beforeend', cross);\r\n\t\t}\r\n\t}\r\n\r\n\t_queueCallback(callback, element, isAnimated = true, timeOutMs) {\r\n\t\texecuteAfterTransition(callback, element, isAnimated, timeOutMs);\r\n\t}\r\n\r\n\t_animation(element, key, params = {}) {\r\n\t\tnew Animation(element, key, params);\r\n\t}\r\n\r\n\tstatic getInstance(element) {\r\n\t\treturn Data.get(Selectors.find(element), this.NAME_KEY)\r\n\t}\r\n\r\n\tstatic getOrCreateInstance(element, params = {}) {\r\n\t\treturn this.getInstance(element) || new this(element, !isEmptyObj(params) ? params : {})\r\n\t}\r\n\r\n\tstatic get DATA_KEY() {\r\n\t\treturn `vg.${this.NAME}`\r\n\t}\r\n\r\n\tstatic get EVENT_KEY() {\r\n\t\treturn `.${this.DATA_KEY}`\r\n\t}\r\n}\r\n\r\nexport default BaseModule;","import {Manipulator} from \"../dom/manipulator\";\r\n\r\n/**\r\n * Класс Overflow\r\n * Запрещает скроллинг и убирает его, компенсируя отступом\r\n */\r\n\r\nclass Overflow {\r\n\tstatic append() {\r\n\t\tdocument.body.style.paddingRight = getWidth() + 'px';\r\n\t\tdocument.body.style.overflow = 'hidden';\r\n\r\n\t\tfunction getWidth() {\r\n\t\t\tconst documentWidth = document.documentElement.clientWidth\r\n\t\t\treturn Math.abs(window.innerWidth - documentWidth)\r\n\t\t}\r\n\t}\r\n\r\n\tstatic destroy() {\r\n\t\tdocument.body.style.overflow = '';\r\n\t\tdocument.body.style.paddingRight = '';\r\n\r\n\t\tlet styles = Manipulator.get(document.body, 'style');\r\n\t\tif (!styles) Manipulator.remove(document.body, 'style');\r\n\t}\r\n}\r\n\r\nexport default Overflow;","import {execute} from \"../functions\";\r\nimport Selectors from \"../dom/selectors\";\r\nimport EventHandler from \"../dom/event\";\r\nimport Overflow from \"./overflow\";\r\n\r\nconst NAME = 'backdrop';\r\nconst CLASS_NAME = 'vg-backdrop';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst EVENT_MOUSEDOWN = `mousedown.vg.${NAME}`;\r\n\r\nlet backdrop_delay = 500;\r\n\r\nclass Backdrop {\r\n\tstatic show(callback) {\r\n\t\tBackdrop._append()\r\n\t\texecute(callback);\r\n\t}\r\n\r\n\tstatic hide(callback) {\r\n\t\tBackdrop._destroy();\r\n\t\texecute(callback);\r\n\t}\r\n\r\n\tstatic _append() {\r\n\t\tif (Selectors.find('.' + CLASS_NAME)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tlet backdrop = document.createElement('div');\r\n\t\tbackdrop.classList.add(CLASS_NAME);\r\n\r\n\t\tdocument.body.append(backdrop);\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tbackdrop.classList.add(CLASS_NAME_FADE)\r\n\t\t}, 50);\r\n\r\n\t\tEventHandler.on(backdrop, EVENT_MOUSEDOWN, () => {\r\n\t\t\tBackdrop.hide()\r\n\t\t\tOverflow.destroy();\r\n\t\t});\r\n\t}\r\n\r\n\tstatic _destroy() {\r\n\t\tlet element = Selectors.find('.' + CLASS_NAME);\r\n\t\tif (!element) return;\r\n\r\n\t\telement.classList.remove(CLASS_NAME_FADE);\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\telement.remove();\r\n\t\t}, backdrop_delay);\r\n\t}\r\n}\r\n\r\nexport default Backdrop;","import BaseModule from \"../../base-module\";\r\nimport {isDisabled, isVisible, mergeDeepObject} from \"../../../utils/js/functions\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {dismissTrigger} from \"../../module-fn\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport Backdrop from \"../../../utils/js/components/backdrop\";\r\nimport Overflow from \"../../../utils/js/components/overflow\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'sidebar';\r\nconst NAME_KEY = 'vg.sidebar';\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"sidebar\"]';\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_OPEN = 'vg-sidebar-open';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\nconst EVENT_KEY_LOADED = `${NAME_KEY}.loaded`;\r\n\r\nconst EVENT_KEY_KEYDOWN_DISMISS = `keydown.dismiss.${NAME_KEY}`;\r\nconst EVENT_KEY_HIDE_PREVENTED = `hidePrevented.${NAME_KEY}`;\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nclass VGSidebar extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tbackdrop: true,\r\n\t\t\toverflow: true,\r\n\t\t\tkeyboard: true,\r\n\t\t\tanimation: {\r\n\t\t\t\tenable: false,\r\n\t\t\t\tin: 'animate__rollIn',\r\n\t\t\t\tout: 'animate__rollOut',\r\n\t\t\t\tdelay: 800,\r\n\t\t\t},\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\tloader: false,\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._addEventListeners();\r\n\t\tthis._dismissElement();\r\n\r\n\t\tthis._params.animation.delay = !this._params.animation.enable ? 0 : this._params.animation.delay;\r\n\t\tthis._animation(this._element, VGSidebar.NAME_KEY, this._params.animation);\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY\r\n\t}\r\n\r\n\ttoggle(relatedTarget) {\r\n\t\treturn !this._isShown() ? this.show(relatedTarget) : this.hide();\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\t\tconst _this = this;\r\n\t\tif (isDisabled(_this._element)) return;\r\n\r\n\t\t_this._params = _this._getParams(relatedTarget, _this._params);\r\n\t\t_this._route(function (status, data) {\r\n\t\t\tEventHandler.trigger(_this._element, EVENT_KEY_LOADED, {stats: status, data: data});\r\n\t\t});\r\n\r\n\t\tconst showEvent = EventHandler.trigger(_this._element, EVENT_KEY_SHOW, { relatedTarget })\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tif (_this._params.backdrop) {\r\n\t\t\tBackdrop.show();\r\n\t\t}\r\n\r\n\t\tif (_this._params.overflow) {\r\n\t\t\tOverflow.append();\r\n\t\t}\r\n\r\n\t\t_this._element.classList.add(CLASS_NAME_SHOW);\r\n\t\tdocument.body.classList.add(CLASS_NAME_OPEN);\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tEventHandler.on(Selectors.find('.vg-backdrop'), 'mousedown.vg.backdrop', function () {\r\n\t\t\t\t_this.hide();\r\n\t\t\t});\r\n\r\n\t\t\tEventHandler.trigger(_this._element, EVENT_KEY_SHOWN, { relatedTarget });\r\n\t\t}\r\n\t\t_this._queueCallback(completeCallBack, _this._element, true, 50)\r\n\t}\r\n\r\n\thide() {\r\n\t\tconst _this = this;\r\n\t\tif (isDisabled(_this._element)) return;\r\n\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE);\r\n\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\t_this._element.setAttribute('aria-expanded', false);\r\n\t\t\t_this._element.classList.remove(CLASS_NAME_SHOW);\r\n\r\n\t\t\tconst completeCallback = () => {\r\n\t\t\t\tif (_this._params.backdrop) {\r\n\t\t\t\t\tBackdrop.hide(function () {\r\n\t\t\t\t\t\tif (_this._params.overflow) {\r\n\t\t\t\t\t\t\tOverflow.destroy();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (_this._params.overflow) {\r\n\t\t\t\t\tOverflow.destroy();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdocument.body.classList.remove(CLASS_NAME_OPEN);\r\n\t\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDDEN);\r\n\t\t\t}\r\n\t\t\tthis._queueCallback(completeCallback, this._element, true);\r\n\t\t}, this._params.animation.delay);\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t_isShown() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\t_addEventListeners() {\r\n\t\tEventHandler.on(document, EVENT_KEY_KEYDOWN_DISMISS, event => {\r\n\t\t\tif (event.key !== 'Escape') return;\r\n\r\n\t\t\tif (this._params.keyboard) {\r\n\t\t\t\tthis.hide();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDE_PREVENTED)\r\n\t\t});\r\n\t}\r\n}\r\n\r\ndismissTrigger(VGSidebar);\r\n\r\n/**\r\n * Data API implementation\r\n */\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\tconst target = Selectors.getElementFromSelector(this);\r\n\r\n\tif (['A', 'AREA'].includes(this.tagName)) {\r\n\t\tevent.preventDefault()\r\n\t}\r\n\r\n\tif (isDisabled(this)) {\r\n\t\treturn\r\n\t}\r\n\r\n\tthis.setAttribute('aria-expanded', true);\r\n\tEventHandler.one(target, EVENT_KEY_HIDDEN, () => {\r\n\t\t//if (isVisible(this)) this.focus();\r\n\t\tthis.setAttribute('aria-expanded', false);\r\n\t})\r\n\r\n\tconst alreadyOpen = Selectors.find('.vg-sidebar.show')\r\n\tif (alreadyOpen && alreadyOpen !== target) {\r\n\t\tVGSidebar.getInstance(alreadyOpen).hide()\r\n\t}\r\n\r\n\tconst data = VGSidebar.getOrCreateInstance(target)\r\n\tdata.toggle(this);\r\n});\r\n\r\nexport default VGSidebar;\r\n","import BaseModule from \"../../base-module\";\r\nimport {mergeDeepObject, reflow} from \"../../../utils/js/functions\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'collapse';\r\nconst NAME_KEY = 'vg.collapse';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_COLLAPSE = 'vg-collapse';\r\nconst CLASS_NAME_COLLAPSING = 'vg-collapsing';\r\nconst CLASS_NAME_COLLAPSED = 'vg-collapsed';\r\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;\r\n\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"collapse\"]';\r\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\n\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nclass VGCollapse extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\ttoggle: true,\r\n\t\t\tparent: null,\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\tloader: false,\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._isTransitioning = false\r\n\t\tthis._triggerArray = []\r\n\r\n\t\tconst toggleList = Selectors.findAll(SELECTOR_DATA_TOGGLE);\r\n\r\n\t\tfor (const elem of toggleList) {\r\n\t\t\tconst selector = Selectors.getSelectorFromElement(elem);\r\n\t\t\tconst filterElement = Selectors.findAll(selector).filter(foundElement => foundElement === this._element);\r\n\r\n\t\t\tif (selector !== null && filterElement.length) {\r\n\t\t\t\tthis._triggerArray.push(elem)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._initializeChildren();\r\n\r\n\t\tif (!this._params.parent) {\r\n\t\t\tthis._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\r\n\t\t}\r\n\r\n\t\tif (this._params.toggle) {\r\n\t\t\tthis.toggle();\r\n\t\t}\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY\r\n\t}\r\n\r\n\ttoggle(relatedTarget) {\r\n\t\treturn !this._isShown() ? this.show(relatedTarget) : this.hide();\r\n\t}\r\n\r\n\tshow() {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (_this._isTransitioning || _this._isShown()) return;\r\n\r\n\t\tlet activeChildren = [];\r\n\r\n\t\tif (_this._params.parent) {\r\n\t\t\tactiveChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES)\r\n\t\t\t\t.filter(element => element !== this._element)\r\n\t\t\t\t.map(element => VGCollapse.getOrCreateInstance(element, { toggle: false }));\r\n\t\t}\r\n\r\n\t\tif (activeChildren.length && activeChildren[0]._isTransitioning) return;\r\n\r\n\t\tconst startEvent = EventHandler.trigger(_this._element, EVENT_KEY_SHOW);\r\n\t\tif (startEvent.defaultPrevented) return;\r\n\r\n\t\tfor (const activeInstance of activeChildren) {\r\n\t\t\tactiveInstance.hide();\r\n\t\t}\r\n\r\n\t\t_this._element.classList.remove(CLASS_NAME_COLLAPSE)\r\n\t\t_this._element.classList.add(CLASS_NAME_COLLAPSING)\r\n\r\n\t\t_this._element.style.height = 0;\r\n\r\n\t\t_this._addAriaAndCollapsedClass(_this._triggerArray, true);\r\n\t\t_this._isTransitioning = true;\r\n\r\n\t\t_this._route();\r\n\r\n\t\tconst complete = () => {\r\n\t\t\t_this._isTransitioning = false;\r\n\r\n\t\t\t_this._element.classList.remove(CLASS_NAME_COLLAPSING);\r\n\t\t\t_this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\r\n\r\n\t\t\t_this._element.style.height = '';\r\n\t\t\tEventHandler.trigger(_this._element, EVENT_KEY_SHOWN);\r\n\t\t}\r\n\r\n\t\t_this._queueCallback(complete, _this._element, true);\r\n\r\n\t\tconst scrollSize = `scrollHeight`;\r\n\t\t_this._element.style.height = `${_this._element[scrollSize]}px`;\r\n\t}\r\n\r\n\thide() {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (_this._isTransitioning || !_this._isShown()) return;\r\n\r\n\t\tconst startEvent = EventHandler.trigger(_this._element, EVENT_KEY_HIDE)\r\n\t\tif (startEvent.defaultPrevented) return;\r\n\r\n\t\t_this._element.style.height = `${this._element.getBoundingClientRect().height}px`;\r\n\t\treflow(_this._element);\r\n\r\n\t\t_this._element.classList.add(CLASS_NAME_COLLAPSING);\r\n\t\t_this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\r\n\r\n\t\tfor (const trigger of _this._triggerArray) {\r\n\t\t\tconst element = Selectors.getElementFromSelector(trigger);\r\n\r\n\t\t\tif (element && !_this._isShown(element)) {\r\n\t\t\t\t_this._addAriaAndCollapsedClass([trigger], false);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t_this._isTransitioning = true\r\n\r\n\t\tconst complete = () => {\r\n\t\t\t_this._isTransitioning = false;\r\n\t\t\t_this._element.classList.remove(CLASS_NAME_COLLAPSING);\r\n\t\t\t_this._element.classList.add(CLASS_NAME_COLLAPSE);\r\n\t\t\tEventHandler.trigger(_this._element, EVENT_KEY_HIDDEN);\r\n\t\t}\r\n\r\n\t\t_this._element.style.height = '';\r\n\t\t_this._queueCallback(complete, _this._element, true);\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t_isShown(element = this._element) {\r\n\t\treturn element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\t_addAriaAndCollapsedClass(triggerArray, isOpen) {\r\n\t\tif (!triggerArray.length) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tfor (const element of triggerArray) {\r\n\t\t\tthis._changeStateButton(element, isOpen);\r\n\t\t}\r\n\t}\r\n\r\n\t_initializeChildren() {\r\n\t\tif (!this._params.parent) return;\r\n\r\n\t\tconst children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE);\r\n\r\n\t\tfor (const element of children) {\r\n\t\t\tconst selected = Selectors.getElementFromSelector(element)\r\n\r\n\t\t\tif (selected) {\r\n\t\t\t\tthis._addAriaAndCollapsedClass([element], this._isShown(selected))\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t_getFirstLevelChildren(selector) {\r\n\t\tconst children = Selectors.find(CLASS_NAME_DEEPER_CHILDREN, this._params.parent);\r\n\t\treturn Selectors.find(selector, this._params.parent).filter(element => !children.includes(element));\r\n\t}\r\n\r\n\t_changeStateButton(element, isOpen) {\r\n\t\telement.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);\r\n\t\telement.setAttribute('aria-expanded', isOpen);\r\n\t\telement.innerHTML = Manipulator.get(element, `data-${isOpen ? 'hide' : 'show'}-text`) || element.innerHTML;\r\n\t}\r\n}\r\n\r\n/**\r\n * Data API implementation\r\n */\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\tif (event.target.tagName === 'A' || (event.delegateTarget && event.delegateTarget.tagName === 'A')) {\r\n\t\tevent.preventDefault()\r\n\t}\r\n\r\n\tSelectors.getMultipleElementsFromSelector(this).forEach(function (element) {\r\n\t\tVGCollapse.getOrCreateInstance(element, {toggle: false}).toggle();\r\n\t});\r\n})\r\n\r\nexport default VGCollapse;","/**\r\n * Класс Responsive, работает по таким же медиа точкам, что и bootstrap\r\n * и определяет на тач устройства.\r\n */\r\n\r\nclass Responsive {\r\n\tconstructor() {\r\n\t\tthis.breakpoints = {\r\n\t\t\txs: 0,\r\n\t\t\tsm: 576,\r\n\t\t\tmd: 768,\r\n\t\t\tlg: 992,\r\n\t\t\txl: 1200,\r\n\t\t\txxl: 1400,\r\n\t\t\txxxl: 1600,\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Если наша ширина экрана совпадает с диапазоном который указан в модуле выдаем true, иначе false\r\n\t * @param module\r\n\t * @returns {boolean}\r\n\t */\r\n\tstatic check(module) {\r\n\t\tlet instance = new this ;\r\n\t\treturn instance.define(module);\r\n\t}\r\n\r\n\t/**\r\n\t * Проверяет на тач устройства. TODO не совсем правильно, надо сделать по-другому\r\n\t * @returns {boolean}\r\n\t */\r\n\tstatic checkMobileOrTablet() {\r\n\t\tlet check = false;\r\n\t\t(function(a) {\r\n\t\t\tif (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.slice(0,4))){\r\n\t\t\t\tcheck = true;\r\n\t\t\t}\r\n\t\t})(navigator.userAgent||navigator.vendor||window.opera);\r\n\r\n\t\treturn check;\r\n\t}\r\n\r\n\tdefine(module) {\r\n\t\tlet windowWidth = window.innerWidth,\r\n\t\t\tresponsive_size = this._checkResponsiveClass(module),\r\n\t\t\tbreakpoints = this.breakpoints,\r\n\t\t\tpoint = Object.keys(breakpoints).find(key => breakpoints[key] === responsive_size);\r\n\r\n\t\tlet keys = Object.keys(breakpoints),\r\n\t\t\tloc = keys.indexOf(point);\r\n\r\n\t\treturn windowWidth >= breakpoints[keys[loc + 1]];\r\n\t}\r\n\r\n\t_checkResponsiveClass(module) {\r\n\t\tlet element = module._element,\r\n\t\t\tparams = module._params,\r\n\t\t\tcurrent_responsive_size = 0;\r\n\r\n\t\tif (element.classList.contains(params.classes.XXXL)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.xxxl;\r\n\t\t} else if (element.classList.contains(params.classes.XXL)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.xxl;\r\n\t\t} else if (element.classList.contains(params.classes.XL)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.xl;\r\n\t\t} else if (element.classList.contains(params.classes.LG)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.lg;\r\n\t\t} else if (element.classList.contains(params.classes.MD)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.md;\r\n\t\t} else if (element.classList.contains(params.classes.SM)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.sm;\r\n\t\t} else if (element.classList.contains(params.classes.XS)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.xs;\r\n\t\t} else {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.xs;\r\n\t\t}\r\n\r\n\t\treturn current_responsive_size\r\n\t}\r\n}\r\n\r\nexport default Responsive;","import BaseModule from \"../../base-module\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport Responsive from \"../../../utils/js/components/responsive\";\r\nimport {getSVG} from \"../../module-fn\";\r\nimport {execute, isDisabled, isVisible, mergeDeepObject, noop, normalizeData} from \"../../../utils/js/functions\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'nav';\r\nconst NAME_KEY = 'vg.nav';\r\n\r\n/**\r\n * Constants Classes\r\n */\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_ACTIVE = 'active';\r\nconst SELECTOR_DATA_TOGGLE = '.vg-nav a';\r\n\r\n/**\r\n * Constants Events\r\n */\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\n\r\nconst EVENT_MOUSEOVER_DATA_API = `mouseover.${NAME_KEY}.data.api`;\r\nconst EVENT_MOUSEOUT_DATA_API = `mouseout.${NAME_KEY}.data.api`;\r\nconst EVENT_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\nconst EVENT_KEYUP_DATA_API = `keyup.${NAME_KEY}.data.api`;\r\nconst EVENT_RESIZE_DATA_API = `resize.${NAME_KEY}.data.api`;\r\n\r\nclass VGNav extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tbreakpoint: false,\r\n\t\t\tplacement: 'horizontal',\r\n\t\t\tclasses: {\r\n\t\t\t\thamburgerActive: 'vg-nav-hamburger-active',\r\n\t\t\t\thamburgerAlways: 'vg-nav-hamburger-always',\r\n\t\t\t\thamburger: 'vg-nav-hamburger',\r\n\t\t\t\tcontainer: 'vg-nav-container',\r\n\t\t\t\twrapper: 'vg-nav-wrapper',\r\n\t\t\t\tactive: 'vg-nav-active',\r\n\t\t\t\texpand: 'vg-nav-expand',\r\n\t\t\t\tcloned: 'vg-nav-cloned',\r\n\t\t\t\thover: 'vg-nav-hover',\r\n\t\t\t\tflip: 'vg-nav-flip',\r\n\t\t\t\tXXXL: 'vg-nav-xxxl',\r\n\t\t\t\tXXL: 'vg-nav-xxl',\r\n\t\t\t\tXL: 'vg-nav-xl',\r\n\t\t\t\tLG: 'vg-nav-lg',\r\n\t\t\t\tMD: 'vg-nav-md',\r\n\t\t\t\tSM: 'vg-nav-sm',\r\n\t\t\t\tXS: 'vg-nav-xs'\r\n\t\t\t},\r\n\t\t\texpand: true,\r\n\t\t\thover: false,\r\n\t\t\tposition: true,\r\n\t\t\tcollapse: true,\r\n\t\t\ttoggle: '<span class=\"default\"></span>',\r\n\t\t\thamburger: {\r\n\t\t\t\tenable: true,\r\n\t\t\t\talways: false,\r\n\t\t\t\ttitle: '',\r\n\t\t\t\tbody: null\r\n\t\t\t},\r\n\t\t\tcallback: noop,\r\n\t\t\tanimation: true,\r\n\t\t\ttimeoutAnimation: 300,\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get'\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._navigation = null;\r\n\t\tthis.navigation = '.' + this._params.classes.wrapper;\r\n\r\n\t\tthis.movedLinks = [];\r\n\t\tthis.$links = Selectors.findAll('.' + this._params.classes.wrapper + ' > li', this.navigation)\r\n\r\n\t\tif (this._params.animation === false) {\r\n\t\t\tthis._params.timeoutAnimation = 10\r\n\t\t}\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\tget navigation() {\r\n\t\treturn this._navigation;\r\n\t}\r\n\r\n\tset navigation(el) {\r\n\t\tlet elm = Selectors.find(el, this._element);\r\n\t\tif (!elm) return;\r\n\t\tthis._navigation = elm;\r\n\t}\r\n\r\n\tbuild() {\r\n\t\tif (!this.navigation) return;\r\n\r\n\t\tlet params = this._params;\r\n\r\n\t\t// Вешаем основные классы\r\n\t\tthis._element.classList.add(params.classes.container);\r\n\t\tthis._element.classList.add('vg-nav-' + params.placement);\r\n\r\n\t\t// Если нужно оставить список меню или установить медиа точку\r\n\t\tif (!params.breakpoint) {\r\n\t\t\tparams.expand = false;\r\n\t\t}\r\n\r\n\t\tif (!params.hamburger.always) {\r\n\t\t\tif (!params.breakpoint || !params.expand) {\r\n\t\t\t\tthis._element.classList.add(params.classes.expand);\r\n\t\t\t} else if (params.breakpoint !== false) {\r\n\t\t\t\tthis._element.classList.add('vg-nav-' + params.breakpoint);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis._element.classList.add(params.classes.hamburgerAlways);\r\n\t\t}\r\n\r\n\t\t// Меню срабатывает при наведении, если это не мобильное устройство\r\n\t\tif (params.hover) {\r\n\t\t\tthis._element.classList.add(params.classes.hover);\r\n\r\n\t\t\tif (Responsive.checkMobileOrTablet()) {\r\n\t\t\t\tthis._element.classList.remove(params.classes.hover);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Устанавливаем гамбургер, если его нет в разметке\r\n\t\tif (params.expand && !params.hamburger.body) {\r\n\t\t\tlet isHamburger = Selectors.find('.' + params.classes.hamburger, this._element);\r\n\r\n\t\t\tif (isHamburger === null) {\r\n\t\t\t\tlet mTitle = '',\r\n\t\t\t\t\thamburger = '<span class=\"' + params.classes.hamburger + '--lines\"><span></span><span></span><span></span></span>';\r\n\r\n\t\t\t\tif (params.hamburger.title) {\r\n\t\t\t\t\tmTitle = '<span class=\"' + params.classes.hamburger + '--title\">'+ params.hamburger.title +'</span>';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (params.hamburger.body !== null) {\r\n\t\t\t\t\thamburger = params.hamburger.body;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._element.insertAdjacentHTML('afterbegin','<a href=\"#sidebar-nav\" class=\"' + params.classes.hamburger + '\" data-vg-toggle=\"sidebar\">' + mTitle + hamburger +'</a>');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Устанавливаем указатель переключателя\r\n\t\tif (params.toggle) {\r\n\t\t\tlet $dropdown_a = [...Selectors.findAll('.dropdown-mega > a, .dropdown > a', this._element)],\r\n\t\t\t\ttoggle = '<span class=\"toggle\">' + params.toggle + '</span>';\r\n\r\n\t\t\tif ($dropdown_a.length) {\r\n\t\t\t\t$dropdown_a.forEach(function (elem) {\r\n\t\t\t\t\tif (!elem.querySelector('.toggle') && !elem.closest('.dots')) {\r\n\t\t\t\t\t\telem.setAttribute('aria-expanded', 'false')\r\n\t\t\t\t\t\telem.insertAdjacentHTML('beforeend', toggle)\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (params.collapse && Responsive.check(this) && params.placement !== 'vertical') {\r\n\t\t\tsetCollapse(this);\r\n\t\t}\r\n\r\n\t\tif ('afterInit' in this._params.callback) {\r\n\t\t\texecute(this._params.callback.afterInit, [this]);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Функция сворачивания\r\n\t\t * TODO Придумать что то с мега меню, которое уходит в подменю\r\n\t\t * TODO Так же есть косяки при ресайзе\r\n\t\t */\r\n\t\tfunction setCollapse(_this) {\r\n\t\t\tlet width_navigation_responsive = _this.navigation.clientWidth,\r\n\t\t\t\twidth_all_links_responsive = 0,\r\n\t\t\t\t$dots = Selectors.find('.dots', _this.navigation),\r\n\t\t\t\t_dots = getSVG('dots');\r\n\r\n\t\t\tif (_this.$links.length) {\r\n\t\t\t\tif ($dots) {\r\n\t\t\t\t\twidth_all_links_responsive = $dots.clientWidth\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlet $a = Selectors.find('a', _this.$links[0]),\r\n\t\t\t\t\t\t$linkStyle = getComputedStyle($a),\r\n\t\t\t\t\t\tpaddingLeft = normalizeData($linkStyle.paddingLeft.slice(0, -2)),\r\n\t\t\t\t\t\tpaddingRight = normalizeData($linkStyle.paddingRight.slice(0, -2)),\r\n\t\t\t\t\t\tpadding = paddingLeft + paddingRight;\r\n\r\n\t\t\t\t\t// TODO не совсем верно, но мы точно знаем ширину точек в svg - 16px\r\n\t\t\t\t\twidth_all_links_responsive = padding + 16;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor (let $link of _this.$links) {\r\n\t\t\t\t\tlet width = $link.getBoundingClientRect().width;\r\n\t\t\t\t\twidth_all_links_responsive = width_all_links_responsive + width;\r\n\r\n\t\t\t\t\tif ((width_navigation_responsive) < width_all_links_responsive) {\r\n\t\t\t\t\t\t_this.movedLinks.push($link);\r\n\t\t\t\t\t\t$link.remove();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (_this.movedLinks.length) {\r\n\t\t\t\t\t\t\tif ($dots) {\r\n\t\t\t\t\t\t\t\t_this.navigation.insertBefore(_this.movedLinks[0], $dots)\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t_this.navigation.appendChild(_this.movedLinks[0])\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t_this.movedLinks.splice(0, 1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (_this.movedLinks.length) {\r\n\t\t\t\t\tif (!$dots) {\r\n\t\t\t\t\t\t_this.navigation.insertAdjacentHTML('beforeend','<li class=\"dropdown dots\">' + '<a href=\"#\" aria-expanded=\"false\">'+ _dots +'</a></li>');\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif ($dots) {\r\n\t\t\t\t\t\t$dots.remove();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet $d = _this.navigation.querySelector('.dots');\r\n\t\t\t\tif ($d && _this.movedLinks.length) {\r\n\t\t\t\t\tlet $dropdown = $d.querySelector('ul');\r\n\t\t\t\t\tif ($dropdown) {\r\n\t\t\t\t\t\tfor (let link of _this.movedLinks) {\r\n\t\t\t\t\t\t\t$dropdown.prepend(link);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tlet $dropdown = document.createElement('ul');\r\n\t\t\t\t\t\t$dropdown.classList.add('dropdown-content');\r\n\t\t\t\t\t\t$dropdown.classList.add('right');\r\n\r\n\t\t\t\t\t\tfor (let link of _this.movedLinks) {\r\n\t\t\t\t\t\t\t$dropdown.prepend(link);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t$d.appendChild($dropdown);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\t\tlet target = relatedTarget.relatedTarget;\r\n\r\n\t\tif (!target || isDisabled(target)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!target.closest('.dropdown-content')) {\r\n\t\t\ttarget.classList.add('first');\r\n\t\t}\r\n\r\n\t\tconst showEvent = EventHandler.trigger(target, EVENT_KEY_SHOW, { relatedTarget });\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tlet drop = Selectors.find('.dropdown-content', target),\r\n\t\t\tlink = target.firstElementChild;\r\n\r\n\t\tif (link) link.setAttribute('aria-expanded', 'true');\r\n\t\tdrop.classList.add(CLASS_NAME_SHOW);\r\n\t\ttarget.classList.add(CLASS_NAME_ACTIVE);\r\n\r\n\t\tsetDropPosition(drop)\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tdrop.classList.add(CLASS_NAME_FADE);\r\n\t\t\tEventHandler.trigger(target, EVENT_KEY_SHOWN, relatedTarget)\r\n\t\t}\r\n\t\tthis._queueCallback(completeCallBack, drop, true, 50);\r\n\r\n\t\t/**\r\n\t\t *\r\n\t\t * @param $drop\r\n\t\t */\r\n\t\tfunction setDropPosition($drop) {\r\n\t\t\tlet {width, right} = $drop.getBoundingClientRect(),\r\n\t\t\t\twindow_width = window.innerWidth;\r\n\r\n\t\t\tlet N_right = window_width - right - width;\r\n\r\n\t\t\t$drop.classList.remove('right');\r\n\t\t\t$drop.classList.remove('left');\r\n\r\n\t\t\tlet $parent = $drop.closest('li'),\r\n\t\t\t\t$ul = $parent.querySelectorAll('ul');\r\n\r\n\t\t\tif (N_right > width) {\r\n\t\t\t\tfor (const $el of $ul) {\r\n\t\t\t\t\t$el.classList.add('left');\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (const $el of $ul) {\r\n\t\t\t\t\t$el.classList.add('right');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\thide(relatedTarget) {\r\n\t\tconst _this = this;\r\n\t\tif ('ontouchstart' in document.documentElement) {\r\n\t\t\tfor (const element of [].concat(...document.body.children)) {\r\n\t\t\t\tEventHandler.off(element, 'mouseover', noop);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet element = relatedTarget.relatedTarget;\r\n\r\n\t\tif ('elm' in relatedTarget && relatedTarget.elm) {\r\n\t\t\telement = relatedTarget.elm\r\n\t\t}\r\n\r\n\t\tif (element) {\r\n\t\t\tconst hideEvent = EventHandler.trigger(element, EVENT_KEY_HIDE);\r\n\t\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\t\telement.classList.remove(CLASS_NAME_ACTIVE);\r\n\r\n\t\t\tif (element.classList.contains('first')) {\r\n\t\t\t\telement.classList.remove('first');\r\n\t\t\t}\r\n\r\n\t\t\t[...Selectors.findAll('.' + CLASS_NAME_SHOW, element)].forEach(function (el, index) {\r\n\t\t\t\tel.classList.remove(CLASS_NAME_FADE);\r\n\r\n\t\t\t\tlet parent = el.closest('.dropdown');\r\n\t\t\t\tif (parent.classList.contains(CLASS_NAME_ACTIVE)) {\r\n\t\t\t\t\tparent.classList.remove(CLASS_NAME_ACTIVE);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet link = el.previousElementSibling;\r\n\t\t\t\tif (link) link.setAttribute('aria-expanded', 'false');\r\n\r\n\t\t\t\tif (index === 0) {\r\n\t\t\t\t\tconst completeCallback = () => {\r\n\t\t\t\t\t\tel.classList.remove(CLASS_NAME_SHOW);\r\n\t\t\t\t\t\tEventHandler.trigger(el, EVENT_KEY_HIDDEN, relatedTarget)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t_this._queueCallback(completeCallback, el, true, 500);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * TODO если на странице несколько навигаций, то есть косяки\r\n\t * @param element\r\n\t * @param params\r\n\t */\r\n\tstatic init(element, params = {}) {\r\n\t\tconst instance = VGNav.getOrCreateInstance(element, params);\r\n\t\tinstance.build();\r\n\r\n\t\tlet drops = Selectors.findAll('.dropdown', instance._navigation)\r\n\r\n\t\tif (instance._params.hover) {\r\n\t\t\t[...drops].forEach(function (el) {\r\n\t\t\t\tlet currentElem = null;\r\n\t\t\t\tEventHandler.on(el, EVENT_MOUSEOVER_DATA_API, function (event) {\r\n\t\t\t\t\tif (currentElem) return;\r\n\t\t\t\t\tVGNav.hideOpenDrops(event);\r\n\r\n\t\t\t\t\tlet target = event.target.closest('.dropdown');\r\n\t\t\t\t\tif (!target) return;\r\n\r\n\t\t\t\t\tif (!instance.navigation.contains(target)) return;\r\n\t\t\t\t\tcurrentElem = target;\r\n\r\n\t\t\t\t\tlet relatedTarget = {\r\n\t\t\t\t\t\trelatedTarget: target\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tinstance.show(relatedTarget);\r\n\t\t\t\t});\r\n\t\t\t\tEventHandler.on(el, EVENT_MOUSEOUT_DATA_API, function (event) {\r\n\t\t\t\t\tif (!currentElem) return;\r\n\r\n\t\t\t\t\tlet relatedTarget = event.relatedTarget.closest('.dropdown'),\r\n\t\t\t\t\t\telm = currentElem;\r\n\r\n\t\t\t\t\twhile (relatedTarget) {\r\n\t\t\t\t\t\tif (relatedTarget === currentElem) return;\r\n\t\t\t\t\t\trelatedTarget = relatedTarget.parentNode;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcurrentElem = null;\r\n\t\t\t\t\tinstance.hide({relatedTarget: relatedTarget, elm: elm});\r\n\t\t\t\t})\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\tEventHandler.on(document, EVENT_KEYUP_DATA_API, VGNav.clearDrops);\r\n\t\t\tEventHandler.on(document, EVENT_CLICK_DATA_API, VGNav.clearDrops);\r\n\t\t\tEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\t\t\t\tif (!Manipulator.has(this, 'aria-expanded')) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ('click' in instance._params.callback) {\r\n\t\t\t\t\texecute(instance._params.callback.click, [this]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tevent.preventDefault();\r\n\r\n\t\t\t\tlet self = this.closest('.vg-nav'),\r\n\t\t\t\t\tisFirst = self.querySelector('.first');\r\n\r\n\t\t\t\tlet target = this.closest('.dropdown');\r\n\t\t\t\tif (!target) return;\r\n\r\n\t\t\t\tif (isDisabled(target) && !isVisible(target)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (isFirst && this.closest('.first')) {\r\n\t\t\t\t\tif (target.classList.contains('active')) {\r\n\t\t\t\t\t\tinstance.hide({relatedTarget: target});\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t[...Selectors.findAll('.active', self)].forEach(function (el) {\r\n\t\t\t\t\t\tif (el && el !== target) {\r\n\t\t\t\t\t\t\tinstance.hide({relatedTarget: el})\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tinstance.show({relatedTarget: target});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tconst vgNavSidebar = document.getElementById('sidebar-nav');\r\n\t\tlet hamburger = instance._element.querySelector('.' + instance._params.classes.hamburger);\r\n\r\n\t\tif (vgNavSidebar && hamburger) {\r\n\t\t\tvgNavSidebar.addEventListener('vg.sidebar.show', function () {\r\n\t\t\t\thamburger.classList.add(instance._params.classes.hamburgerActive);\r\n\t\t\t});\r\n\r\n\t\t\tvgNavSidebar.addEventListener('vg.sidebar.hide', function () {\r\n\t\t\t\thamburger.classList.remove(instance._params.classes.hamburgerActive);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tstatic clearDrops(event) {\r\n\t\tif (event.button === 2 || (event.type === 'keyup' && event.key !== 'Tab')) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tVGNav.hideOpenDrops(event)\r\n\t}\r\n\r\n\tstatic hideOpenDrops(event) {\r\n\t\tconst openToggles = Selectors.findAll('.dropdown:not(.disabled):not(:disabled).active');\r\n\r\n\t\tfor (const toggle of openToggles) {\r\n\t\t\tconst context = VGNav.getInstance(toggle.closest('.vg-nav'));\r\n\t\t\tif (!context) continue;\r\n\r\n\t\t\tif (event.target.closest('.first')) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst relatedTarget = { relatedTarget: toggle }\r\n\r\n\t\t\tif (event.type === 'click') {\r\n\t\t\t\trelatedTarget.clickEvent = event\r\n\t\t\t}\r\n\r\n\t\t\tcontext.hide(relatedTarget)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nEventHandler.on(window, EVENT_RESIZE_DATA_API, function (event) {\r\n\tconst instance = VGNav.getOrCreateInstance('.vg-nav', {});\r\n\tinstance.build();\r\n})\r\n\r\nexport default VGNav;","import {mergeDeepObject, normalizeData} from \"../functions\";\r\n\r\n/**\r\n * Класс Placement, определяет и устанавливает местоположение элемента на странице.\r\n * TODO класс не дописан\r\n */\r\n\r\nclass Placement {\r\n\tconstructor(arg = {}) {\r\n\t\tthis.params = mergeDeepObject({\r\n\t\t\telement: null,\r\n\t\t\tdrop: null\r\n\t\t}, arg);\r\n\t}\r\n\r\n\t_getPlacement() {\r\n\t\tconst _this = this;\r\n\t\tconst _parent = (self) => {\r\n\t\t\tlet parent = self.parentNode,\r\n\t\t\t\toverflow = getComputedStyle(parent).overflow;\r\n\r\n\t\t\tif (parent.tagName !== 'BODY') {\r\n\t\t\t\tif (overflow === 'visible') {\r\n\t\t\t\t\t_parent(parent)\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn parent;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet isFixed = false, top, left,\r\n\t\t\tbounds = _this.params.drop.getBoundingClientRect(),\r\n\t\t\tparent = _this.params.element.getBoundingClientRect();\r\n\r\n\t\tif (_parent(_this.params.element)) {\r\n\t\t\tisFixed = true;\r\n\t\t\ttop = bounds.top;\r\n\t\t\tleft = bounds.left;\r\n\t\t} else {\r\n\t\t\tlet styles = getComputedStyle(_this.params.drop);\r\n\t\t\ttop = normalizeData(styles.top.slice(0, -2));\r\n\t\t\tleft = normalizeData(styles.left.slice(0, -2));\r\n\t\t}\r\n\r\n\t\tif ((bounds.left + bounds.width) > window.innerWidth) {\r\n\t\t\tleft = parent.width - bounds.width;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tisFixed: isFixed,\r\n\t\t\ttop: top,\r\n\t\t\tleft: left\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default Placement;","import BaseModule from \"../../base-module\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport {isDisabled, mergeDeepObject, noop} from \"../../../utils/js/functions\";\r\nimport Placement from \"../../../utils/js/components/placement\";\r\nimport Overflow from \"../../../utils/js/components/overflow\";\r\nimport Backdrop from \"../../../utils/js/components/backdrop\";\r\n\r\nconst NAME = 'dropdown';\r\nconst NAME_KEY = 'vg.dropdown';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst TARGET_CONTAINER = 'vg-dropdown-content';\r\nconst PARENT_CONTAINER = 'vg-dropdown';\r\nconst SELECTOR_DATA_TOGGLE = '[data-vg-toggle=\"dropdown\"]';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\n\r\nconst EVENT_KEYUP_DATA_API = `keyup.${NAME_KEY}.data.api`;\r\nconst EVENT_KEYDOWN_DATA_API = `keydown.${NAME_KEY}.data.api`;\r\nconst EVENT_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\nconst EVENT_MOUSEOVER_DATA_API = `mouseover.${NAME_KEY}.data.api`;\r\nconst EVENT_MOUSEOUT_DATA_API = `mouseout.${NAME_KEY}.data.api`;\r\n\r\nclass VGDropdown extends BaseModule {\r\n\tconstructor(element, params) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tlet defaultParams = {\r\n\t\t\toffset: [0, 2],\r\n\t\t\tover: false,\r\n\t\t\tbackdrop: true,\r\n\t\t\toverflow: true,\r\n\t\t\tkeyboard: true,\r\n\t\t\tplacement: 'bottom',\r\n\t\t\ttimeoutAnimation: 350,\r\n\t\t\thover: false,\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get'\r\n\t\t\t},\r\n\t\t\tanimation: {\r\n\t\t\t\tenable: false,\r\n\t\t\t\tin: 'animate__flipInY',\r\n\t\t\t\tout: 'animate__flipOutY',\r\n\t\t\t\tdelay: 800,\r\n\t\t\t},\r\n\t\t}\r\n\r\n\t\tif ('offset' in params && Array.isArray(params.offset)) {\r\n\t\t\tdefaultParams.offset = params.offset;\r\n\t\t}\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject(defaultParams, params));\r\n\r\n\t\tconst target = Selectors.getElementFromSelector(this._element);\r\n\r\n\t\tthis._parent = this._element.parentNode;\r\n\t\tthis._drop = target || Selectors.find('.' + TARGET_CONTAINER, this._parent);\r\n\t\tthis._isPlacement = false;\r\n\r\n\t\tthis._params.animation.delay = !this._params.animation.enable ? 0 : this._params.animation.delay;\r\n\t\tthis._animation(this._drop, VGDropdown.NAME_KEY, this._params.animation);\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\ttoggle() {\r\n\t\treturn this._isShown() ? this.hide() : this.show();\r\n\t}\r\n\r\n\tshow() {\r\n\t\tif (isDisabled(this._element) || this._isShown()) return;\r\n\r\n\t\tconst relatedTarget = {\r\n\t\t\trelatedTarget: this._element\r\n\t\t}\r\n\r\n\t\tconst showEvent = EventHandler.trigger(this._element, EVENT_KEY_SHOW, relatedTarget)\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tif ('ontouchstart' in document.documentElement) {\r\n\t\t\tfor (const element of [].concat(...document.body.children)) {\r\n\t\t\t\tEventHandler.on(element, 'mouseover', noop);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._route();\r\n\r\n\t\tthis._element.setAttribute('aria-expanded', true);\r\n\t\tthis._element.classList.add(CLASS_NAME_SHOW);\r\n\t\tthis._drop.classList.add(CLASS_NAME_SHOW);\r\n\t\tthis._setPlacement();\r\n\r\n\t\tif (this._params.backdrop) {\r\n\t\t\tBackdrop.show();\r\n\t\t}\r\n\r\n\t\tif (this._params.overflow) {\r\n\t\t\tOverflow.append();\r\n\t\t\tdocument.body.classList.add('dropdown-open')\r\n\t\t}\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tthis._drop.classList.add(CLASS_NAME_FADE);\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_SHOWN, relatedTarget)\r\n\t\t}\r\n\t\tthis._queueCallback(completeCallBack, this._drop, true, 50);\r\n\t}\r\n\r\n\thide() {\r\n\t\tif (isDisabled(this._element) || !this._isShown()) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst relatedTarget = {\r\n\t\t\trelatedTarget: this._element\r\n\t\t}\r\n\r\n\t\tthis._completeHide(relatedTarget);\r\n\t}\r\n\r\n\tdispose() {\r\n\t\treturn super.dispose();\r\n\t}\r\n\r\n\t_isShown() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\t_completeHide(relatedTarget) {\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE, relatedTarget)\r\n\t\tif (hideEvent.defaultPrevented) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ('ontouchstart' in document.documentElement) {\r\n\t\t\tfor (const element of [].concat(...document.body.children)) {\r\n\t\t\t\tEventHandler.off(element, 'mouseover', noop);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._drop.classList.remove(CLASS_NAME_FADE);\r\n\t\tthis._element.classList.remove(CLASS_NAME_SHOW);\r\n\t\tthis._element.setAttribute('aria-expanded', 'false');\r\n\r\n\t\tif (this._params.backdrop) {\r\n\t\t\tBackdrop.hide(function () {\r\n\t\t\t\tif (this._params.overflow) {\r\n\t\t\t\t\tOverflow.destroy();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this._params.overflow) {\r\n\t\t\tOverflow.destroy();\r\n\t\t\tdocument.body.classList.remove('dropdown-open');\r\n\t\t}\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tconst completeCallback = () => {\r\n\t\t\t\tthis._drop.classList.remove(CLASS_NAME_SHOW);\r\n\t\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDDEN, relatedTarget);\r\n\t\t\t}\r\n\t\t\tthis._queueCallback(completeCallback, this._parent, true, 10);\r\n\t\t}, this._params.animation.delay);\r\n\t}\r\n\r\n\t// TODO class Placement isn't done\r\n\t_setPlacement() {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (!_this._isPlacement) {\r\n\t\t\tlet placement = new Placement({\r\n\t\t\t\telement: this._parent,\r\n\t\t\t\tdrop: this._drop\r\n\t\t\t})._getPlacement();\r\n\r\n\t\t\tif (placement.isFixed) {\r\n\t\t\t\t_this._drop.style.position = 'fixed';\r\n\t\t\t\t_this._drop.style.transform = 'translateY(-20%)'; // todo this is костыль поfixить\r\n\t\t\t}\r\n\r\n\t\t\t_this._drop.style.left = placement.left + 'px';\r\n\t\t\t_this._drop.style.top = placement.top + 'px';\r\n\t\t}\r\n\r\n\t\tif (_this._params.offset) {\r\n\t\t\t_this._drop.style.paddingTop = _this._params.offset[1] + 'px';\r\n\t\t\t_this._drop.style.paddingRight = _this._params.offset[0] + 'px';\r\n\t\t}\r\n\r\n\t\t_this._isPlacement = true;\r\n\t}\r\n\r\n\tstatic init(element, params = {}) {\r\n\t\tconst instance = VGDropdown.getOrCreateInstance(element, params);\r\n\r\n\t\tif (instance._params.hover) {\r\n\t\t\tlet currentElem = null;\r\n\t\t\tEventHandler.on(instance._parent, EVENT_MOUSEOVER_DATA_API, function (event) {\r\n\t\t\t\tif (currentElem) return;\r\n\t\t\t\tVGDropdown.hideOpenToggles(event);\r\n\r\n\t\t\t\tlet target = event.target.closest('.' + PARENT_CONTAINER);\r\n\t\t\t\tif (!target) return;\r\n\r\n\t\t\t\tif (!instance._parent.contains(target)) return;\r\n\t\t\t\tcurrentElem = target;\r\n\t\t\t\tinstance.show();\r\n\t\t\t});\r\n\r\n\t\t\tEventHandler.on(instance._parent, EVENT_MOUSEOUT_DATA_API, function (event) {\r\n\t\t\t\tif (!currentElem) return;\r\n\r\n\t\t\t\tlet relatedTarget = event.relatedTarget;\r\n\r\n\t\t\t\twhile (relatedTarget) {\r\n\t\t\t\t\tif (relatedTarget === currentElem) return;\r\n\t\t\t\t\trelatedTarget = relatedTarget.parentNode;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcurrentElem = null;\r\n\t\t\t\tinstance._completeHide({relatedTarget: instance._element});\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\tEventHandler.on(document, EVENT_KEYUP_DATA_API, SELECTOR_DATA_TOGGLE, VGDropdown.keydownHandler);\r\n\t\t\tEventHandler.on(document, EVENT_KEYDOWN_DATA_API, '.' + TARGET_CONTAINER, VGDropdown.keydownHandler);\r\n\t\t\tEventHandler.on(document, EVENT_KEYUP_DATA_API, VGDropdown.clearDrops);\r\n\t\t\tEventHandler.on(document, EVENT_CLICK_DATA_API, VGDropdown.clearDrops);\r\n\t\t\tEventHandler.on(element, EVENT_CLICK_DATA_API, function (event) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tinstance.toggle();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tstatic hideOpenToggles(event) {\r\n\t\tconst openToggles = Selectors.findAll('[data-vg-toggle=\"dropdown\"]:not(.disabled):not(:disabled).show');\r\n\t\tfor (const toggle of openToggles) {\r\n\t\t\tconst context = VGDropdown.getInstance(toggle);\r\n\t\t\tif (!context) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tif (event.target.closest('.' + TARGET_CONTAINER) === context._drop) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst composedPath = event.composedPath();\r\n\t\t\tif (composedPath.includes(context._element)) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\tconst relatedTarget = { relatedTarget: context._element }\r\n\r\n\t\t\tif (event.type === 'click') {\r\n\t\t\t\trelatedTarget.clickEvent = event\r\n\t\t\t}\r\n\r\n\t\t\tcontext._completeHide(relatedTarget)\r\n\t\t}\r\n\t}\r\n\r\n\tstatic keydownHandler(event) {\r\n\t\tconst isInput = /input|textarea/i.test(event.target.tagName)\r\n\t\tconst isEscapeEvent = event.key === 'Escape'\r\n\t\tconst isUpOrDownEvent = ['ArrowUp', 'ArrowDown'].includes(event.key)\r\n\r\n\t\tif (!isUpOrDownEvent && !isEscapeEvent) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (isInput && !isEscapeEvent) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tevent.preventDefault()\r\n\r\n\t\tconst getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ?\r\n\t\t\tthis : (Selectors.find(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode))\r\n\r\n\t\tconst instance = VGDropdown.getOrCreateInstance(getToggleButton)\r\n\r\n\t\tif (isUpOrDownEvent) {\r\n\t\t\tevent.stopPropagation()\r\n\t\t\tinstance.show()\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (instance._isShown()) {\r\n\t\t\tevent.stopPropagation()\r\n\t\t\tinstance.hide()\r\n\t\t\tgetToggleButton.focus()\r\n\t\t}\r\n\t}\r\n\r\n\tstatic clearDrops(event) {\r\n\t\tif (event.button === 2 || (event.type === 'keyup' && event.key !== 'Tab')) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tVGDropdown.hideOpenToggles(event)\r\n\t}\r\n}\r\n\r\nexport default VGDropdown;","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap util/scrollBar.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport {Manipulator} from \"../dom/manipulator\";\r\nimport {isElement} from \"../functions\";\r\nimport Selectors from \"../dom/selectors\";\r\n\r\n/**\r\n * Constants\r\n */\r\n\r\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\r\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\r\nconst PROPERTY_PADDING = 'padding-right'\r\nconst PROPERTY_MARGIN = 'margin-right'\r\n\r\n/**\r\n * Class definition\r\n */\r\n\r\nclass ScrollBarHelper {\r\n\tconstructor() {\r\n\t\tthis._element = document.body\r\n\t}\r\n\r\n\t// Public\r\n\tgetWidth() {\r\n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\r\n\t\tconst documentWidth = document.documentElement.clientWidth\r\n\t\treturn Math.abs(window.innerWidth - documentWidth)\r\n\t}\r\n\r\n\thide() {\r\n\t\tconst width = this.getWidth()\r\n\t\tthis._disableOverFlow()\r\n\t\t// give padding to element to balance the hidden scrollbar width\r\n\t\tthis._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width)\r\n\t\t// trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\r\n\t\tthis._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width)\r\n\t\tthis._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width)\r\n\t}\r\n\r\n\treset() {\r\n\t\tthis._resetElementAttributes(this._element, 'overflow')\r\n\t\tthis._resetElementAttributes(this._element, PROPERTY_PADDING)\r\n\t\tthis._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING)\r\n\t\tthis._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN)\r\n\t}\r\n\r\n\tisOverflowing() {\r\n\t\treturn this.getWidth() > 0\r\n\t}\r\n\r\n\t// Private\r\n\t_disableOverFlow() {\r\n\t\tthis._saveInitialAttribute(this._element, 'overflow')\r\n\t\tthis._element.style.overflow = 'hidden'\r\n\t}\r\n\r\n\t_setElementAttributes(selector, styleProperty, callback) {\r\n\t\tconst scrollbarWidth = this.getWidth()\r\n\t\tconst manipulationCallBack = element => {\r\n\t\t\tif (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tthis._saveInitialAttribute(element, styleProperty)\r\n\t\t\tconst calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty)\r\n\t\t\telement.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`)\r\n\t\t}\r\n\r\n\t\tthis._applyManipulationCallback(selector, manipulationCallBack)\r\n\t}\r\n\r\n\t_saveInitialAttribute(element, styleProperty) {\r\n\t\tconst actualValue = element.style.getPropertyValue(styleProperty)\r\n\t\tif (actualValue) {\r\n\t\t\tManipulator.get(element, styleProperty, actualValue)\r\n\t\t}\r\n\t}\r\n\r\n\t_resetElementAttributes(selector, styleProperty) {\r\n\t\tconst manipulationCallBack = element => {\r\n\t\t\tconst value = Manipulator.get(element, styleProperty)\r\n\t\t\t// We only want to remove the property if the value is `null`; the value can also be zero\r\n\t\t\tif (value === null) {\r\n\t\t\t\telement.style.removeProperty(styleProperty)\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tManipulator.remove(element, styleProperty)\r\n\t\t\telement.style.setProperty(styleProperty, value)\r\n\t\t}\r\n\r\n\t\tthis._applyManipulationCallback(selector, manipulationCallBack)\r\n\t}\r\n\r\n\t_applyManipulationCallback(selector, callBack) {\r\n\t\tif (isElement(selector)) {\r\n\t\t\tcallBack(selector)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tfor (const sel of Selectors.findAll(selector, this._element)) {\r\n\t\t\tcallBack(sel)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default ScrollBarHelper","import BaseModule from \"../../base-module\";\r\nimport ScrollBarHelper from \"../../../utils/js/components/scrollbar\";\r\nimport Backdrop from \"../../../utils/js/components/backdrop\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\nimport {execute, isDisabled, isRTL, mergeDeepObject, reflow} from \"../../../utils/js/functions\";\r\nimport {dismissTrigger} from \"../../module-fn\";\r\nimport Params from \"../../../utils/js/components/params\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'modal';\r\nconst NAME_KEY = 'vg.modal';\r\n\r\nconst ESCAPE_KEY = 'Escape';\r\n\r\nconst OPEN_SELECTOR = '.vg-modal.show';\r\nconst SELECTOR_DIALOG = '.vg-modal-dialog';\r\nconst SELECTOR_MODAL_BODY = '.vg-modal-body';\r\nconst SELECTOR_DATA_TOGGLE = '[data-vg-toggle=\"modal\"]';\r\n\r\nconst CLASS_NAME_OPEN = 'vg-modal-open';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_STATIC = 'vg-modal-static';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\nconst EVENT_KEY_RESIZE = `${NAME_KEY}.resize`;\r\nconst EVENT_KEY_LOADED = `${NAME_KEY}.loaded`;\r\n\r\nconst EVENT_KEY_KEYDOWN_DISMISS = `keydown.dismiss.${NAME_KEY}`;\r\nconst EVENT_KEY_HIDE_PREVENTED = `hidePrevented.${NAME_KEY}`;\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\nconst EVENT_KEY_MOUSEDOWN_DISMISS = `mousedown.dismiss${NAME_KEY}`\r\nconst EVENT_KEY_CLICK_DISMISS = `click.dismiss${NAME_KEY}`\r\n\r\nclass VGModal extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tbackdrop: true,\r\n\t\t\tfocus: true,\r\n\t\t\tkeyboard: true,\r\n\t\t\tfields: [],\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\tloader: false\r\n\t\t\t},\r\n\t\t\tanimation: {\r\n\t\t\t\tenable: false,\r\n\t\t\t\tin: 'animate__rollIn',\r\n\t\t\t\tout: 'animate__rollOut',\r\n\t\t\t\tdelay: 800,\r\n\t\t\t},\r\n\t\t\tclasses: {\r\n\t\t\t\tgeneral: 'vg-modal',\r\n\t\t\t\tdialog: 'vg-modal-dialog',\r\n\t\t\t\tcontent: 'vg-modal-content',\r\n\t\t\t\theader: 'vg-modal-header',\r\n\t\t\t\ttitle: 'vg-modal-title',\r\n\t\t\t\tbody: 'vg-modal-body',\r\n\t\t\t\tfooter: 'vg-modal-footer',\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._button = null;\r\n\t\tthis._dialog = Selectors.find(SELECTOR_DIALOG, this._element);\r\n\t\tthis._isShown = false;\r\n\t\tthis._isTransitioning = false;\r\n\t\tthis._scrollBar = new ScrollBarHelper();\r\n\r\n\t\tthis._addEventListeners();\r\n\t\tthis._dismissElement();\r\n\r\n\t\tthis._params.animation.delay = !this._params.animation.enable ? 0 : this._params.animation.delay;\r\n\t\tthis._animation(this._element, VGModal.NAME_KEY, this._params.animation);\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\tstatic init(element, params, callback) {\r\n\t\tVGModal.build(element, params, callback);\r\n\t}\r\n\r\n\tstatic build(id, params, callback) {\r\n\t\tif (typeof id !== \"string\") return;\r\n\r\n\t\tlet _element = document.createElement('div');\r\n\t\t_element.classList.add('vg-modal', 'fade');\r\n\t\t_element.id = id;let dialog = document.createElement('div');\r\n\t\tdialog.classList.add('vg-modal-dialog');\r\n\r\n\t\tlet content = document.createElement('div');\r\n\t\tcontent.classList.add('vg-modal-content');\r\n\r\n\t\tlet btnClose = document.createElement('button');\r\n\t\tManipulator.set(btnClose, 'type', 'button');\r\n\t\tManipulator.set(btnClose, 'data-vg-dismiss', 'modal');\r\n\t\tManipulator.set(btnClose, 'data-vg-target', '#' + id);\r\n\t\tManipulator.set(btnClose, 'aria-label', 'close');\r\n\t\tbtnClose.classList.add('vg-btn-close');\r\n\r\n\t\tcontent.append(btnClose);\r\n\r\n\t\tlet body = document.createElement('div');\r\n\t\tbody.classList.add('vg-modal-body');\r\n\r\n\t\tcontent.append(body);\r\n\t\tdialog.append(content);\r\n\t\t_element.append(dialog);\r\n\r\n\t\tdocument.body.append(_element);\r\n\r\n\t\tconst modal = VGModal.getOrCreateInstance(_element, params);\r\n\r\n\t\texecute(callback, [modal]);\r\n\t}\r\n\r\n\ttoggle(relatedTarget) {\r\n\t\treturn !this._isShown ? this.show(relatedTarget) : this.hide();\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\t\tconst _this = this;\r\n\t\tif (isDisabled(_this._element)) return;\r\n\r\n\t\tthis._params = this._getParams(relatedTarget, this._params);\r\n\t\t_this._route(function (status, data) {\r\n\t\t\tEventHandler.trigger(_this._element, EVENT_KEY_LOADED, {stats: status, data: data});\r\n\t\t});\r\n\r\n\t\tconst showEvent = EventHandler.trigger(this._element, EVENT_KEY_SHOW, { relatedTarget })\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tthis._isShown = true;\r\n\t\tthis._isTransitioning = true;\r\n\r\n\t\tthis._scrollBar.hide();\r\n\r\n\t\tdocument.body.classList.add(CLASS_NAME_OPEN);\r\n\r\n\t\tthis._addFieldsInModal(relatedTarget);\r\n\t\tthis._adjustDialog();\r\n\r\n\t\tBackdrop.show(() => this._showElement(relatedTarget));\r\n\t}\r\n\r\n\thide(openedModals = []) {\r\n\t\tif (!this._isShown || this._isTransitioning) return;\r\n\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE);\r\n\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\tthis._isShown = false;\r\n\t\tthis._isTransitioning = true;\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis._element.classList.remove(CLASS_NAME_SHOW);\r\n\t\t\tthis._queueCallback(() => this._hideModal(openedModals), this._element, this._isAnimatedFade());\r\n\t\t}, this._params.animation.delay);\r\n\t}\r\n\r\n\t_hideModal(openedModals) {\r\n\t\tthis._element.style.display = 'none';\r\n\t\tthis._element.setAttribute('aria-hidden', true);\r\n\t\tthis._element.removeAttribute('aria-modal');\r\n\t\tthis._element.removeAttribute('role');\r\n\t\tthis._isTransitioning = false;\r\n\r\n\t\tif (openedModals.length) return;\r\n\r\n\t\tBackdrop.hide(() => {\r\n\t\t\tdocument.body.classList.remove(CLASS_NAME_OPEN);\r\n\t\t\tthis._resetAdjustments();\r\n\t\t\tthis._scrollBar.reset();\r\n\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDDEN);\r\n\t\t})\r\n\t}\r\n\r\n\t_showElement(relatedTarget) {\r\n\t\tif (!document.body.contains(this._element)) {\r\n\t\t\tdocument.body.append(this._element);\r\n\t\t}\r\n\r\n\t\tthis._element.style.display = 'block';\r\n\t\tthis._element.removeAttribute('aria-hidden');\r\n\t\tthis._element.setAttribute('aria-modal', true);\r\n\t\tthis._element.setAttribute('role', 'dialog');\r\n\t\tthis._element.scrollTop = 0;\r\n\r\n\t\tconst modalBody = Selectors.find(SELECTOR_MODAL_BODY, this._dialog);\r\n\t\tif (modalBody) {\r\n\t\t\tmodalBody.scrollTop = 0;\r\n\t\t}\r\n\r\n\t\treflow(this._element);\r\n\r\n\t\tthis._element.classList.add(CLASS_NAME_SHOW)\r\n\r\n\t\tconst transitionComplete = () => {\r\n\t\t\tthis._isTransitioning = false;\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_SHOWN, {\r\n\t\t\t\trelatedTarget\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis._queueCallback(transitionComplete, this._dialog, this._isAnimatedFade())\r\n\t}\r\n\r\n\t_isAnimatedFade() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_FADE)\r\n\t}\r\n\r\n\t_adjustDialog() {\r\n\t\tconst isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\r\n\t\tconst scrollbarWidth = this._scrollBar.getWidth()\r\n\t\tconst isBodyOverflowing = scrollbarWidth > 0\r\n\r\n\t\tif (isBodyOverflowing && !isModalOverflowing) {\r\n\t\t\tconst property = isRTL() ? 'paddingLeft' : 'paddingRight'\r\n\t\t\tthis._element.style[property] = `${scrollbarWidth}px`\r\n\t\t}\r\n\r\n\t\tif (!isBodyOverflowing && isModalOverflowing) {\r\n\t\t\tconst property = isRTL() ? 'paddingRight' : 'paddingLeft'\r\n\t\t\tthis._element.style[property] = `${scrollbarWidth}px`\r\n\t\t}\r\n\t}\r\n\r\n\t_resetAdjustments() {\r\n\t\tthis._element.style.paddingLeft = ''\r\n\t\tthis._element.style.paddingRight = ''\r\n\t}\r\n\r\n\t_addEventListeners() {\r\n\t\tEventHandler.on(this._element, EVENT_KEY_KEYDOWN_DISMISS, event => {\r\n\t\t\tif (event.key !== ESCAPE_KEY) return;\r\n\r\n\t\t\tif (this._params.keyboard) {\r\n\t\t\t\tthis.hide();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthis._triggerBackdropTransition();\r\n\t\t});\r\n\r\n\t\tEventHandler.on(window, EVENT_KEY_RESIZE, () => {\r\n\t\t\tif (this._isShown && !this._isTransitioning) this._adjustDialog();\r\n\t\t});\r\n\r\n\t\tEventHandler.on(this._element, EVENT_KEY_MOUSEDOWN_DISMISS, event => {\r\n\t\t\tEventHandler.one(this._element, EVENT_KEY_CLICK_DISMISS, event2 => {\r\n\t\t\t\tif (this._element !== event.target || this._element !== event2.target) return;\r\n\r\n\t\t\t\tif (this._params.backdrop === 'static') {\r\n\t\t\t\t\tthis._triggerBackdropTransition();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this._params.backdrop) {\r\n\t\t\t\t\tthis.hide();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t});\r\n\t}\r\n\r\n\t_triggerBackdropTransition() {\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE_PREVENTED);\r\n\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\tconst isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\r\n\t\tconst initialOverflowY = this._element.style.overflowY;\r\n\r\n\t\tif (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) return;\r\n\t\tif (!isModalOverflowing) this._element.style.overflowY = 'hidden';\r\n\r\n\t\tthis._element.classList.add(CLASS_NAME_STATIC);\r\n\r\n\t\tthis._queueCallback(() => {\r\n\t\t\tthis._element.classList.remove(CLASS_NAME_STATIC);\r\n\t\t\tthis._queueCallback(() => {\r\n\t\t\t\tthis._element.style.overflowY = initialOverflowY;\r\n\t\t\t}, this._dialog);\r\n\t\t}, this._dialog);\r\n\t}\r\n\r\n\t_addFieldsInModal(relatedTarget) {\r\n\t\tthis._params = this._getParams(relatedTarget, this._params);\r\n\r\n\t\tif (!this._params.fields.length) return;\r\n\r\n\t\tthis._params.fields.forEach(function (item) {\r\n\t\t\tif (!'name' in item && !'value' in item) return;\r\n\r\n\t\t\tlet elements = Selectors.findAll('[data-' + item.name + ']');\r\n\t\t\tif (!elements.length) return;\r\n\r\n\t\t\tfor (const elm of elements) {\r\n\t\t\t\tswitch (elm.tagName) {\r\n\t\t\t\t\tcase 'INPUT': elm.value = item.value; break;\r\n\t\t\t\t\tcase 'IMG': Manipulator.set(elm, 'src', item.value); break;\r\n\t\t\t\t\tdefault: elm.innerHTML = item.value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\ndismissTrigger(VGModal);\r\n\r\n\r\n/**\r\n * Data API implementation\r\n */\r\n\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\tconst target = Selectors.getElementFromSelector(this);\r\n\r\n\tif (['A', 'AREA'].includes(this.tagName)) event.preventDefault();\r\n\r\n\tEventHandler.one(target, EVENT_KEY_SHOW, showEvent => {\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\t});\r\n\r\n\tconst alreadyOpen = Selectors.find(OPEN_SELECTOR);\r\n\tif (alreadyOpen) VGModal.getInstance(alreadyOpen).hide([alreadyOpen]);\r\n\r\n\tconst data = VGModal.getOrCreateInstance(target);\r\n\tdata.toggle(this);\r\n})\r\n\r\nexport default VGModal;","import BaseModule from \"../../base-module\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport VGModal from \"../../vgmodal/js/vgmodal\";\r\nimport {isObject, makeRandomString, mergeDeepObject, normalizeData} from \"../../../utils/js/functions\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport VGCollapse from \"../../vgcollapse/js/vgcollapse\";\r\nimport {getSVG} from \"../../module-fn\";\r\nimport Backdrop from \"../../../utils/js/components/backdrop\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'form-sender';\r\nconst NAME_KEY = 'vg.fs';\r\n\r\n/**\r\n * Constants Events\r\n */\r\nconst EVENT_KEY_SUCCESS = 'vg.fs.success';\r\nconst EVENT_KEY_ERROR = 'vg.fs.error';\r\nconst EVENT_KEY_BEFORE = 'vg.fs.before';\r\n\r\nconst EVENT_SUBMIT_DATA_API = `submit.${NAME_KEY}.data.api`;\r\n\r\nclass VGFormSender extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tredirect: '',\r\n\t\t\tvalidate: false,\r\n\t\t\tsubmit: false,\r\n\t\t\tfields: [],\r\n\t\t\ttimeout: 50,\r\n\t\t\talert: {\r\n\t\t\t\tenabled: true,\r\n\t\t\t\ttype: 'modal'\r\n\t\t\t},\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t},\r\n\t\t\tclasses: {\r\n\t\t\t\tgeneral: 'vg-form-sender',\r\n\t\t\t\talertCollapse: 'vg-form-sender-collapse',\r\n\t\t\t\talertModal: 'vg-form-sender-modal',\r\n\t\t\t\tvalidation: 'needs-validation',\r\n\t\t\t\twasValidate: 'was-validated'\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._params.ajax.route = Manipulator.get(this._element, 'action').toLowerCase();\r\n\t\tthis._params.ajax.method = Manipulator.get(this._element, 'method').toLowerCase();\r\n\t\tthis._button = Selectors.find('[type=\"submit\"]', this._element) || Selectors.find('[form=\"' + this._element.id + '\"]') || null;\r\n\r\n\t\tthis._params.isBtnText = Manipulator.get(this._element, 'data-btn-text') !== 'false';\r\n\t\tthis._params.isJsonParse = Manipulator.get(this._element, 'data-json-parse') !== 'false';\r\n\t\tthis._params.isShowPass = Manipulator.get(this._element, 'data-show-pass') === 'true';\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\tbuild() {\r\n\t\tthis._element.classList.add(this._params.classes.general);\r\n\r\n\t\tif (this._params.validate) {\r\n\t\t\tManipulator.set(this._element, 'novalidate', '');\r\n\t\t\tthis._element.classList.add(this._params.classes.validation);\r\n\t\t}\r\n\r\n\t\t// TODO сделать добавление глаза если есть ввод пароля\r\n\r\n\t\treturn this\r\n\t}\r\n\r\n\trequest(data, event) {\r\n\t\tconst _this = this;\r\n\r\n\t\t_this._alertBefore();\r\n\r\n\t\t_this._params.ajax.data = data;\r\n\r\n\t\t_this._route(function (status, data) {\r\n\t\t\t_this._element.classList.remove('was-validated');\r\n\r\n\t\t\tif (_this._params.alert.enabled) {\r\n\t\t\t\tif (typeof status === 'string' && status === 'error') {\r\n\t\t\t\t\t_this._alertError(event, data);\r\n\t\t\t\t} else if (typeof status === 'string' && status === 'success') {\r\n\t\t\t\t\t_this._alertSuccess(event, data);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (_this._params.redirect) {\r\n\t\t\t\twindow.location.href = _this._params.redirect;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t_alertBefore() {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (_this._params.alert.type === 'collapse') {\r\n\t\t\t[...document.getElementsByClassName(_this._params.classes.alertCollapse)].forEach(function (element) {\r\n\t\t\t\tif (element && element.classList.contains('show')) {\r\n\t\t\t\t\tVGCollapse.getOrCreateInstance(element, {toggle: false}).hide();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t_this._statusButton('before');\r\n\t\tEventHandler.trigger(_this._element, EVENT_KEY_BEFORE, _this);\r\n\t}\r\n\r\n\t_alertError(event, data) {\r\n\t\tconst _this = this;\r\n\r\n\t\t_this._statusButton('after');\r\n\t\t_this._jsonParse(data, 'error');\r\n\t\tEventHandler.trigger(_this._element, EVENT_KEY_ERROR, [event, _this, data]);\r\n\t}\r\n\r\n\t_alertSuccess(event, data) {\r\n\t\tconst _this = this;\r\n\r\n\t\t_this._statusButton('after');\r\n\t\t_this._jsonParse(data, 'success');\r\n\t\tEventHandler.trigger(_this._element, EVENT_KEY_SUCCESS, [event, _this, data]);\r\n\t}\r\n\r\n\t_statusButton(status) {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (!_this._button) return;\r\n\r\n\t\tlet btnSubmitText = _this._button,\r\n\t\t\tbtnText = {\r\n\t\t\tsend: 'Отправляем...',\r\n\t\t\ttext: 'Отправить'\r\n\t\t};\r\n\r\n\t\tif (Manipulator.has(_this._button, 'data-spinner') && status === 'before') {\r\n\t\t\t_this._button.insertAdjacentHTML('afterbegin', '<span class=\"spinner-border spinner-border-sm me-2\"></span>');\r\n\t\t}\r\n\r\n\t\tif (Manipulator.has(_this._button, 'data-text')) {\r\n\t\t\tbtnText.text = Manipulator.get(_this._button, 'data-text');\r\n\t\t} else {\r\n\t\t\tlet $btnText = _this._button.querySelector('[data-text]');\r\n\t\t\tif ($btnText) {\r\n\t\t\t\tbtnText.text = Manipulator.get($btnText, 'data-text');\r\n\t\t\t\tbtnSubmitText = $btnText;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (Manipulator.has(_this._button, 'data-text-send')) {\r\n\t\t\tbtnText.send = Manipulator.get(_this._button, 'data-text-send');\r\n\t\t} else {\r\n\t\t\tlet $btnTextSend = _this._button.querySelector('[data-text-send]');\r\n\t\t\tif ($btnTextSend) {\r\n\t\t\t\tbtnText.send = Manipulator.get($btnTextSend, 'data-text-send');\r\n\t\t\t\tbtnSubmitText = $btnTextSend;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (status === 'before') {\r\n\t\t\tif (_this._params.isBtnText) {\r\n\t\t\t\tbtnSubmitText.innerHTML = btnText.send;\r\n\t\t\t}\r\n\t\t\tManipulator.set(_this._button,'disabled', 'disabled');\r\n\t\t}\r\n\r\n\t\tif (status === 'after') {\r\n\t\t\tif (_this._params.isBtnText) {\r\n\t\t\t\tbtnSubmitText.innerHTML = btnText.text;\r\n\t\t\t}\r\n\t\t\tManipulator.remove(_this._button,'disabled');\r\n\r\n\t\t\tlet spinner = _this._button.querySelector('.spinner-border');\r\n\t\t\tif (spinner) spinner.remove();\r\n\t\t}\r\n\t}\r\n\r\n\t_jsonParse(data, status) {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (_this._params.isJsonParse && typeof data === 'string') {\r\n\t\t\tlet parserData = {};\r\n\r\n\t\t\ttry {\r\n\t\t\t\tparserData = JSON.parse(data);\r\n\t\t\t\t_this.alert(parserData, status);\r\n\t\t\t} catch (e) {\r\n\t\t\t\t_this.alert(data, status);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t_this.alert(data, status);\r\n\t\t}\r\n\t}\r\n\r\n\talert(data, status) {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (isObject(data)) {\r\n\t\t\tif (('code' in data) && data.code && data.code === 200) {\r\n\t\t\t\tif ('response' in data && data.response) {\r\n\t\t\t\t\tlet response = normalizeData(data.response);\r\n\t\t\t\t\tif (typeof response === 'string') {\r\n\t\t\t\t\t\tif (response.indexOf(\"Parse error\") !== -1 || response.indexOf(\"syntax error\") !== -1) {\r\n\t\t\t\t\t\t\tstatus = 'error';\r\n\t\t\t\t\t\t\tdata = {\r\n\t\t\t\t\t\t\t\tresponse: {\r\n\t\t\t\t\t\t\t\t\ttitle: 'Error',\r\n\t\t\t\t\t\t\t\t\tmessage: 'Something went wrong, please repeat later'\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\ttext: 'Something went wrong, please repeat later'\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif ('errors' in response && normalizeData(response.errors)) {\r\n\t\t\t\t\t\t\tstatus = normalizeData(response.errors) ? 'error' : 'success';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!_this._params.alert.enabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (_this._params.alert.type === 'modal') {\r\n\t\t\t_this._alertModal(data, status)\r\n\t\t}\r\n\r\n\t\tif (_this._params.alert.type === 'collapse') {\r\n\t\t\t_this._alertCollapse(data, status)\r\n\t\t}\r\n\t}\r\n\r\n\t_alertModal(data, status) {\r\n\t\tconst _this = this;\r\n\r\n\t\t// Есть ли открытые модалки, закрываем\r\n\t\t[...document.getElementsByClassName('modal')].forEach(function (element) {\r\n\t\t\tif (element && element.classList.contains('show')) {\r\n\t\t\t\tlet mBS = bootstrap.Modal.getOrCreateInstance(element);\r\n\t\t\t\tmBS.hide();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t[...document.getElementsByClassName('vg-modal')].forEach(function (element) {\r\n\t\t\tif (element && element.classList.contains('show')) {\r\n\t\t\t\tconst mVG = VGModal.getOrCreateInstance(element);\r\n\t\t\t\tmVG.hide([mVG]);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet id = _this._params.classes.general + '-' + makeRandomString(),\r\n\t\t\t$modal = Selectors.find('.' + _this._params.classes.alertModal);\r\n\r\n\t\tif ($modal) $modal.remove();\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tVGModal.init(id, {\r\n\t\t\t\tclasses: {\r\n\t\t\t\t\talert: _this._params.classes.alertModal\r\n\t\t\t\t}\r\n\t\t\t}, function (self) {\r\n\t\t\t\tlet element = self._element;\r\n\t\t\t\telement.classList.add(_this._params.classes.alertModal);\r\n\r\n\t\t\t\tlet $body = Selectors.find('.vg-modal-body', element);\r\n\t\t\t\tif ($body) $body.append(_this.setDataRelationStatus(element, status, data, 'modal'));\r\n\r\n\t\t\t\tself.toggle();\r\n\t\t\t});\r\n\t\t}, _this._params.timeout);\r\n\t}\r\n\r\n\t_alertCollapse(data, status) {\r\n\t\tconst _this = this;\r\n\r\n\t\tlet $collapse = Selectors.find('.' + _this._params.classes.alertCollapse);\r\n\t\tif (!$collapse) {\r\n\t\t\t$collapse = document.createElement('div');\r\n\t\t\t$collapse.classList.add(_this._params.classes.alertCollapse);\r\n\t\t\t$collapse.classList.add('vg-collapse');\r\n\t\t\t$collapse.id = _this._params.classes.general + '-' + makeRandomString();\r\n\t\t\t$collapse.append(_this.setDataRelationStatus($collapse, status, data, 'collapse'));\r\n\r\n\t\t\t_this._element.prepend($collapse);\r\n\t\t}\r\n\r\n\t\tVGCollapse.getOrCreateInstance($collapse, {toggle: false}).toggle();\r\n\t}\r\n\r\n\tsetDataRelationStatus($element, status, data, type) {\r\n\t\tlet $alert = Selectors.find('.vg-alert-' + status, $element);\r\n\r\n\t\tif (isObject(data)) {\r\n\t\t\tif (status === 'error') {\r\n\t\t\t\tif ('code' in data && data.code !== 200) {\r\n\t\t\t\t\tif ('text' in data && !data.text) {\r\n\t\t\t\t\t\tdata.text = 'Something went wrong, please repeat later';\r\n\r\n\t\t\t\t\t\tswitch (data.code) {\r\n\t\t\t\t\t\t\tcase 400:\r\n\t\t\t\t\t\t\t\tdata.text = 'Bad Request'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 401:\r\n\t\t\t\t\t\t\t\tdata.text = 'Unauthorized'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 403:\r\n\t\t\t\t\t\t\t\tdata.text = 'Unauthorized'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 413:\r\n\t\t\t\t\t\t\t\tdata.text = 'Forbidden'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 404:\r\n\t\t\t\t\t\t\t\tdata.text = 'Not Found'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 422:\r\n\t\t\t\t\t\t\t\tdata.text = 'Unprocessable Entity'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 500:\r\n\t\t\t\t\t\t\t\tdata.text = 'Internal Server Error'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 504:\r\n\t\t\t\t\t\t\t\tdata.text = 'Gateway Timeout'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif ('response' in data) {\r\n\t\t\t\tlet response = normalizeData(data.response), title = '', txt = '', code = '';\r\n\t\t\t\tif (typeof response !== 'string') {\r\n\t\t\t\t\tif (!('view' in response)) {\r\n\t\t\t\t\t\tif ('title' in response) title = response.title;\r\n\t\t\t\t\t\tif (status === 'error' && data.code !== 200) {\r\n\t\t\t\t\t\t\tcode = ' ' + data.text + ' (' + data.code + ')';\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttxt += '<h4 class=\"vg-alert-content--title\">' + title + code + '</h4>';\r\n\r\n\t\t\t\t\t\tif ('message' in response) {\r\n\t\t\t\t\t\t\ttxt += '<div class=\"vg-alert-content--message\">' + response.message + '</div>'\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ('errors' in response) {\r\n\t\t\t\t\t\t\tlet errors = normalizeData(response.errors) || null;\r\n\t\t\t\t\t\t\tif (isObject(errors)) {\r\n\t\t\t\t\t\t\t\tfor (const error in errors) {\r\n\t\t\t\t\t\t\t\t\tif (Array.isArray(errors[error])) {\r\n\t\t\t\t\t\t\t\t\t\terrors[error].forEach(function (t) {\r\n\t\t\t\t\t\t\t\t\t\t\ttxt += '<div>'+ t +'</div>';\r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\ttxt = '<div>'+ errors[error] +'</div>';\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tdata = {\r\n\t\t\t\t\t\t\tview: txt\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdata.view = response;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!$alert) {\r\n\t\t\t$alert = document.createElement('div');\r\n\t\t\t$alert.classList.add('vg-alert', 'vg-alert-' + status, 'vg-alert-' + type);\r\n\r\n\t\t\tlet content = document.createElement('div');\r\n\t\t\tcontent.classList.add('vg-alert-content');\r\n\r\n\t\t\tlet icon = document.createElement('div');\r\n\t\t\ticon.classList.add('vg-alert-content--icon');\r\n\r\n\t\t\tlet i = document.createElement('i');\r\n\t\t\ti.innerHTML = getSVG(status);\r\n\r\n\t\t\ticon.append(i);\r\n\t\t\tcontent.append(icon);\r\n\r\n\t\t\tlet text = document.createElement('div');\r\n\t\t\ttext.classList.add('vg-alert-content--text');\r\n\t\t\ttext.innerHTML = data.view;\r\n\r\n\t\t\tcontent.append(text);\r\n\t\t\t$alert.append(content);\r\n\t\t} else {\r\n\t\t\tlet text = Selectors.find('.vg-alert-content--text', $alert);\r\n\t\t\ttext.innerHTML = data.view;\r\n\t\t}\r\n\r\n\t\treturn $alert;\r\n\t}\r\n\r\n\t/**\r\n\t * Инициализация\r\n\t * @param element\r\n\t * @param params\r\n\t */\r\n\tstatic init(element, params = {}) {\r\n\t\tconst instance = VGFormSender.getOrCreateInstance(element, params);\r\n\t\tinstance.build();\r\n\t}\r\n}\r\n\r\nEventHandler.on(document, EVENT_SUBMIT_DATA_API, function (event) {\r\n\tif (!Manipulator.has(event.target, 'data-vgformsender')) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst instance = VGFormSender.getOrCreateInstance(event.target, {});\r\n\tif (!instance) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (instance._params.validate) {\r\n\t\tif (!instance._element.checkValidity()) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tevent.stopPropagation();\r\n\r\n\t\t\tinstance._element.classList.add(instance._params.classes.wasValidate);\r\n\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tconst collectData = function(data, fields) {\r\n\t\tfor (let name in fields) {\r\n\t\t\tif (typeof fields[name] === 'object') {\r\n\t\t\t\tfor (let key in fields[name]) {\r\n\t\t\t\t\tlet arr = Object.keys(fields[name][key]).map(function (i) {\r\n\t\t\t\t\t\treturn fields[name][key][i];\r\n\t\t\t\t\t});\r\n\t\t\t\t\tdata.append(name, arr);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tdata.append(name, fields[name]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t}\r\n\r\n\tif (!instance._params.submit) {\r\n\t\tevent.preventDefault();\r\n\r\n\t\tlet data = new FormData(instance._element);\r\n\r\n\t\t// TODO доделать\r\n\t\t/*if (Array.isArray(instance._params.ajax.fields) && instance._params.ajax.fields.length) {\r\n\t\t\tdata = collectData(data, instance._params.ajax.fields);\r\n\t\t}*/\r\n\r\n\t\treturn instance.request(data, event);\r\n\t}\r\n})\r\n\r\nexport default VGFormSender;","import BaseModule from \"../../base-module\";\r\nimport {execute, isDisabled, isVisible, mergeDeepObject, noop} from \"../../../utils/js/functions\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'rollup';\r\nconst NAME_KEY = 'vg.rollup';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_HIDE = 'd-none';\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"rollup\"]'\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\n\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nclass VGRollup extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\r\n\t\t}, params));\r\n\r\n\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY\r\n\t}\r\n\r\n\tbuild() {\r\n\r\n\t}\r\n\r\n\ttoggle(relatedTarget) {\r\n\t\treturn !this._isShown() ? this.show(relatedTarget) : this.hide();\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\r\n\t}\r\n\r\n\t_isShown() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\t/**\r\n\t * Инициализация\r\n\t * @param element\r\n\t * @param params\r\n\t */\r\n\tstatic init(element, params = {}) {\r\n\t\tconst instance = VGRollup.getOrCreateInstance(element, params);\r\n\t\tinstance.toggle();\r\n\t}\r\n}\r\n\r\n/**\r\n * Data API implementation\r\n */\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\tconst target = Selectors.getElementFromSelector(this);\r\n\tif (!target) return;\r\n\r\n\tif (['A', 'AREA'].includes(this.tagName)) {\r\n\t\tevent.preventDefault()\r\n\t}\r\n\r\n\tif (isDisabled(this)) {\r\n\t\treturn\r\n\t}\r\n\r\n\tthis.setAttribute('aria-expanded', true);\r\n\r\n\tconst data = VGRollup.getOrCreateInstance(target)\r\n\tdata.toggle(this);\r\n});\r\n\r\n\r\nexport default VGRollup;","/*! js-cookie v3.0.1 | MIT */\r\n\r\nfunction assign (target) {\r\n\tfor (let i = 1; i < arguments.length; i++) {\r\n\t\tlet source = arguments[i];\r\n\t\tfor (let key in source) {\r\n\t\t\ttarget[key] = source[key];\r\n\t\t}\r\n\t}\r\n\treturn target\r\n}\r\n\r\nlet defaultConverter = {\r\n\tread: function (value) {\r\n\t\tif (value[0] === '\"') {\r\n\t\t\tvalue = value.slice(1, -1);\r\n\t\t}\r\n\t\treturn value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\r\n\t},\r\n\twrite: function (value) {\r\n\t\treturn encodeURIComponent(value).replace(\r\n\t\t\t/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\r\n\t\t\tdecodeURIComponent\r\n\t\t)\r\n\t}\r\n};\r\n\r\nfunction init (converter, defaultAttributes) {\r\n\tfunction set (key, value, attributes) {\r\n\t\tif (typeof document === 'undefined') {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tattributes = assign({}, defaultAttributes, attributes);\r\n\r\n\t\tif (typeof attributes.expires === 'number') {\r\n\t\t\tattributes.expires = new Date(Date.now() + attributes.expires * 864e5);\r\n\t\t}\r\n\t\tif (attributes.expires) {\r\n\t\t\tattributes.expires = attributes.expires.toUTCString();\r\n\t\t}\r\n\r\n\t\tkey = encodeURIComponent(key)\r\n\t\t\t.replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\r\n\t\t\t.replace(/[()]/g, escape);\r\n\r\n\t\tlet stringifiedAttributes = '';\r\n\t\tfor (let attributeName in attributes) {\r\n\t\t\tif (!attributes[attributeName]) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\tstringifiedAttributes += '; ' + attributeName;\r\n\r\n\t\t\tif (attributes[attributeName] === true) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\t// Considers RFC 6265 section 5.2:\r\n\t\t\t// ...\r\n\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\r\n\t\t\t// character:\r\n\t\t\t// Consume the characters of the unparsed-attributes up to,\r\n\t\t\t// not including, the first %x3B (\";\") character.\r\n\t\t\t// ...\r\n\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\r\n\t\t}\r\n\r\n\t\treturn (document.cookie =\r\n\t\t\tkey + '=' + converter.write(value, key) + stringifiedAttributes)\r\n\t}\r\n\r\n\tfunction get (key) {\r\n\t\tif (typeof document === 'undefined' || (arguments.length && !key)) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// To prevent the for loop in the first place assign an empty array\r\n\t\t// in case there are no cookies at all.\r\n\t\tlet cookies = document.cookie ? document.cookie.split('; ') : [];\r\n\t\tlet jar = {};\r\n\t\tfor (let i = 0; i < cookies.length; i++) {\r\n\t\t\tlet parts = cookies[i].split('=');\r\n\t\t\tlet value = parts.slice(1).join('=');\r\n\r\n\t\t\ttry {\r\n\t\t\t\tlet foundKey = decodeURIComponent(parts[0]);\r\n\t\t\t\tjar[foundKey] = converter.read(value, foundKey);\r\n\r\n\t\t\t\tif (key === foundKey) {\r\n\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t} catch (e) {}\r\n\t\t}\r\n\r\n\t\treturn key ? jar[key] : jar\r\n\t}\r\n\r\n\treturn Object.create({\r\n\t\t\tset: set,\r\n\t\t\tget: get,\r\n\t\t\tremove: function (key, attributes) {\r\n\t\t\t\tset(\r\n\t\t\t\t\tkey,\r\n\t\t\t\t\t'',\r\n\t\t\t\t\tassign({}, attributes, {\r\n\t\t\t\t\t\texpires: -1\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\twithAttributes: function (attributes) {\r\n\t\t\t\treturn init(this.converter, assign({}, this.attributes, attributes))\r\n\t\t\t},\r\n\t\t\twithConverter: function (converter) {\r\n\t\t\t\treturn init(assign({}, this.converter, converter), this.attributes)\r\n\t\t\t}\r\n\t\t},\r\n\t\t{\r\n\t\t\tattributes: { value: Object.freeze(defaultAttributes) },\r\n\t\t\tconverter: { value: Object.freeze(converter) }\r\n\t\t}\r\n\t)\r\n}\r\n\r\nlet api = init(defaultConverter, { path: '/' });\r\n\r\nexport default api;","import BaseModule from \"../../base-module\";\r\nimport {isDisabled, mergeDeepObject} from \"../../../utils/js/functions\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport Cookies from \"../../../utils/js/dom/cookie\";\r\nimport {dismissTrigger} from \"../../module-fn\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'lawcookie';\r\nconst NAME_KEY = 'vg.lawcookie';\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\n\r\nconst SELECTOR_DATA_TOGGLE = '[data-vg-toggle=\"lawcookie\"]';\r\nconst SELECTOR_DATA_TOGGLE_CLEAR = '[data-vg-toggle=\"lawcookie-clear\"]';\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nclass VGLawCookie extends BaseModule {\r\n\tstatic sParams = {};\r\n\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tstorage: 'local', // cookie or local\r\n\t\t\tdelay: 500,\r\n\t\t\tcookie: {\r\n\t\t\t\tname: 'lawCookie',\r\n\t\t\t\tvalue: 'yes',\r\n\t\t\t\tattributes: {}\r\n\t\t\t},\r\n\t\t\tanimation: {\r\n\t\t\t\tenable: true,\r\n\t\t\t\tin: 'animate__fadeInUp',\r\n\t\t\t\tout: 'animate__fadeOutDown',\r\n\t\t\t\tdelay: 800,\r\n\t\t\t},\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get'\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tVGLawCookie.sParams = this._params;\r\n\r\n\t\tthis._params.animation.delay = !this._params.animation.enable ? 0 : this._params.animation.delay;\r\n\t\tthis._animation(this._element, VGLawCookie.NAME_KEY, this._params.animation);\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\ttoggle() {\r\n\t\treturn !this._isShown() ? this.show() : this.hide();\r\n\t}\r\n\r\n\t_isShown() {\r\n\t\treturn this.storage().get();\r\n\t}\r\n\r\n\tshow() {\r\n\t\tif (isDisabled(this._element)) return;\r\n\r\n\t\tconst showEvent = EventHandler.trigger(this._element, EVENT_KEY_SHOW, {})\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tthis._element.classList.add(CLASS_NAME_SHOW);\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_SHOWN, {});\r\n\t\t}\r\n\t\tthis._queueCallback(completeCallBack, this._element, true, this._params.delay)\r\n\t}\r\n\r\n\thide() {\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE);\r\n\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis._element.classList.remove(CLASS_NAME_SHOW);\r\n\r\n\t\t\tconst completeCallback = () => EventHandler.trigger(this._element, EVENT_KEY_HIDDEN);\r\n\t\t\tthis._queueCallback(completeCallback, this._element, true);\r\n\t\t}, this._params.animation.delay);\r\n\t}\r\n\r\n\tstorage() {\r\n\t\tthis._storage = {\r\n\t\t\tisCookie: this._params.storage === 'cookie',\r\n\t\t\tstorage: this._params.storage === 'cookie' ? Cookies : localStorage,\r\n\t\t\tname: this._params.cookie.name,\r\n\t\t\tvalue: this._params.cookie.value,\r\n\t\t\tattributes: this._params.cookie.attributes,\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tget() {\r\n\t\tif (this._storage.isCookie) {\r\n\t\t\treturn this._storage.storage.get(this._storage.name);\r\n\t\t} else {\r\n\t\t\treturn this._storage.storage.getItem(this._storage.name);\r\n\t\t}\r\n\t}\r\n\r\n\tset() {\r\n\t\tif (this._storage.isCookie) {\r\n\t\t\tthis._storage.storage.set(this._storage.name, this._storage.value, this._storage.attributes);\r\n\t\t} else {\r\n\t\t\tthis._storage.storage.setItem(this._storage.name, this._storage.value);\r\n\t\t}\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\tstatic reset() {\r\n\t\tCookies.remove(VGLawCookie.sParams.cookie.name);\r\n\t\tlocalStorage.clear();\r\n\t\tlocation.reload();\r\n\t}\r\n\r\n\t/**\r\n\t * Инициализация\r\n\t * @param element\r\n\t * @param params\r\n\t */\r\n\tstatic init(element, params = {}) {\r\n\t\tconst instance = VGLawCookie.getOrCreateInstance(element, params);\r\n\t\tinstance.toggle();\r\n\t}\r\n}\r\n\r\ndismissTrigger(VGLawCookie);\r\n\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\tif (['A', 'AREA'].includes(this.tagName)) {\r\n\t\tevent.preventDefault()\r\n\t}\r\n\r\n\tif (isDisabled(this)) return;\r\n\r\n\tconst element = Selectors.find('#vg-lawcookie');\r\n\tif (!element) return;\r\n\r\n\tconst instance = VGLawCookie.getOrCreateInstance(element);\r\n\tinstance.storage().set();\r\n\tinstance.hide();\r\n});\r\n\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CLEAR, function (event) {\r\n\tif (['A', 'AREA'].includes(this.tagName)) {\r\n\t\tevent.preventDefault()\r\n\t}\r\n\r\n\tif (isDisabled(this)) return;\r\n\r\n\tconst element = Selectors.find('#vg-lawcookie');\r\n\tif (!element) return;\r\n\r\n\tconst instance = VGLawCookie.getOrCreateInstance(element);\r\n\tinstance.dispose();\r\n\r\n\tlocation.reload();\r\n});\r\n\r\nexport default VGLawCookie;","import BaseModule from \"../../base-module\";\r\nimport {\r\n\tisDisabled,\r\n\tisEmptyObj, isObject,\r\n\tmergeDeepObject,\r\n\tnoop,\r\n\tnormalizeData,\r\n\ttransliterate\r\n} from \"../../../utils/js/functions\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'select';\r\nconst NAME_KEY = 'vg.select';\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_ACTIVE = 'active';\r\nconst CLASS_NAME_CONTAINER = 'vg-select';\r\nconst CLASS_NAME_DROPDOWN = 'vg-select-dropdown';\r\nconst CLASS_NAME_LIST = 'vg-select-list';\r\nconst CLASS_NAME_OPTION = 'vg-select-list--option';\r\nconst CLASS_NAME_OPTGROUP = 'vg-select-list--optgroup';\r\nconst CLASS_NAME_OPTGROUP_TITLE = 'vg-select-list--optgroup-title';\r\nconst CLASS_NAME_CURRENT = 'vg-select-current';\r\nconst CLASS_NAME_PLACEHOLDER = 'vg-select-current--placeholder';\r\nconst CLASS_NAME_SEARCH = 'vg-select-search';\r\n\r\nconst EVENT_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\nconst EVENT_KEY_UP_DATA_API = `keyup.${NAME_KEY}.data.api`;\r\nconst EVENT_RESET_DATA_API = `reset.${NAME_KEY}.data.api`;\r\nconst EVENT_KEY_CHANGE = `${NAME_KEY}.change`;\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\n\r\nconst SELECTOR_DATA_TOGGLE = '[data-vg-toggle=\"select\"]';\r\nconst SELECTOR_OPTION_TOGGLE = '[data-vg-toggle=\"select-option\"]';\r\nconst SELECTOR_SEARCH_TOGGLE = '[name=vg-select-search]';\r\n\r\n\r\nlet observerTimout;\r\n\r\nclass VGSelect extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tsearch: false,\r\n\t\t\tplaceholder: '',\r\n\t\t}, params));\r\n\r\n\t\telement.parentElement.style.position = 'relative';\r\n\r\n\t\tthis._drop = Selectors.find('.' + CLASS_NAME_DROPDOWN, this._element);\r\n\t\tthis.refresh();\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\tstatic buildListOptions(selector, drop) {\r\n\t\tlet options = selector.options,\r\n\t\t\tlist = document.createElement('ul');\r\n\r\n\t\tlist.classList.add(CLASS_NAME_LIST);\r\n\r\n\t\tlet optGroup = selector.querySelectorAll('optgroup');\r\n\r\n\t\tif (optGroup.length) {\r\n\t\t\tlet isSelected = false;\r\n\t\t\t[...optGroup].forEach(function (el) {\r\n\t\t\t\tlet olOptGroup = document.createElement('ol');\r\n\t\t\t\tolOptGroup.classList.add(CLASS_NAME_OPTGROUP);\r\n\r\n\t\t\t\tlet liLabel = document.createElement('li');\r\n\t\t\t\tliLabel.innerHTML = el.label.trim();\r\n\t\t\t\tliLabel.classList.add(CLASS_NAME_OPTGROUP_TITLE)\r\n\r\n\t\t\t\tolOptGroup.prepend(liLabel)\r\n\r\n\t\t\t\tlet optGroupOptions = Selectors.findAll('option', el);\r\n\r\n\t\t\t\tcreateLi(optGroupOptions, olOptGroup, isSelected);\r\n\r\n\t\t\t\tlist.append(olOptGroup);\r\n\t\t\t\tisSelected = true;\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tlet isSelected = false;\r\n\t\t\tcreateLi(options, list, isSelected);\r\n\t\t}\r\n\r\n\t\tdrop.append(list);\r\n\r\n\t\treturn list;\r\n\r\n\t\tfunction createLi(options, list, isSelected) {\r\n\t\t\tlet i = 0;\r\n\t\t\tfor (const option of options) {\r\n\t\t\t\tlet li = document.createElement('li');\r\n\r\n\t\t\t\tli.innerHTML = option.innerHTML.trim().replace(/<\\/[^>]+(>|$)/g, \"\")\r\n\t\t\t\tli.dataset.value = Manipulator.get(option, 'value');\r\n\t\t\t\tli.classList.add(CLASS_NAME_OPTION);\r\n\r\n\t\t\t\tManipulator.set(li, 'data-vg-toggle', 'select-option');\r\n\r\n\t\t\t\tlet liData = Manipulator.get(option);\r\n\t\t\t\tif (!isEmptyObj(liData)) {\r\n\t\t\t\t\tfor (const key of Object.keys(liData)) {\r\n\t\t\t\t\t\tManipulator.set(li, 'data-' + key, liData[key]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (i === selector.selectedIndex && !isSelected) {\r\n\t\t\t\t\tli.classList.add('selected');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (Manipulator.has(option, 'disabled')) li.classList.add('disabled');\r\n\t\t\t\tif (Manipulator.has(option, 'hidden')) li.classList.add('hidden');\r\n\r\n\t\t\t\tlist.append(li);\r\n\r\n\t\t\t\ti++;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstatic build(selector, reBuild) {\r\n\t\tlet option_selected,\r\n\t\t\tplaceholder = selector.dataset.placeholder || '',\r\n\t\t\tisSearch = selector.dataset.search || false;\r\n\r\n\t\tif (selector.dataset?.inited === 'true' && !reBuild) {\r\n\t\t\treturn;\r\n\t\t} else if (reBuild) {\r\n\t\t\tVGSelect.destroy(selector);\r\n\t\t}\r\n\r\n\t\tif (placeholder && selector.selectedIndex === 0) {\r\n\t\t\toption_selected = '<span class=\"'+ CLASS_NAME_PLACEHOLDER +'\">' + placeholder + '<span>';\r\n\t\t} else {\r\n\t\t\toption_selected = selector.options[selector.selectedIndex].innerText;\r\n\t\t}\r\n\r\n\t\t// Создаем основной элемент с классами селекта\r\n\t\tlet classes = Manipulator.get(selector,'class'),\r\n\t\t\telement = document.createElement('div');\r\n\r\n\t\tclasses = classes.split(' ');\r\n\r\n\t\tfor (const _class of classes) {\r\n\t\t\telement.classList.add(_class)\r\n\t\t}\r\n\r\n\t\tif (Manipulator.has(selector, 'disabled')) element.classList.add('disabled');\r\n\r\n\t\tlet elData = Manipulator.get(selector);\r\n\t\tif (!isEmptyObj(elData)) {\r\n\t\t\tfor (const key of Object.keys(elData)) {\r\n\t\t\t\tManipulator.set(element,'data-' + key, elData[key]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Создаем элемент с отображением выбранного варианта\r\n\t\tlet current = document.createElement('div');\r\n\t\tcurrent.classList.add(CLASS_NAME_CURRENT);\r\n\t\tManipulator.set(current, 'data-vg-toggle', 'select');\r\n\t\tManipulator.set(current, 'aria-expanded', 'false');\r\n\t\tcurrent.innerHTML = option_selected.trim();\r\n\t\telement.append(current);\r\n\r\n\t\t// Создаем элемент выпадающего списка\r\n\t\tlet dropdown = document.createElement('div');\r\n\t\tdropdown.classList.add(CLASS_NAME_DROPDOWN);\r\n\t\telement.append(dropdown);\r\n\r\n\t\t// Создаем список и варианты селекта\r\n\t\tVGSelect.buildListOptions(selector, dropdown);\r\n\r\n\t\t// Добавляем все созданный контейнер после селекта\r\n\t\tselector.insertAdjacentElement('afterend', element);\r\n\r\n\t\t// помечаем элемент инициализированным\r\n\t\tselector.dataset.inited = 'true';\r\n\r\n\t\tif (isSearch) {\r\n\t\t\tlet search_container = document.createElement('div');\r\n\t\t\tsearch_container.classList.add(CLASS_NAME_SEARCH);\r\n\r\n\t\t\tlet input = document.createElement('input');\r\n\t\t\tManipulator.set(input, 'name', 'vg-select-search');\r\n\t\t\tManipulator.set(input, 'type', 'text');\r\n\t\t\tManipulator.set(input, 'placeholder', 'Поиск...');\r\n\r\n\t\t\tsearch_container.append(input);\r\n\t\t\tdropdown.prepend(search_container);\r\n\t\t}\r\n\r\n\t\treturn element;\r\n\t}\r\n\r\n\ttoggle(relatedTarget) {\r\n\t\treturn !this._isShown() ? this.show(relatedTarget) : this.hide();\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\t\tif (isDisabled(this._element)) return;\r\n\r\n\t\tconst showEvent = EventHandler.trigger(this._element, EVENT_KEY_SHOW, { relatedTarget })\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tif ('ontouchstart' in document.documentElement) {\r\n\t\t\tfor (const element of [].concat(...document.body.children)) {\r\n\t\t\t\tEventHandler.on(element, 'mouseover', noop);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._element.classList.add(CLASS_NAME_SHOW);\r\n\r\n\t\tif (this._params.search) {\r\n\t\t\tlet input = Selectors.find('input', this._element);\r\n\t\t\tif (input) input.focus();\r\n\t\t}\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tthis._element.classList.add(CLASS_NAME_ACTIVE);\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_SHOWN, { relatedTarget });\r\n\t\t}\r\n\r\n\t\tthis._queueCallback(completeCallBack, this._drop, true, 50)\r\n\t}\r\n\r\n\thide() {\r\n\t\tif (isDisabled(this._element) || !this._isShown()) return;\r\n\r\n\t\tthis._completeHide();\r\n\t}\r\n\r\n\t_completeHide() {\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE, {})\r\n\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\tthis._element.classList.remove(CLASS_NAME_ACTIVE);\r\n\t\tlet toggle = Selectors.find(SELECTOR_DATA_TOGGLE, this._element);\r\n\t\tManipulator.set(toggle, 'aria-expanded', 'false');\r\n\r\n\t\tif ('ontouchstart' in document.documentElement) {\r\n\t\t\tfor (const element of [].concat(...document.body.children)) {\r\n\t\t\t\tEventHandler.off(element, 'mouseover', noop);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst completeCallback = () => {\r\n\t\t\tthis._element.classList.remove(CLASS_NAME_SHOW);\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDDEN, {});\r\n\t\t}\r\n\t\tthis._queueCallback(completeCallback, this._drop, true, 10);\r\n\t}\r\n\r\n\t_isShown() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\trefresh() {\r\n\t\tconst select = this._element.previousSibling;\r\n\r\n\t\tlet observer = new MutationObserver(() => {\r\n\t\t\tclearTimeout(observerTimout);\r\n\t\t\tobserverTimout = setTimeout(() => {\r\n\t\t\t\tVGSelect.build(select, true);\r\n\t\t\t}, 100);\r\n\t\t});\r\n\r\n\t\tobserver.observe(select, {\r\n\t\t\tattributeFilter: ['disabled', 'required', 'style', 'hidden'],\r\n\t\t\tchildList: true,\r\n\t\t\tsubtree: true,\r\n\t\t\tcharacterDataOldValue: true,\r\n\t\t});\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\tstatic destroy(select) {\r\n\t\tlet element = select.nextElementSibling;\r\n\r\n\t\tif (element) {\r\n\t\t\tif (element.classList.contains(CLASS_NAME_CONTAINER)) {\r\n\t\t\t\telement.remove();\r\n\r\n\t\t\t\tselect.selectedIndex = 0;\r\n\t\t\t\t[...select.querySelectorAll('option')].forEach(function (el, index) {\r\n\t\t\t\t\tif (el.hasAttribute('selected')) {\r\n\t\t\t\t\t\tselect.selectedIndex = index;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstatic hideOpenToggles(event) {\r\n\t\tconst openToggles = Selectors.findAll('.vg-select:not(.disabled):not(:disabled).show');\r\n\r\n\t\tfor (const toggle of openToggles) {\r\n\t\t\tconst context = VGSelect.getInstance(toggle);\r\n\t\t\tif (!context) continue;\r\n\r\n\t\t\tif (event.target.closest('.' + CLASS_NAME_CONTAINER) === context._element) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst composedPath = event.composedPath();\r\n\t\t\tif (composedPath.includes(context._element)) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\tconst relatedTarget = { relatedTarget: context._element }\r\n\r\n\t\t\tif (event.type === 'click') {\r\n\t\t\t\trelatedTarget.clickEvent = event\r\n\t\t\t}\r\n\r\n\t\t\tcontext._completeHide(relatedTarget)\r\n\t\t}\r\n\t}\r\n\r\n\tstatic clearDrops(event) {\r\n\t\tif (event.button === 2 || (event.type === 'keyup' && event.key !== 'Tab')) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tVGSelect.hideOpenToggles(event)\r\n\t}\r\n\r\n\tstatic changeSelector(select, value, data = {}) {\r\n\t\tif (!isObject(data) && isEmptyObj(data)) return;\r\n\r\n\t\tselect.value = normalizeData(value);\r\n\t\tEventHandler.trigger(select, EVENT_KEY_CHANGE, {data: data});\r\n\t\tEventHandler.trigger(select, 'change', {data: data});\r\n\t}\r\n\r\n\t/**\r\n\t * Инициализация\r\n\t * @param element\r\n\t * @param params\r\n\t * @param isRebuild\r\n\t */\r\n\tstatic init(element, params = {}, isRebuild = false) {\r\n\t\tlet elm = VGSelect.build(element);\r\n\t\tVGSelect.getOrCreateInstance(elm, params);\r\n\t}\r\n}\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, VGSelect.clearDrops);\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function () {\r\n\tconst target = this.closest('.' + CLASS_NAME_CONTAINER);\r\n\r\n\tManipulator.set(this, 'aria-expanded', true);\r\n\r\n\tconst alreadyOpen = Selectors.find('.vg-select.show')\r\n\tif (alreadyOpen && alreadyOpen !== target) {\r\n\t\tVGSelect.getInstance(alreadyOpen).hide();\r\n\t}\r\n\r\n\tconst instance = VGSelect.getOrCreateInstance(target);\r\n\tinstance.toggle(this);\r\n});\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_OPTION_TOGGLE, function (e) {\r\n\tlet el = e.target;\r\n\r\n\tif (!el.classList.contains('disabled')) {\r\n\t\tlet container = el.closest('.' + CLASS_NAME_CONTAINER),\r\n\t\t\toptions = container.querySelectorAll('.' + CLASS_NAME_OPTION);\r\n\r\n\t\tif (options.length) {\r\n\t\t\tfor (const option of options) {\r\n\t\t\t\toption.classList.remove('selected');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tel.classList.add('selected');\r\n\r\n\t\tcontainer.querySelector('.' + CLASS_NAME_CURRENT).innerText = el.innerText;\r\n\t\tcontainer.classList.remove('show');\r\n\r\n\t\tlet select = container.previousSibling;\r\n\t\tVGSelect.changeSelector(select, el.dataset.value, {value: el.dataset.value, title: el.innerHTML})\r\n\t}\r\n});\r\n\r\nEventHandler.on(document, EVENT_KEY_UP_DATA_API, SELECTOR_SEARCH_TOGGLE, function (e) {\r\n\tlet el = this;\r\n\r\n\tlet selectList = el?.closest('.' + CLASS_NAME_DROPDOWN).querySelector('.' + CLASS_NAME_LIST);\r\n\tif (selectList) {\r\n\t\tlet options = [...selectList.querySelectorAll('.' + CLASS_NAME_OPTION)],\r\n\t\t\toptionsGroup = [...selectList.querySelectorAll('.' + CLASS_NAME_OPTGROUP)],\r\n\t\t\tvalue = el?.value;\r\n\r\n\t\toptions = options.concat(optionsGroup);\r\n\r\n\t\tfor (const option of options) {\r\n\t\t\tManipulator.show(option);\r\n\t\t}\r\n\r\n\t\tif (value.length) {\r\n\t\t\tvalue = value.trim();\r\n\t\t\tvalue = value.toLowerCase();\r\n\t\t\tvalue = transliterate(value, true);\r\n\r\n\t\t\tfor (const option of options) {\r\n\t\t\t\tlet text = option.innerText.toLowerCase();\r\n\r\n\t\t\t\tif (text.indexOf(value) === -1) Manipulator.hide(option);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nEventHandler.on(document, EVENT_RESET_DATA_API, 'form', function () {\r\n\tSelectors.findAll('select.' + CLASS_NAME_CONTAINER, this).forEach(el => {\r\n\t\tVGSelect.build(el, true)\r\n\t});\r\n});\r\n\r\n\r\nexport default VGSelect;"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","isEmptyObj","isElement","object","isObject","nodeType","isDisabled","element","Node","ELEMENT_NODE","classList","contains","disabled","hasAttribute","getAttribute","normalizeData","Number","toString","JSON","parse","decodeURIComponent","mergeDeepObject","objects","reduce","prev","keys","forEach","pVal","oVal","Array","isArray","concat","execute","possibleCallback","args","defaultValue","TRANSITION_END","reflow","offsetHeight","noop","makeRandomString","length","result","counter","charAt","Math","floor","characters","random","isRTL","document","documentElement","dir","getSelector","selector","hrefAttribute","includes","startsWith","split","trim","map","sel","window","CSS","escape","replace","match","id","parseSelector","join","Selectors","find","Element","querySelector","findAll","container","querySelectorAll","getSelectorFromElement","getElementFromSelector","getMultipleElementsFromSelector","elementMap","Map","set","instance","has","instanceMap","size","console","error","from","remove","delete","Manipulator","nameAttribute","isRemoveDataName","elmBase","attributes","arr","filter","at","test","name","v","slice","getAttributeNames","acc","setAttribute","removeAttribute","hide","el","style","display","show","state","constructor","params","this","_params","merge","fromElement","mParams","indexOf","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","makeEventUid","uid","getElementEvents","findHandler","events","callable","delegationSelector","values","event","normalizeParameters","originalTypeEvent","handler","delegationFunction","isDelegated","typeEvent","addHandler","oneOff","wrapFunction","fn","relatedTarget","delegateTarget","handlers","previousFunction","domElements","target","parentNode","domElement","hydrateObj","EventHandler","off","type","apply","bootstrapDelegationHandler","bootstrapHandler","addEventListener","removeHandler","removeEventListener","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","entries","meta","configurable","on","one","inNamespace","isNamespace","elementEvent","keyHandlers","trigger","evt","Event","bubbles","cancelable","dispatchEvent","getSVG","success","waiting","dots","cross","dismissTrigger","module","method","clickEvent","EVENT_KEY","NAME","tagName","preventDefault","closest","getOrCreateInstance","Ajax","x","XMLHttpRequest","xhr","versions","i","ActiveXObject","e","send","url","callback","data","async","undefined","open","setRequestHeader","onreadystatechange","readyState","status","text","statusText","response","responseText","code","query","push","encodeURIComponent","post","enable","in","out","delay","classes","animated","_element","_name_key","add","_triggers","Error","Data","NAME_KEY","_getParams","Params","dispose","propertyName","getOwnPropertyNames","_route","_this","$content","setData","innerHTML","ajax","route","loader","_dismissElement","button","insertAdjacentHTML","_queueCallback","isAnimated","timeOutMs","transitionElement","waitForTransition","emulatedDuration","transitionDuration","transitionDelay","getComputedStyle","floatTransitionDuration","parseFloat","floatTransitionDelay","getTransitionDurationFromElement","called","setTimeout","triggerTransitionEnd","executeAfterTransition","_animation","Animation","getInstance","DATA_KEY","append","body","paddingRight","documentWidth","clientWidth","abs","innerWidth","getWidth","overflow","destroy","CLASS_NAME","CLASS_NAME_FADE","Backdrop","_append","_destroy","backdrop","createElement","Overflow","CLASS_NAME_SHOW","CLASS_NAME_OPEN","EVENT_KEY_HIDE","EVENT_KEY_HIDDEN","EVENT_KEY_SHOW","EVENT_KEY_SHOWN","EVENT_KEY_LOADED","EVENT_KEY_KEYDOWN_DISMISS","EVENT_KEY_HIDE_PREVENTED","EVENT_KEY_CLICK_DATA_API","VGSidebar","BaseModule","super","keyboard","animation","_addEventListeners","toggle","_isShown","stats","defaultPrevented","completeCallBack","completeCallback","alreadyOpen","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_DEEPER_CHILDREN","SELECTOR_DATA_TOGGLE","VGCollapse","parent","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElement","_initializeChildren","_addAriaAndCollapsedClass","activeChildren","_getFirstLevelChildren","activeInstance","height","complete","getBoundingClientRect","triggerArray","isOpen","_changeStateButton","children","selected","breakpoints","xs","sm","md","lg","xl","xxl","xxxl","check","define","checkMobileOrTablet","a","navigator","userAgent","vendor","opera","windowWidth","responsive_size","_checkResponsiveClass","point","loc","current_responsive_size","XXXL","XXL","XL","LG","MD","SM","XS","CLASS_NAME_ACTIVE","EVENT_MOUSEOVER_DATA_API","EVENT_MOUSEOUT_DATA_API","EVENT_CLICK_DATA_API","EVENT_KEYUP_DATA_API","EVENT_RESIZE_DATA_API","VGNav","breakpoint","placement","hamburgerActive","hamburgerAlways","hamburger","wrapper","active","expand","cloned","hover","flip","position","collapse","always","title","timeoutAnimation","_navigation","navigation","movedLinks","$links","elm","build","Responsive","mTitle","$dropdown_a","width_navigation_responsive","width_all_links_responsive","$dots","_dots","$a","$linkStyle","paddingLeft","$link","width","insertBefore","appendChild","splice","$d","$dropdown","link","prepend","setCollapse","afterInit","drop","firstElementChild","$drop","right","N_right","$ul","$el","setDropPosition","index","previousElementSibling","init","drops","currentElem","hideOpenDrops","clearDrops","click","self","isFirst","getClientRects","elementIsVisible","getPropertyValue","closedDetails","summary","isVisible","vgNavSidebar","getElementById","openToggles","context","arg","_getPlacement","_parent","top","left","isFixed","bounds","styles","TARGET_CONTAINER","EVENT_KEYDOWN_DATA_API","VGDropdown","defaultParams","offset","over","_drop","_isPlacement","_setPlacement","_completeHide","Placement","transform","paddingTop","hideOpenToggles","keydownHandler","composedPath","isInput","isEscapeEvent","isUpOrDownEvent","getToggleButton","matches","stopPropagation","focus","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","PROPERTY_PADDING","PROPERTY_MARGIN","_disableOverFlow","_setElementAttributes","calculatedValue","reset","_resetElementAttributes","isOverflowing","_saveInitialAttribute","styleProperty","scrollbarWidth","_applyManipulationCallback","setProperty","actualValue","removeProperty","callBack","CLASS_NAME_STATIC","EVENT_KEY_RESIZE","EVENT_KEY_MOUSEDOWN_DISMISS","EVENT_KEY_CLICK_DISMISS","VGModal","fields","general","dialog","content","header","footer","_button","_dialog","_scrollBar","ScrollBarHelper","btnClose","_addFieldsInModal","_adjustDialog","_showElement","openedModals","_hideModal","_isAnimatedFade","_resetAdjustments","scrollTop","modalBody","transitionComplete","isModalOverflowing","scrollHeight","clientHeight","isBodyOverflowing","property","_triggerBackdropTransition","event2","initialOverflowY","overflowY","item","elements","showEvent","EVENT_SUBMIT_DATA_API","VGFormSender","redirect","validate","submit","timeout","alert","enabled","alertCollapse","alertModal","validation","wasValidate","toLowerCase","isBtnText","isJsonParse","isShowPass","request","_alertBefore","_alertError","_alertSuccess","location","href","getElementsByClassName","_statusButton","_jsonParse","btnSubmitText","btnText","$btnText","$btnTextSend","spinner","parserData","message","errors","_alertModal","_alertCollapse","bootstrap","Modal","mVG","$modal","$body","setDataRelationStatus","$collapse","$element","$alert","txt","t","view","icon","checkValidity","FormData","VGRollup","assign","arguments","source","converter","defaultAttributes","expires","Date","now","toUTCString","stringifiedAttributes","attributeName","cookie","write","create","cookies","jar","parts","foundKey","read","withAttributes","withConverter","freeze","path","VGLawCookie","static","storage","sParams","_storage","isCookie","Cookies","localStorage","getItem","setItem","clear","reload","CLASS_NAME_CONTAINER","CLASS_NAME_DROPDOWN","CLASS_NAME_LIST","CLASS_NAME_OPTION","CLASS_NAME_OPTGROUP","CLASS_NAME_CURRENT","EVENT_KEY_UP_DATA_API","EVENT_RESET_DATA_API","EVENT_KEY_CHANGE","observerTimout","VGSelect","search","placeholder","parentElement","refresh","buildListOptions","options","list","optGroup","isSelected","olOptGroup","liLabel","label","createLi","option","li","dataset","liData","selectedIndex","reBuild","option_selected","isSearch","inited","innerText","_class","elData","current","dropdown","insertAdjacentElement","search_container","input","select","previousSibling","MutationObserver","clearTimeout","observe","attributeFilter","childList","subtree","characterDataOldValue","nextElementSibling","changeSelector","isRebuild","selectList","optionsGroup","ru","en","toUpperCase","transliterate"],"sourceRoot":""}
1
+ {"version":3,"file":"vgapp.js","mappings":"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","sources":["webpack://vg/webpack/bootstrap","webpack://vg/webpack/runtime/define property getters","webpack://vg/webpack/runtime/hasOwnProperty shorthand","webpack://vg/webpack/runtime/make namespace object","webpack://vg/./app/utils/js/functions.js","webpack://vg/./app/utils/js/dom/selectors.js","webpack://vg/./app/utils/js/dom/data.js","webpack://vg/./app/utils/js/dom/manipulator.js","webpack://vg/./app/utils/js/components/params.js","webpack://vg/./app/utils/js/dom/event.js","webpack://vg/./app/modules/module-fn.js","webpack://vg/./app/utils/js/components/animation.js","webpack://vg/./app/modules/base-module.js","webpack://vg/./app/utils/js/components/overflow.js","webpack://vg/./app/utils/js/components/backdrop.js","webpack://vg/./app/modules/vgsidebar/js/vgsidebar.js","webpack://vg/./app/modules/vgcollapse/js/vgcollapse.js","webpack://vg/./app/utils/js/components/responsive.js","webpack://vg/./app/modules/vgnav/js/vgnav.js","webpack://vg/./app/utils/js/components/placement.js","webpack://vg/./app/modules/vgdropdown/js/vgdropdown.js","webpack://vg/./app/utils/js/components/scrollbar.js","webpack://vg/./app/modules/vgmodal/js/vgmodal.js","webpack://vg/./app/modules/vgformsender/js/vgformsender.js","webpack://vg/./app/modules/vgrollup/js/vgrollup.js","webpack://vg/./app/utils/js/dom/cookie.js","webpack://vg/./app/modules/vglawcookie/js/vglawcookie.js","webpack://vg/./app/modules/vgselect/js/vgselect.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\r\n * Набор скриптов для широкого применения\r\n */\r\n\r\n/**\r\n * Если что-нибудь в объекте\r\n * @param obj\r\n * @returns {boolean}\r\n */\r\nfunction isEmptyObj(obj) {\r\n\tfor (let prop in obj) {\r\n\t\tif (Object.prototype.hasOwnProperty.call(obj, prop)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\treturn true\r\n}\r\n\r\n/**\r\n * isElement\r\n * @param object\r\n * @returns {boolean}\r\n */\r\nconst isElement = object => {\r\n\tif (!isObject(object)) {\r\n\t\treturn false\r\n\t}\r\n\r\n\treturn typeof object.nodeType !== 'undefined'\r\n}\r\n\r\n/**\r\n * isDisabled\r\n * @param element\r\n * @returns {boolean}\r\n */\r\nconst isDisabled = element => {\r\n\tif (!element || element.nodeType !== Node.ELEMENT_NODE) {\r\n\t\treturn true\r\n\t}\r\n\r\n\tif (element.classList.contains('disabled')) {\r\n\t\treturn true\r\n\t}\r\n\r\n\tif (typeof element.disabled !== 'undefined') {\r\n\t\treturn element.disabled\r\n\t}\r\n\r\n\treturn element.hasAttribute('disabled') && element.getAttribute('disabled') !== 'false'\r\n}\r\n\r\n/**\r\n * isVisible\r\n * @param element\r\n * @returns {boolean}\r\n */\r\nfunction isVisible (element) {\r\n\tif (!isElement(element) || element.getClientRects().length === 0) {\r\n\t\treturn false\r\n\t}\r\n\r\n\tconst elementIsVisible = getComputedStyle(element).getPropertyValue('visibility') === 'visible'\r\n\tconst closedDetails = element.closest('details:not([open])')\r\n\r\n\tif (!closedDetails) {\r\n\t\treturn elementIsVisible\r\n\t}\r\n\r\n\tif (closedDetails !== element) {\r\n\t\tconst summary = element.closest('summary')\r\n\t\tif (summary && summary.parentNode !== closedDetails) {\r\n\t\t\treturn false\r\n\t\t}\r\n\r\n\t\tif (summary === null) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t}\r\n\r\n\treturn elementIsVisible\r\n}\r\n\r\n/**\r\n * isObject\r\n * @param obj\r\n * @returns {boolean}\r\n */\r\nfunction isObject(obj) {\r\n\treturn obj && typeof obj === 'object'\r\n}\r\n\r\n/**\r\n * Приводим в порядок типы данных\r\n * @param value\r\n * @returns {any}\r\n */\r\nfunction normalizeData(value) {\r\n\tif (value === 'true') {\r\n\t\treturn true\r\n\t}\r\n\r\n\tif (value === 'false') {\r\n\t\treturn false\r\n\t}\r\n\r\n\tif (value === Number(value).toString()) {\r\n\t\treturn Number(value)\r\n\t}\r\n\r\n\tif (value === '' || value === 'null') {\r\n\t\treturn null\r\n\t}\r\n\r\n\tif (typeof value !== 'string') {\r\n\t\treturn value\r\n\t}\r\n\r\n\ttry {\r\n\t\treturn JSON.parse(decodeURIComponent(value))\r\n\t} catch {\r\n\t\treturn value\r\n\t}\r\n}\r\n\r\n/**\r\n * Удаляем элементы с массива\r\n * @param arr\r\n * @param el\r\n */\r\nfunction removeElementArray(arr, el) {\r\n\treturn arr.filter((item) => !el.includes(item));\r\n}\r\n\r\n/**\r\n * Глубокое объединение объектов\r\n * @param objects\r\n * @returns {*}\r\n */\r\nfunction mergeDeepObject(...objects) {\r\n\tconst isObject = obj => obj && typeof obj === 'object';\r\n\r\n\treturn objects.reduce((prev, obj) => {\r\n\t\tObject.keys(obj).forEach(key => {\r\n\t\t\tconst pVal = prev[key];\r\n\t\t\tconst oVal = obj[key];\r\n\r\n\t\t\tif (Array.isArray(pVal) && Array.isArray(oVal)) {\r\n\t\t\t\tprev[key] = pVal.concat(...oVal);\r\n\t\t\t}\r\n\t\t\telse if (isObject(pVal) && isObject(oVal)) {\r\n\t\t\t\tprev[key] = mergeDeepObject(pVal, oVal);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tprev[key] = oVal;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn prev;\r\n\t}, {});\r\n}\r\n\r\n/**\r\n * Callback\r\n * @param possibleCallback\r\n * @param args\r\n * @param defaultValue\r\n * @returns {*}\r\n */\r\nfunction execute(possibleCallback, args = [], defaultValue = possibleCallback) {\r\n\treturn typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue\r\n}\r\n\r\n/**\r\n * Transition\r\n * @param callback\r\n * @param transitionElement\r\n * @param waitForTransition\r\n */\r\nconst TRANSITION_END = 'transitionend';\r\nconst MILLISECONDS_MULTIPLIER = 1000;\r\n\r\nfunction executeAfterTransition (callback, transitionElement, waitForTransition = true, timeOutMs) {\r\n\tif (!waitForTransition) {\r\n\t\texecute(callback)\r\n\t\treturn\r\n\t}\r\n\r\n\tconst durationPadding = 5\r\n\tconst emulatedDuration = timeOutMs ? timeOutMs : getTransitionDurationFromElement(transitionElement) + durationPadding;\r\n\r\n\tlet called = false\r\n\r\n\tconst handler = ({ target }) => {\r\n\t\tif (target !== transitionElement) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tcalled = true\r\n\t\ttransitionElement.removeEventListener(TRANSITION_END, handler)\r\n\t\texecute(callback)\r\n\t}\r\n\r\n\ttransitionElement.addEventListener(TRANSITION_END, handler)\r\n\tsetTimeout(() => {\r\n\t\tif (!called) {\r\n\t\t\ttriggerTransitionEnd(transitionElement)\r\n\t\t}\r\n\t}, emulatedDuration)\r\n}\r\n\r\nconst getTransitionDurationFromElement = element => {\r\n\tif (!element) {\r\n\t\treturn 0\r\n\t}\r\n\r\n\t// Get transition-duration of the element\r\n\tlet { transitionDuration, transitionDelay } = window.getComputedStyle(element)\r\n\r\n\tconst floatTransitionDuration = Number.parseFloat(transitionDuration)\r\n\tconst floatTransitionDelay = Number.parseFloat(transitionDelay)\r\n\r\n\t// Return 0 if element or transition duration is not found\r\n\tif (!floatTransitionDuration && !floatTransitionDelay) {\r\n\t\treturn 0\r\n\t}\r\n\r\n\t// If multiple durations are defined, take the first\r\n\ttransitionDuration = transitionDuration.split(',')[0]\r\n\ttransitionDelay = transitionDelay.split(',')[0]\r\n\r\n\treturn (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\r\n}\r\n\r\nconst triggerTransitionEnd = element => {\r\n\telement.dispatchEvent(new Event(TRANSITION_END))\r\n}\r\n\r\n/**\r\n * Трюк для перезапуска анимации элемента\r\n *\r\n * @param {HTMLElement} element\r\n * @return void\r\n *\r\n * @смотри https://www.charistheo.io/blog/2021/02/restart-a-css-animation-with-javascript/#restarting-a-css-animation\r\n */\r\nconst reflow = element => {\r\n\telement.offsetHeight // eslint-disable-line no-unused-expressions\r\n}\r\n\r\n/**\r\n * Noop\r\n */\r\nconst noop = () => {};\r\n\r\n/**\r\n * Генерация случайной строки\r\n */\r\nfunction makeRandomString(length = 7) {\r\n\tlet result = '';\r\n\tconst characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\r\n\tconst charactersLength = characters.length;\r\n\tlet counter = 0;\r\n\twhile (counter < length) {\r\n\t\tresult += characters.charAt(Math.floor(Math.random() * charactersLength));\r\n\t\tcounter += 1;\r\n\t}\r\n\treturn result;\r\n}\r\n\r\n/**\r\n * Транслитерация символов с латиницы на кириллицу и обратно\r\n * @param text\r\n * @param enToRu\r\n * @returns {*}\r\n */\r\nfunction transliterate(text, enToRu) {\r\n\tlet ru = \"й ц у к е н г ш щ з х ъ ф ы в а п р о л д ж э я ч с м и т ь б ю\".split(/ +/g);\r\n\tlet en = \"q w e r t y u i o p [ ] a s d f g h j k l ; ' z x c v b n m , .\".split(/ +/g);\r\n\tlet x;\r\n\r\n\tfor (x = 0; x < ru.length; x++) {\r\n\t\ttext = text.split(enToRu ? en[x] : ru[x]).join(enToRu ? ru[x] : en[x]);\r\n\t\ttext = text.split(enToRu ? en[x].toUpperCase() : ru[x].toUpperCase()).join(enToRu ? ru[x].toUpperCase() : en[x].toUpperCase());\r\n\t}\r\n\r\n\treturn text;\r\n}\r\n\r\n/**\r\n *\r\n */\r\nconst isRTL = () => document.documentElement.dir === 'rtl'\r\n\r\nexport {isElement, isVisible, isDisabled, isObject, isEmptyObj, mergeDeepObject, removeElementArray, normalizeData, execute, executeAfterTransition, reflow, noop, makeRandomString, isRTL, transliterate}","/**\r\n * Работа с DOM\r\n * @param selector\r\n * @returns {*}\r\n */\r\nimport {isElement} from \"../functions\";\r\n\r\nconst parseSelector = selector => {\r\n\tif (selector && window.CSS && window.CSS.escape) {\r\n\t\tselector = selector.replace(/#([^\\s\"#']+)/g, (match, id) => `#${CSS.escape(id)}`)\r\n\t}\r\n\r\n\treturn selector\r\n}\r\n\r\nconst getSelector = element => {\r\n\tlet selector = element.getAttribute('data-vg-target');\r\n\r\n\tif (!selector || selector === '#') {\r\n\t\tlet hrefAttribute = element.getAttribute('href');\r\n\t\tif (!hrefAttribute || (!hrefAttribute.includes('#') && !hrefAttribute.startsWith('.'))) {\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\tif (hrefAttribute.includes('#') && !hrefAttribute.startsWith('#')) {\r\n\t\t\threfAttribute = `#${hrefAttribute.split('#')[1]}`;\r\n\t\t}\r\n\r\n\t\tselector = hrefAttribute && hrefAttribute !== '#' ? hrefAttribute.trim() : null;\r\n\t}\r\n\r\n\treturn selector ? selector.split(',').map(sel => parseSelector(sel)).join(',') : null;\r\n}\r\n\r\nconst Selectors = {\r\n\tfind(selector, element = document.documentElement) {\r\n\t\tif (isElement(selector)) {\r\n\t\t\treturn selector;\r\n\t\t} else {\r\n\t\t\treturn Element.prototype.querySelector.call(element, selector);\r\n\t\t}\r\n\t},\r\n\r\n\tfindAll(selector, container = document.documentElement) {\r\n\t\treturn [].concat(...Element.prototype.querySelectorAll.call(container, selector));\r\n\t},\r\n\r\n\tgetSelectorFromElement(element) {\r\n\t\tconst selector = getSelector(element);\r\n\t\tif (selector) return Selectors.find(selector) ? selector : null\r\n\t\treturn null\r\n\t},\r\n\r\n\tgetElementFromSelector(element) {\r\n\t\tconst selector = getSelector(element);\r\n\t\treturn selector ? Selectors.find(selector) : null\r\n\t},\r\n\r\n\tgetMultipleElementsFromSelector(element) {\r\n\t\tconst selector = getSelector(element);\r\n\t\treturn selector ? Selectors.findAll(selector) : []\r\n\t}\r\n}\r\n\r\nexport default Selectors;","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap data.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n * Скрипт работает с коллекцией модулей. Подробнее тут https://learn.javascript.ru/map-set\r\n */\r\n\r\n/**\r\n * Константы\r\n */\r\n\r\nconst elementMap = new Map()\r\n\r\nexport default {\r\n\tset(element, key, instance) {\r\n\t\tif (!elementMap.has(element)) {\r\n\t\t\telementMap.set(element, new Map())\r\n\t\t}\r\n\r\n\t\tconst instanceMap = elementMap.get(element)\r\n\t\tif (!instanceMap.has(key) && instanceMap.size !== 0) {\r\n\t\t\tconsole.error(`VGApp не допускает более одного экземпляра для каждого элемента. Связанный экземпляр: ${Array.from(instanceMap.keys())[0]}.`)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tinstanceMap.set(key, instance);\r\n\t},\r\n\r\n\tget(element, key) {\r\n\t\tif (elementMap.has(element)) {\r\n\t\t\treturn elementMap.get(element).get(key) || null\r\n\t\t}\r\n\r\n\t\treturn null\r\n\t},\r\n\r\n\tremove(element, key) {\r\n\t\tif (!elementMap.has(element)) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst instanceMap = elementMap.get(element)\r\n\r\n\t\tinstanceMap.delete(key);\r\n\r\n\t\tif (instanceMap.size === 0) {\r\n\t\t\telementMap.delete(element)\r\n\t\t}\r\n\t}\r\n}\r\n","import {isElement, normalizeData} from \"../functions\";\r\n\r\n/**\r\n * Манипуляции с атрибутами у элемента:\r\n * get (элемент, имя, флаг - вырезать data-) - метод выбирает значение атрибута по его имени, если в поле имени передать 'data' -> будут выбраны только дата атрибуты, если 'all' -> метод вернет значение всех атрибутов\r\n * has (элемент, имя) - есть ли атрибут у элемента\r\n * set (элемент, имя, значение) - установка у элемента атрибута или его изменение\r\n * remove (элемент, имя) - удаляет атрибут у элемента\r\n */\r\nconst Manipulator = {\r\n\tget(element, nameAttribute = 'data', isRemoveDataName = true) {\r\n\t\tif (!element) {\r\n\t\t\treturn {}\r\n\t\t}\r\n\r\n\t\tif (nameAttribute === 'data') {\r\n\t\t\tlet elmBase = ['data-vg-toggle', 'data-vg-target', 'data-vg-dismiss'],\r\n\t\t\t\tattributes = {};\r\n\r\n\t\t\tlet arr = [].filter.call(element.attributes, function (at) {\r\n\t\t\t\treturn /^data-/.test(at.name);\r\n\t\t\t});\r\n\r\n\t\t\tif (arr.length) {\r\n\t\t\t\tarr.forEach(function (v) {\r\n\t\t\t\t\tlet name = v.name;\r\n\r\n\t\t\t\t\tif (!elmBase.includes(name)) {\r\n\t\t\t\t\t\tif (isRemoveDataName) name = name.slice(5);\r\n\t\t\t\t\t\tattributes[name] = normalizeData(v.value)\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\treturn attributes;\r\n\t\t} else if (nameAttribute === 'all') {\r\n\t\t\treturn element.getAttributeNames().reduce((acc, name) => {\r\n\t\t\t\treturn {...acc, [name]: element.getAttribute(name)};\r\n\t\t\t}, {});\r\n\t\t} else {\r\n\t\t\treturn element.getAttribute(nameAttribute);\r\n\t\t}\r\n\t},\r\n\r\n\thas(element, nameAttribute) {\r\n\t\treturn element.hasAttribute(nameAttribute);\r\n\t},\r\n\r\n\tset(element, name, value) {\r\n\t\tif (isElement(element) && name) {\r\n\t\t\telement.setAttribute(name, value);\r\n\t\t}\r\n\t},\r\n\r\n\tremove(element, nameAttribute) {\r\n\t\tif (isElement(element) && nameAttribute) {\r\n\t\t\telement.removeAttribute(nameAttribute);\r\n\t\t}\r\n\t},\r\n\r\n\thide(el) {\r\n\t\tel.style.display = 'none';\r\n\t},\r\n\r\n\tshow(el, state = 'block') {\r\n\t\tel.style.display = state;\r\n\t},\r\n}\r\n\r\nexport {Manipulator}\r\n","import {isElement, mergeDeepObject, normalizeData} from \"../functions\";\r\nimport {Manipulator} from \"../dom/manipulator\";\r\n\r\nclass Params {\r\n\tconstructor(params, element = null) {\r\n\t\tthis._params = this.merge(params, element);\r\n\t}\r\n\r\n\tget() {\r\n\t\treturn this._params;\r\n\t}\r\n\r\n\tfromElement(element) {\r\n\t\treturn isElement(element) ? Manipulator.get(element) : {};\r\n\t}\r\n\r\n\tmerge(params, element) {\r\n\t\tlet mParams = mergeDeepObject(params, this.fromElement(element));\r\n\r\n\t\tfor (let key in mParams) {\r\n\t\t\tif (key.indexOf('-') !== -1) {\r\n\t\t\t\tlet keys = key.split('-'),\r\n\t\t\t\t\tvalue = normalizeData(mParams[key]);\r\n\r\n\t\t\t\tif (keys[0] in mParams) {\r\n\t\t\t\t\tif (keys[1] in mParams[keys[0]]) {\r\n\t\t\t\t\t\tmParams[keys[0]][keys[1]] = value;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdelete mParams[key];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ('params' in mParams) {\r\n\t\t\tmParams = mergeDeepObject(mParams, mParams.params);\r\n\t\t\tdelete mParams.params;\r\n\t\t}\r\n\r\n\t\treturn mParams;\r\n\t}\r\n}\r\n\r\nexport default Params;","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap event.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n * Скрипт для прослушивания события\r\n */\r\n\r\n/**\r\n * Константы\r\n */\r\n\r\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\r\nconst stripNameRegex = /\\..*/\r\nconst stripUidRegex = /::\\d+$/\r\nconst eventRegistry = {} // Events storage\r\nlet uidEvent = 1\r\nconst customEvents = {\r\n\tmouseenter: 'mouseover',\r\n\tmouseleave: 'mouseout'\r\n}\r\n\r\nconst nativeEvents = new Set([\r\n\t'click',\r\n\t'dblclick',\r\n\t'mouseup',\r\n\t'mousedown',\r\n\t'contextmenu',\r\n\t'mousewheel',\r\n\t'DOMMouseScroll',\r\n\t'mouseover',\r\n\t'mouseout',\r\n\t'mousemove',\r\n\t'selectstart',\r\n\t'selectend',\r\n\t'submit',\r\n\t'keydown',\r\n\t'keypress',\r\n\t'keyup',\r\n\t'orientationchange',\r\n\t'touchstart',\r\n\t'touchmove',\r\n\t'touchend',\r\n\t'touchcancel',\r\n\t'pointerdown',\r\n\t'pointermove',\r\n\t'pointerup',\r\n\t'pointerleave',\r\n\t'pointercancel',\r\n\t'gesturestart',\r\n\t'gesturechange',\r\n\t'gestureend',\r\n\t'focus',\r\n\t'blur',\r\n\t'change',\r\n\t'reset',\r\n\t'select',\r\n\t'submit',\r\n\t'focusin',\r\n\t'focusout',\r\n\t'load',\r\n\t'unload',\r\n\t'beforeunload',\r\n\t'resize',\r\n\t'move',\r\n\t'DOMContentLoaded',\r\n\t'readystatechange',\r\n\t'error',\r\n\t'abort',\r\n\t'scroll'\r\n])\r\n\r\n/**\r\n * Приватные методы\r\n */\r\n\r\nfunction makeEventUid(element, uid) {\r\n\treturn (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\r\n}\r\n\r\nfunction getElementEvents(element) {\r\n\tconst uid = makeEventUid(element)\r\n\r\n\telement.uidEvent = uid\r\n\teventRegistry[uid] = eventRegistry[uid] || {}\r\n\r\n\treturn eventRegistry[uid]\r\n}\r\n\r\nfunction bootstrapHandler(element, fn) {\r\n\treturn function handler(event) {\r\n\t\thydrateObj(event, { delegateTarget: element })\r\n\r\n\t\tif (handler.oneOff) {\r\n\t\t\tEventHandler.off(element, event.type, fn)\r\n\t\t}\r\n\r\n\t\treturn fn.apply(element, [event])\r\n\t}\r\n}\r\n\r\nfunction bootstrapDelegationHandler(element, selector, fn) {\r\n\treturn function handler(event) {\r\n\t\tconst domElements = element.querySelectorAll(selector)\r\n\r\n\t\tfor (let { target } = event; target && target !== this; target = target.parentNode) {\r\n\t\t\tfor (const domElement of domElements) {\r\n\t\t\t\tif (domElement !== target) {\r\n\t\t\t\t\tcontinue\r\n\t\t\t\t}\r\n\r\n\t\t\t\thydrateObj(event, { delegateTarget: target })\r\n\r\n\t\t\t\tif (handler.oneOff) {\r\n\t\t\t\t\tEventHandler.off(element, event.type, selector, fn)\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn fn.apply(target, [event])\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction findHandler(events, callable, delegationSelector = null) {\r\n\treturn Object.values(events)\r\n\t\t.find(event => event.callable === callable && event.delegationSelector === delegationSelector)\r\n}\r\n\r\nfunction normalizeParameters(originalTypeEvent, handler, delegationFunction) {\r\n\tconst isDelegated = typeof handler === 'string'\r\n\t// TODO: выдает \"false\" вместо селектора, поэтому нужно проверить. boot\r\n\tconst callable = isDelegated ? delegationFunction : (handler || delegationFunction)\r\n\tlet typeEvent = getTypeEvent(originalTypeEvent)\r\n\r\n\tif (!nativeEvents.has(typeEvent)) {\r\n\t\ttypeEvent = originalTypeEvent\r\n\t}\r\n\r\n\treturn [isDelegated, callable, typeEvent]\r\n}\r\n\r\nfunction addHandler(element, originalTypeEvent, handler, delegationFunction, oneOff) {\r\n\tif (typeof originalTypeEvent !== 'string' || !element) {\r\n\t\treturn\r\n\t}\r\n\r\n\tlet [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\r\n\r\n\t// in case of mouseenter or mouseleave wrap the handler within a function that checks for its DOM position\r\n\t// this prevents the handler from being dispatched the same way as mouseover or mouseout does\r\n\tif (originalTypeEvent in customEvents) {\r\n\t\tconst wrapFunction = fn => {\r\n\t\t\treturn function (event) {\r\n\t\t\t\tif (!event.relatedTarget || (event.relatedTarget !== event.delegateTarget && !event.delegateTarget.contains(event.relatedTarget))) {\r\n\t\t\t\t\treturn fn.call(this, event)\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tcallable = wrapFunction(callable)\r\n\t}\r\n\r\n\tconst events = getElementEvents(element)\r\n\tconst handlers = events[typeEvent] || (events[typeEvent] = {})\r\n\tconst previousFunction = findHandler(handlers, callable, isDelegated ? handler : null)\r\n\r\n\tif (previousFunction) {\r\n\t\tpreviousFunction.oneOff = previousFunction.oneOff && oneOff\r\n\r\n\t\treturn\r\n\t}\r\n\r\n\tconst uid = makeEventUid(callable, originalTypeEvent.replace(namespaceRegex, ''))\r\n\tconst fn = isDelegated ?\r\n\t\tbootstrapDelegationHandler(element, handler, callable) :\r\n\t\tbootstrapHandler(element, callable)\r\n\r\n\tfn.delegationSelector = isDelegated ? handler : null\r\n\tfn.callable = callable\r\n\tfn.oneOff = oneOff\r\n\tfn.uidEvent = uid\r\n\thandlers[uid] = fn\r\n\r\n\telement.addEventListener(typeEvent, fn, isDelegated)\r\n}\r\n\r\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\r\n\tconst fn = findHandler(events[typeEvent], handler, delegationSelector)\r\n\r\n\tif (!fn) {\r\n\t\treturn\r\n\t}\r\n\r\n\telement.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\r\n\tdelete events[typeEvent][fn.uidEvent]\r\n}\r\n\r\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\r\n\tconst storeElementEvent = events[typeEvent] || {}\r\n\r\n\tfor (const [handlerKey, event] of Object.entries(storeElementEvent)) {\r\n\t\tif (handlerKey.includes(namespace)) {\r\n\t\t\tremoveHandler(element, events, typeEvent, event.callable, event.delegationSelector)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction getTypeEvent(event) {\r\n\t// allow to get the native events from namespaced events ('click.bs.button' --> 'click')\r\n\tevent = event.replace(stripNameRegex, '')\r\n\treturn customEvents[event] || event\r\n}\r\n\r\nfunction hydrateObj(obj, meta = {}) {\r\n\tfor (const [key, value] of Object.entries(meta)) {\r\n\t\ttry {\r\n\t\t\tobj[key] = value\r\n\t\t} catch {\r\n\t\t\tObject.defineProperty(obj, key, {\r\n\t\t\t\tconfigurable: true,\r\n\t\t\t\tget() {\r\n\t\t\t\t\treturn value\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n\r\n\treturn obj\r\n}\r\n\r\n/**\r\n * События\r\n * @type {{one(*, *, *, *): void, trigger(*, *, *): (null|*), off(*, *, *, *): void, on(*, *, *, *): void}}\r\n */\r\nconst EventHandler = {\r\n\t/**\r\n\t * Прослушиватель событий (элемент, событие (полный список смотри в константе nativeEvents, источник события или хендлер, функция обратного вызова))\r\n\t * @param element\r\n\t * @param event\r\n\t * @param handler\r\n\t * @param delegationFunction\r\n\t */\r\n\ton(element, event, handler, delegationFunction) {\r\n\t\taddHandler(element, event, handler, delegationFunction, false)\r\n\t},\r\n\r\n\t/**\r\n\t * Прослушиватель событий, но замыкается и больше не повторяется на элементе\r\n\t * @param element\r\n\t * @param event\r\n\t * @param handler\r\n\t * @param delegationFunction\r\n\t */\r\n\tone(element, event, handler, delegationFunction) {\r\n\t\taddHandler(element, event, handler, delegationFunction, true)\r\n\t},\r\n\r\n\t/**\r\n\t * Удаление обработчика\r\n\t * @param element\r\n\t * @param originalTypeEvent\r\n\t * @param handler\r\n\t * @param delegationFunction\r\n\t */\r\n\toff(element, originalTypeEvent, handler, delegationFunction) {\r\n\t\tif (typeof originalTypeEvent !== 'string' || !element) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst [isDelegated, callable, typeEvent] = normalizeParameters(originalTypeEvent, handler, delegationFunction)\r\n\t\tconst inNamespace = typeEvent !== originalTypeEvent\r\n\t\tconst events = getElementEvents(element)\r\n\t\tconst storeElementEvent = events[typeEvent] || {}\r\n\t\tconst isNamespace = originalTypeEvent.startsWith('.')\r\n\r\n\t\tif (typeof callable !== 'undefined') {\r\n\t\t\t// Simplest case: handler is passed, remove that listener ONLY.\r\n\t\t\tif (!Object.keys(storeElementEvent).length) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tremoveHandler(element, events, typeEvent, callable, isDelegated ? handler : null)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (isNamespace) {\r\n\t\t\tfor (const elementEvent of Object.keys(events)) {\r\n\t\t\t\tremoveNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (const [keyHandlers, event] of Object.entries(storeElementEvent)) {\r\n\t\t\tconst handlerKey = keyHandlers.replace(stripUidRegex, '')\r\n\r\n\t\t\tif (!inNamespace || originalTypeEvent.includes(handlerKey)) {\r\n\t\t\t\tremoveHandler(element, events, typeEvent, event.callable, event.delegationSelector)\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t/**\r\n\t * Пользовательские события. Подробнее тут https://learn.javascript.ru/dispatch-events\r\n\t * @param element\r\n\t * @param event\r\n\t * @param args\r\n\t * @returns {*|null}\r\n\t */\r\n\ttrigger(element, event, args) {\r\n\t\tif (typeof event !== 'string' || !element) {\r\n\t\t\treturn null\r\n\t\t}\r\n\r\n\t\tlet bubbles = true;\r\n\t\tlet nativeDispatch = true;\r\n\t\tlet defaultPrevented = false;\r\n\r\n\t\tconst evt = hydrateObj(new Event(event, { bubbles, cancelable: true }), args)\r\n\r\n\t\tif (defaultPrevented) {\r\n\t\t\tevt.preventDefault()\r\n\t\t}\r\n\r\n\t\tif (nativeDispatch) {\r\n\t\t\telement.dispatchEvent(evt)\r\n\t\t}\r\n\r\n\t\treturn evt\r\n\t}\r\n}\r\n\r\nexport default EventHandler\r\n","import EventHandler from \"../utils/js/dom/event\";\r\nimport {isDisabled, isEmptyObj} from \"../utils/js/functions\";\r\nimport Selectors from \"../utils/js/dom/selectors\";\r\n\r\n/**\r\n * Тут собраны вспомогательные скрипты для работы модулей\r\n */\r\n\r\n/**\r\n * Набор svg элементов\r\n * @param name\r\n * @returns {*|{}}\r\n */\r\nconst getSVG = (name) => {\r\n\tconst svg = {\r\n\t\terror: '<svg viewBox=\"0 0 87 87\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><g id=\"ui-success\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"Group-2\" transform=\"translate(2.000000, 2.000000)\"><circle id=\"Oval-2\" stroke=\"rgba(252, 191, 191, .5)\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><circle class=\"ui-error-circle\" stroke=\"#F74444\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><path class=\"ui-error-line1\" d=\"M22.244224,22 L60.4279902,60.1837662\" id=\"Line\" stroke=\"#F74444\" stroke-width=\"3\" stroke-linecap=\"square\"></path><path class=\"ui-error-line2\" d=\"M60.755776,21 L23.244224,59.8443492\" id=\"Line\" stroke=\"#F74444\" stroke-width=\"3\" stroke-linecap=\"square\"></path></g></g></svg>',\r\n\t\tsuccess: '<svg viewBox=\"0 0 87 87\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><g id=\"ui-error\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"Group-3\" transform=\"translate(2.000000, 2.000000)\"><circle id=\"Oval-2\" stroke=\"rgba(117, 183, 152, 0.4)\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><circle class=\"ui-success-circle\" id=\"Oval-2\" stroke=\"#A5DC86\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><polyline class=\"ui-success-path\" id=\"Path-2\" stroke=\"#A5DC86\" stroke-width=\"4\" points=\"19 38.8036813 31.1020744 54.8046875 63.299221 28\"></polyline></g></g></svg>',\r\n\t\twaiting: '<svg viewBox=\"0 0 87 87\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><g id=\"ui-waiting\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\"><g id=\"Group-3\" transform=\"translate(2.000000, 2.000000)\"><circle id=\"Oval-2\" stroke=\"rgba(255, 218, 106, 0.4)\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><circle class=\"ui-waiting-circle\" id=\"Oval-2\" stroke=\"#ffda6a\" stroke-width=\"4\" cx=\"41.5\" cy=\"41.5\" r=\"41.5\"></circle><path class=\"ui-waiting-line1\" d=\"M43 63C54.598 63 64 53.598 64 42C64 30.402 54.598 21 43 21C31.402 21 22 30.402 22 42C22 53.598 31.402 63 43 63Z\" stroke-width=\"3\" stroke=\"#ffda6a\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><path class=\"ui-waiting-line2\" d=\"M40.6667 32.6641V44.3307H52.3334\" stroke=\"#ffda6a\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g></g></svg>',\r\n\t\tdots: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"currentColor\" class=\"bi bi-three-dots-vertical\" viewBox=\"0 0 16 16\"><path d=\"M9.5 13a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm0-5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z\"/></svg>',\r\n\t\tcross: '<svg version=\"1.1\" id=\"Capa_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\" viewBox=\"0 0 224.512 224.512\" xml:space=\"preserve\"><g><polygon points=\"224.507,6.997 217.521,0 112.256,105.258 6.998,0 0.005,6.997 105.263,112.254 0.005,217.512 6.998,224.512 112.256,119.24 217.521,224.512 224.507,217.512 119.249,112.254 \"/></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g><g></g></svg>'\r\n\t};\r\n\r\n\treturn svg[name] ?? {};\r\n}\r\n\r\n/**\r\n * Вешаем событие \"Закрыть\" на все модалки, сайдбары и т.п.\r\n * @param module\r\n * @param method\r\n */\r\nconst dismissTrigger = (module, method = 'hide') => {\r\n\tconst clickEvent = `click.dismiss.${module.EVENT_KEY}`\r\n\tconst name = module.NAME;\r\n\r\n\tEventHandler.on(document, clickEvent, `[data-vg-dismiss=\"${name}\"]`, function (event) {\r\n\t\tif (['A', 'AREA'].includes(this.tagName)) {\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\r\n\t\tif (isDisabled(this)) return;\r\n\r\n\t\tconst target = Selectors.getSelectorFromElement(this) || this.closest(`.vg-${name}`);\r\n\t\tconst instance = module.getOrCreateInstance(target);\r\n\r\n\t\tinstance[method]();\r\n\t})\r\n}\r\n\r\n/**\r\n * AJAX REQUEST\r\n * @type {{post: ajax.post, get: ajax.get, x: ((function(): (XMLHttpRequest))|*), send: ajax.send}}\r\n */\r\nconst Ajax = {\r\n\tx: function () {\r\n\t\tif (typeof XMLHttpRequest !== 'undefined') {\r\n\t\t\treturn new XMLHttpRequest();\r\n\t\t}\r\n\t\tlet versions = [\r\n\t\t\t\"MSXML2.XmlHttp.6.0\",\r\n\t\t\t\"MSXML2.XmlHttp.5.0\",\r\n\t\t\t\"MSXML2.XmlHttp.4.0\",\r\n\t\t\t\"MSXML2.XmlHttp.3.0\",\r\n\t\t\t\"MSXML2.XmlHttp.2.0\",\r\n\t\t\t\"Microsoft.XmlHttp\"\r\n\t\t];\r\n\r\n\t\tlet xhr;\r\n\t\tfor (let i = 0; i < versions.length; i++) {\r\n\t\t\ttry {\r\n\t\t\t\txhr = new ActiveXObject(versions[i]);\r\n\t\t\t\tbreak;\r\n\t\t\t} catch (e) {}\r\n\t\t}\r\n\r\n\t\treturn xhr;\r\n\t},\r\n\r\n\tsend: function (url, callback, method, data, async) {\r\n\t\tif (async === undefined) {\r\n\t\t\tasync = true;\r\n\t\t}\r\n\t\tlet x = Ajax.x();\r\n\t\tx.open(method, url, async);\r\n\t\tx.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n\t\tx.onreadystatechange = function () {\r\n\t\t\tif (x.readyState === 4) {\r\n\t\t\t\tswitch (x.status) {\r\n\t\t\t\t\tcase 200:\r\n\t\t\t\t\t\tcallback('success', {text: x.statusText, response: x.responseText, code: x.status})\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\tdefault:\r\n\t\t\t\t\t\tcallback('error', {text: x.statusText, response: x.responseText, code: x.status})\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\tx.send(data)\r\n\t},\r\n\r\n\tget: function (url, data, callback, async) {\r\n\t\tlet query = [];\r\n\r\n\t\tif (!isEmptyObj(data)) {\r\n\t\t\tfor (let key of data) {\r\n\t\t\t\tquery.push(encodeURIComponent(key[0]) + '=' + encodeURIComponent(key[1]));\r\n\t\t\t}\r\n\t\t}\r\n\t\tAjax.send(url + (query.length ? '?' + query.join('&') : ''), callback, 'GET', null, async)\r\n\t},\r\n\r\n\tpost: function (url, data, callback, async) {\r\n\t\tAjax.send(url, callback, 'POST', data, async)\r\n\t}\r\n};\r\n\r\nexport {\r\n\tdismissTrigger, Ajax, getSVG\r\n}","import {isElement, mergeDeepObject} from \"../functions\";\r\nimport EventHandler from \"../dom/event\";\r\n\r\n/**\r\n * Классы для анимаций смотрим здесь\r\n * https://animate.style/\r\n *\r\n * Работает с модулями у которых есть события show, hide, hidden\r\n */\r\nclass Animation {\r\n\tconstructor(element, key, params = {}) {\r\n\t\tthis._params = mergeDeepObject({\r\n\t\t\tenable: false,\r\n\t\t\tin: 'animate__backInUp',\r\n\t\t\tout: 'animate__backOutUp',\r\n\t\t\tdelay: 0,\r\n\t\t}, params);\r\n\r\n\t\tthis.classes = {\r\n\t\t\tanimated: 'animate__animated'\r\n\t\t}\r\n\r\n\t\tif (!this._params.enable) return;\r\n\t\tif (!isElement(element)) return;\r\n\r\n\t\tthis._element = element;\r\n\t\tthis._name_key = key;\r\n\r\n\t\tif (!this._element.classList.contains(this.classes.animated)) {\r\n\t\t\tthis._element.classList.add(this.classes.animated);\r\n\t\t}\r\n\r\n\t\tthis._triggers();\r\n\t}\r\n\r\n\t_triggers() {\r\n\t\tEventHandler.on(this._element, this._name_key + '.show', () => {\r\n\t\t\tthis._element.classList.remove(this._params.out);\r\n\t\t\tthis._element.classList.add(this._params.in);\r\n\t\t});\r\n\r\n\t\tEventHandler.on(this._element, this._name_key + '.hide', () => {\r\n\t\t\tthis._element.classList.remove(this._params.in);\r\n\t\t\tthis._element.classList.add(this._params.out);\r\n\t\t});\r\n\r\n\t\tEventHandler.on(this._element, this._name_key + '.hidden', () => {\r\n\t\t\tthis._element.classList.remove(this._params.out);\r\n\t\t});\r\n\t}\r\n}\r\n\r\nexport default Animation;","import {execute, executeAfterTransition, isEmptyObj} from \"../utils/js/functions\";\r\nimport Selectors from \"../utils/js/dom/selectors\";\r\nimport Data from \"../utils/js/dom/data\";\r\nimport Params from \"../utils/js/components/params\";\r\nimport EventHandler from \"../utils/js/dom/event\";\r\nimport {Ajax, getSVG} from \"./module-fn\";\r\nimport Animation from \"../utils/js/components/animation\";\r\n\r\nclass BaseModule {\r\n\tconstructor(element) {\r\n\t\tif (!element) return\r\n\r\n\t\tthis._element = Selectors.find(element);\r\n\t\tif (!this._element){\r\n\t\t\tthrow new Error('Товарищ! Первый параметр не должен быть пустым!');\r\n\t\t}\r\n\r\n\t\tthis._params = {};\r\n\t\tData.set(this._element, this.constructor.NAME_KEY, this);\r\n\t}\r\n\r\n\t_getParams(element, params) {\r\n\t\treturn new Params(params, element).get();\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tData.remove(this._element, this.constructor.NAME_KEY);\r\n\t\tEventHandler.off(this._element, this.constructor.EVENT_KEY)\r\n\r\n\t\tfor (const propertyName of Object.getOwnPropertyNames(this)) {\r\n\t\t\tthis[propertyName] = null\r\n\t\t}\r\n\t}\r\n\r\n\t_route(callback) {\r\n\t\tconst _this = this;\r\n\t\tlet $content = null;\r\n\r\n\t\tconst setData = (data) => {\r\n\t\t\tif ($content) $content.innerHTML = data;\r\n\t\t};\r\n\r\n\t\tif (!_this._params.hasOwnProperty('ajax')) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!_this._params.ajax.route) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!'method' in _this._params.ajax) {\r\n\t\t\t_this._params.ajax.method = 'get';\r\n\t\t}\r\n\r\n\t\tif ('target' in _this._params.ajax && _this._params.ajax.target) {\r\n\t\t\t$content = Selectors.find(_this._params.ajax.target);\r\n\t\t}\r\n\r\n\t\tif ('loader' in _this._params.ajax && _this._params.ajax.loader) {\r\n\t\t\tsetData('<div class=\"vg-loader\"></div>');\r\n\t\t}\r\n\r\n\t\tAjax[_this._params.ajax.method](_this._params.ajax.route, _this._params.ajax.data || {}, function (status, data) {\r\n\t\t\tsetData(data.response);\r\n\t\t\texecute(callback, [status, data]);\r\n\t\t});\r\n\t}\r\n\r\n\t_dismissElement() {\r\n\t\tlet cross = getSVG('cross'),\r\n\t\t\tbutton = this._element.querySelector('.vg-btn-close');\r\n\r\n\t\tif (button) {\r\n\t\t\tlet svg = button.querySelector('svg');\r\n\t\t\tif (!svg) button.insertAdjacentHTML('beforeend', cross);\r\n\t\t}\r\n\t}\r\n\r\n\t_queueCallback(callback, element, isAnimated = true, timeOutMs) {\r\n\t\texecuteAfterTransition(callback, element, isAnimated, timeOutMs);\r\n\t}\r\n\r\n\t_animation(element, key, params = {}) {\r\n\t\tnew Animation(element, key, params);\r\n\t}\r\n\r\n\tstatic getInstance(element) {\r\n\t\treturn Data.get(Selectors.find(element), this.NAME_KEY)\r\n\t}\r\n\r\n\tstatic getOrCreateInstance(element, params = {}) {\r\n\t\treturn this.getInstance(element) || new this(element, !isEmptyObj(params) ? params : {})\r\n\t}\r\n\r\n\tstatic get DATA_KEY() {\r\n\t\treturn `vg.${this.NAME}`\r\n\t}\r\n\r\n\tstatic get EVENT_KEY() {\r\n\t\treturn `.${this.DATA_KEY}`\r\n\t}\r\n}\r\n\r\nexport default BaseModule;","import {Manipulator} from \"../dom/manipulator\";\r\n\r\n/**\r\n * Класс Overflow\r\n * Запрещает скроллинг и убирает его, компенсируя отступом\r\n */\r\n\r\nclass Overflow {\r\n\tstatic append() {\r\n\t\tdocument.body.style.paddingRight = getWidth() + 'px';\r\n\t\tdocument.body.style.overflow = 'hidden';\r\n\r\n\t\tfunction getWidth() {\r\n\t\t\tconst documentWidth = document.documentElement.clientWidth\r\n\t\t\treturn Math.abs(window.innerWidth - documentWidth)\r\n\t\t}\r\n\t}\r\n\r\n\tstatic destroy() {\r\n\t\tdocument.body.style.overflow = '';\r\n\t\tdocument.body.style.paddingRight = '';\r\n\r\n\t\tlet styles = Manipulator.get(document.body, 'style');\r\n\t\tif (!styles) Manipulator.remove(document.body, 'style');\r\n\t}\r\n}\r\n\r\nexport default Overflow;","import {execute} from \"../functions\";\r\nimport Selectors from \"../dom/selectors\";\r\nimport EventHandler from \"../dom/event\";\r\nimport Overflow from \"./overflow\";\r\n\r\nconst NAME = 'backdrop';\r\nconst CLASS_NAME = 'vg-backdrop';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst EVENT_MOUSEDOWN = `mousedown.vg.${NAME}`;\r\n\r\nlet backdrop_delay = 500;\r\n\r\nclass Backdrop {\r\n\tstatic show(callback) {\r\n\t\tBackdrop._append()\r\n\t\texecute(callback);\r\n\t}\r\n\r\n\tstatic hide(callback) {\r\n\t\tBackdrop._destroy();\r\n\t\texecute(callback);\r\n\t}\r\n\r\n\tstatic _append() {\r\n\t\tif (Selectors.find('.' + CLASS_NAME)) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tlet backdrop = document.createElement('div');\r\n\t\tbackdrop.classList.add(CLASS_NAME);\r\n\r\n\t\tdocument.body.append(backdrop);\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tbackdrop.classList.add(CLASS_NAME_FADE)\r\n\t\t}, 50);\r\n\r\n\t\tEventHandler.on(backdrop, EVENT_MOUSEDOWN, () => {\r\n\t\t\tBackdrop.hide()\r\n\t\t\tOverflow.destroy();\r\n\t\t});\r\n\t}\r\n\r\n\tstatic _destroy() {\r\n\t\tlet element = Selectors.find('.' + CLASS_NAME);\r\n\t\tif (!element) return;\r\n\r\n\t\telement.classList.remove(CLASS_NAME_FADE);\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\telement.remove();\r\n\t\t}, backdrop_delay);\r\n\t}\r\n}\r\n\r\nexport default Backdrop;","import BaseModule from \"../../base-module\";\r\nimport {isDisabled, isVisible, mergeDeepObject} from \"../../../utils/js/functions\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {dismissTrigger} from \"../../module-fn\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport Backdrop from \"../../../utils/js/components/backdrop\";\r\nimport Overflow from \"../../../utils/js/components/overflow\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'sidebar';\r\nconst NAME_KEY = 'vg.sidebar';\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"sidebar\"]';\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_OPEN = 'vg-sidebar-open';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\nconst EVENT_KEY_LOADED = `${NAME_KEY}.loaded`;\r\n\r\nconst EVENT_KEY_KEYDOWN_DISMISS = `keydown.dismiss.${NAME_KEY}`;\r\nconst EVENT_KEY_HIDE_PREVENTED = `hidePrevented.${NAME_KEY}`;\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nclass VGSidebar extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tbackdrop: true,\r\n\t\t\toverflow: true,\r\n\t\t\tkeyboard: true,\r\n\t\t\tanimation: {\r\n\t\t\t\tenable: false,\r\n\t\t\t\tin: 'animate__rollIn',\r\n\t\t\t\tout: 'animate__rollOut',\r\n\t\t\t\tdelay: 800,\r\n\t\t\t},\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\tloader: false,\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._addEventListeners();\r\n\t\tthis._dismissElement();\r\n\r\n\t\tthis._params.animation.delay = !this._params.animation.enable ? 0 : this._params.animation.delay;\r\n\t\tthis._animation(this._element, VGSidebar.NAME_KEY, this._params.animation);\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY\r\n\t}\r\n\r\n\ttoggle(relatedTarget) {\r\n\t\treturn !this._isShown() ? this.show(relatedTarget) : this.hide();\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\t\tconst _this = this;\r\n\t\tif (isDisabled(_this._element)) return;\r\n\r\n\t\t_this._params = _this._getParams(relatedTarget, _this._params);\r\n\t\t_this._route(function (status, data) {\r\n\t\t\tEventHandler.trigger(_this._element, EVENT_KEY_LOADED, {stats: status, data: data});\r\n\t\t});\r\n\r\n\t\tconst showEvent = EventHandler.trigger(_this._element, EVENT_KEY_SHOW, { relatedTarget })\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tif (_this._params.backdrop) {\r\n\t\t\tBackdrop.show();\r\n\t\t}\r\n\r\n\t\tif (_this._params.overflow) {\r\n\t\t\tOverflow.append();\r\n\t\t}\r\n\r\n\t\t_this._element.classList.add(CLASS_NAME_SHOW);\r\n\t\tdocument.body.classList.add(CLASS_NAME_OPEN);\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tEventHandler.on(Selectors.find('.vg-backdrop'), 'mousedown.vg.backdrop', function () {\r\n\t\t\t\t_this.hide();\r\n\t\t\t});\r\n\r\n\t\t\tEventHandler.trigger(_this._element, EVENT_KEY_SHOWN, { relatedTarget });\r\n\t\t}\r\n\t\t_this._queueCallback(completeCallBack, _this._element, true, 50)\r\n\t}\r\n\r\n\thide() {\r\n\t\tconst _this = this;\r\n\t\tif (isDisabled(_this._element)) return;\r\n\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE);\r\n\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\t_this._element.setAttribute('aria-expanded', false);\r\n\t\t\t_this._element.classList.remove(CLASS_NAME_SHOW);\r\n\r\n\t\t\tconst completeCallback = () => {\r\n\t\t\t\tif (_this._params.backdrop) {\r\n\t\t\t\t\tBackdrop.hide(function () {\r\n\t\t\t\t\t\tif (_this._params.overflow) {\r\n\t\t\t\t\t\t\tOverflow.destroy();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (_this._params.overflow) {\r\n\t\t\t\t\tOverflow.destroy();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdocument.body.classList.remove(CLASS_NAME_OPEN);\r\n\t\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDDEN);\r\n\t\t\t}\r\n\t\t\tthis._queueCallback(completeCallback, this._element, true);\r\n\t\t}, this._params.animation.delay);\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t_isShown() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\t_addEventListeners() {\r\n\t\tEventHandler.on(document, EVENT_KEY_KEYDOWN_DISMISS, event => {\r\n\t\t\tif (event.key !== 'Escape') return;\r\n\r\n\t\t\tif (this._params.keyboard) {\r\n\t\t\t\tthis.hide();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDE_PREVENTED)\r\n\t\t});\r\n\t}\r\n}\r\n\r\ndismissTrigger(VGSidebar);\r\n\r\n/**\r\n * Data API implementation\r\n */\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\tconst target = Selectors.getElementFromSelector(this);\r\n\r\n\tif (['A', 'AREA'].includes(this.tagName)) {\r\n\t\tevent.preventDefault()\r\n\t}\r\n\r\n\tif (isDisabled(this)) {\r\n\t\treturn\r\n\t}\r\n\r\n\tthis.setAttribute('aria-expanded', true);\r\n\tEventHandler.one(target, EVENT_KEY_HIDDEN, () => {\r\n\t\t//if (isVisible(this)) this.focus();\r\n\t\tthis.setAttribute('aria-expanded', false);\r\n\t})\r\n\r\n\tconst alreadyOpen = Selectors.find('.vg-sidebar.show')\r\n\tif (alreadyOpen && alreadyOpen !== target) {\r\n\t\tVGSidebar.getInstance(alreadyOpen).hide()\r\n\t}\r\n\r\n\tconst data = VGSidebar.getOrCreateInstance(target)\r\n\tdata.toggle(this);\r\n});\r\n\r\nexport default VGSidebar;\r\n","import BaseModule from \"../../base-module\";\r\nimport {mergeDeepObject, reflow} from \"../../../utils/js/functions\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'collapse';\r\nconst NAME_KEY = 'vg.collapse';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_COLLAPSE = 'vg-collapse';\r\nconst CLASS_NAME_COLLAPSING = 'vg-collapsing';\r\nconst CLASS_NAME_COLLAPSED = 'vg-collapsed';\r\nconst CLASS_NAME_DEEPER_CHILDREN = `:scope .${CLASS_NAME_COLLAPSE} .${CLASS_NAME_COLLAPSE}`;\r\n\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"collapse\"]';\r\nconst SELECTOR_ACTIVES = '.collapse.show, .collapse.collapsing';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\n\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nclass VGCollapse extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\ttoggle: true,\r\n\t\t\tparent: null,\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\tloader: false,\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._isTransitioning = false\r\n\t\tthis._triggerArray = []\r\n\r\n\t\tconst toggleList = Selectors.findAll(SELECTOR_DATA_TOGGLE);\r\n\r\n\t\tfor (const elem of toggleList) {\r\n\t\t\tconst selector = Selectors.getSelectorFromElement(elem);\r\n\t\t\tconst filterElement = Selectors.findAll(selector).filter(foundElement => foundElement === this._element);\r\n\r\n\t\t\tif (selector !== null && filterElement.length) {\r\n\t\t\t\tthis._triggerArray.push(elem)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._initializeChildren();\r\n\r\n\t\tif (!this._params.parent) {\r\n\t\t\tthis._addAriaAndCollapsedClass(this._triggerArray, this._isShown());\r\n\t\t}\r\n\r\n\t\tif (this._params.toggle) {\r\n\t\t\tthis.toggle();\r\n\t\t}\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY\r\n\t}\r\n\r\n\ttoggle(relatedTarget) {\r\n\t\treturn !this._isShown() ? this.show(relatedTarget) : this.hide();\r\n\t}\r\n\r\n\tshow() {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (_this._isTransitioning || _this._isShown()) return;\r\n\r\n\t\tlet activeChildren = [];\r\n\r\n\t\tif (_this._params.parent) {\r\n\t\t\tactiveChildren = this._getFirstLevelChildren(SELECTOR_ACTIVES)\r\n\t\t\t\t.filter(element => element !== this._element)\r\n\t\t\t\t.map(element => VGCollapse.getOrCreateInstance(element, { toggle: false }));\r\n\t\t}\r\n\r\n\t\tif (activeChildren.length && activeChildren[0]._isTransitioning) return;\r\n\r\n\t\tconst startEvent = EventHandler.trigger(_this._element, EVENT_KEY_SHOW);\r\n\t\tif (startEvent.defaultPrevented) return;\r\n\r\n\t\tfor (const activeInstance of activeChildren) {\r\n\t\t\tactiveInstance.hide();\r\n\t\t}\r\n\r\n\t\t_this._element.classList.remove(CLASS_NAME_COLLAPSE)\r\n\t\t_this._element.classList.add(CLASS_NAME_COLLAPSING)\r\n\r\n\t\t_this._element.style.height = 0;\r\n\r\n\t\t_this._addAriaAndCollapsedClass(_this._triggerArray, true);\r\n\t\t_this._isTransitioning = true;\r\n\r\n\t\t_this._route();\r\n\r\n\t\tconst complete = () => {\r\n\t\t\t_this._isTransitioning = false;\r\n\r\n\t\t\t_this._element.classList.remove(CLASS_NAME_COLLAPSING);\r\n\t\t\t_this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\r\n\r\n\t\t\t_this._element.style.height = '';\r\n\t\t\tEventHandler.trigger(_this._element, EVENT_KEY_SHOWN);\r\n\t\t}\r\n\r\n\t\t_this._queueCallback(complete, _this._element, true);\r\n\r\n\t\tconst scrollSize = `scrollHeight`;\r\n\t\t_this._element.style.height = `${_this._element[scrollSize]}px`;\r\n\t}\r\n\r\n\thide() {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (_this._isTransitioning || !_this._isShown()) return;\r\n\r\n\t\tconst startEvent = EventHandler.trigger(_this._element, EVENT_KEY_HIDE)\r\n\t\tif (startEvent.defaultPrevented) return;\r\n\r\n\t\t_this._element.style.height = `${this._element.getBoundingClientRect().height}px`;\r\n\t\treflow(_this._element);\r\n\r\n\t\t_this._element.classList.add(CLASS_NAME_COLLAPSING);\r\n\t\t_this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);\r\n\r\n\t\tfor (const trigger of _this._triggerArray) {\r\n\t\t\tconst element = Selectors.getElementFromSelector(trigger);\r\n\r\n\t\t\tif (element && !_this._isShown(element)) {\r\n\t\t\t\t_this._addAriaAndCollapsedClass([trigger], false);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t_this._isTransitioning = true\r\n\r\n\t\tconst complete = () => {\r\n\t\t\t_this._isTransitioning = false;\r\n\t\t\t_this._element.classList.remove(CLASS_NAME_COLLAPSING);\r\n\t\t\t_this._element.classList.add(CLASS_NAME_COLLAPSE);\r\n\t\t\tEventHandler.trigger(_this._element, EVENT_KEY_HIDDEN);\r\n\t\t}\r\n\r\n\t\t_this._element.style.height = '';\r\n\t\t_this._queueCallback(complete, _this._element, true);\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t_isShown(element = this._element) {\r\n\t\treturn element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\t_addAriaAndCollapsedClass(triggerArray, isOpen) {\r\n\t\tif (!triggerArray.length) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tfor (const element of triggerArray) {\r\n\t\t\tthis._changeStateButton(element, isOpen);\r\n\t\t}\r\n\t}\r\n\r\n\t_initializeChildren() {\r\n\t\tif (!this._params.parent) return;\r\n\r\n\t\tconst children = this._getFirstLevelChildren(SELECTOR_DATA_TOGGLE);\r\n\r\n\t\tfor (const element of children) {\r\n\t\t\tconst selected = Selectors.getElementFromSelector(element)\r\n\r\n\t\t\tif (selected) {\r\n\t\t\t\tthis._addAriaAndCollapsedClass([element], this._isShown(selected))\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t_getFirstLevelChildren(selector) {\r\n\t\tconst children = Selectors.find(CLASS_NAME_DEEPER_CHILDREN, this._params.parent);\r\n\t\treturn Selectors.find(selector, this._params.parent).filter(element => !children.includes(element));\r\n\t}\r\n\r\n\t_changeStateButton(element, isOpen) {\r\n\t\telement.classList.toggle(CLASS_NAME_COLLAPSED, !isOpen);\r\n\t\telement.setAttribute('aria-expanded', isOpen);\r\n\t\telement.innerHTML = Manipulator.get(element, `data-${isOpen ? 'hide' : 'show'}-text`) || element.innerHTML;\r\n\t}\r\n}\r\n\r\n/**\r\n * Data API implementation\r\n */\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\tif (event.target.tagName === 'A' || (event.delegateTarget && event.delegateTarget.tagName === 'A')) {\r\n\t\tevent.preventDefault()\r\n\t}\r\n\r\n\tSelectors.getMultipleElementsFromSelector(this).forEach(function (element) {\r\n\t\tVGCollapse.getOrCreateInstance(element, {toggle: false}).toggle();\r\n\t});\r\n})\r\n\r\nexport default VGCollapse;","/**\r\n * Класс Responsive, работает по таким же медиа точкам, что и bootstrap\r\n * и определяет на тач устройства.\r\n */\r\n\r\nclass Responsive {\r\n\tconstructor() {\r\n\t\tthis.breakpoints = {\r\n\t\t\txs: 0,\r\n\t\t\tsm: 576,\r\n\t\t\tmd: 768,\r\n\t\t\tlg: 992,\r\n\t\t\txl: 1200,\r\n\t\t\txxl: 1400,\r\n\t\t\txxxl: 1600,\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Если наша ширина экрана совпадает с диапазоном который указан в модуле выдаем true, иначе false\r\n\t * @param module\r\n\t * @returns {boolean}\r\n\t */\r\n\tstatic check(module) {\r\n\t\tlet instance = new this ;\r\n\t\treturn instance.define(module);\r\n\t}\r\n\r\n\t/**\r\n\t * Проверяет на тач устройства. TODO не совсем правильно, надо сделать по-другому\r\n\t * @returns {boolean}\r\n\t */\r\n\tstatic checkMobileOrTablet() {\r\n\t\tlet check = false;\r\n\t\t(function(a) {\r\n\t\t\tif (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.slice(0,4))){\r\n\t\t\t\tcheck = true;\r\n\t\t\t}\r\n\t\t})(navigator.userAgent||navigator.vendor||window.opera);\r\n\r\n\t\treturn check;\r\n\t}\r\n\r\n\tdefine(module) {\r\n\t\tlet windowWidth = window.innerWidth,\r\n\t\t\tresponsive_size = this._checkResponsiveClass(module),\r\n\t\t\tbreakpoints = this.breakpoints,\r\n\t\t\tpoint = Object.keys(breakpoints).find(key => breakpoints[key] === responsive_size);\r\n\r\n\t\tlet keys = Object.keys(breakpoints),\r\n\t\t\tloc = keys.indexOf(point);\r\n\r\n\t\treturn windowWidth >= breakpoints[keys[loc + 1]];\r\n\t}\r\n\r\n\t_checkResponsiveClass(module) {\r\n\t\tlet element = module._element,\r\n\t\t\tparams = module._params,\r\n\t\t\tcurrent_responsive_size = 0;\r\n\r\n\t\tif (element.classList.contains(params.classes.XXXL)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.xxxl;\r\n\t\t} else if (element.classList.contains(params.classes.XXL)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.xxl;\r\n\t\t} else if (element.classList.contains(params.classes.XL)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.xl;\r\n\t\t} else if (element.classList.contains(params.classes.LG)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.lg;\r\n\t\t} else if (element.classList.contains(params.classes.MD)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.md;\r\n\t\t} else if (element.classList.contains(params.classes.SM)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.sm;\r\n\t\t} else if (element.classList.contains(params.classes.XS)) {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.xs;\r\n\t\t} else {\r\n\t\t\tcurrent_responsive_size = this.breakpoints.xs;\r\n\t\t}\r\n\r\n\t\treturn current_responsive_size\r\n\t}\r\n}\r\n\r\nexport default Responsive;","import BaseModule from \"../../base-module\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport Responsive from \"../../../utils/js/components/responsive\";\r\nimport {getSVG} from \"../../module-fn\";\r\nimport {execute, isDisabled, isVisible, mergeDeepObject, noop, normalizeData} from \"../../../utils/js/functions\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'nav';\r\nconst NAME_KEY = 'vg.nav';\r\n\r\n/**\r\n * Constants Classes\r\n */\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_ACTIVE = 'active';\r\nconst SELECTOR_DATA_TOGGLE = '.vg-nav a';\r\n\r\n/**\r\n * Constants Events\r\n */\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\n\r\nconst EVENT_MOUSEOVER_DATA_API = `mouseover.${NAME_KEY}.data.api`;\r\nconst EVENT_MOUSEOUT_DATA_API = `mouseout.${NAME_KEY}.data.api`;\r\nconst EVENT_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\nconst EVENT_KEYUP_DATA_API = `keyup.${NAME_KEY}.data.api`;\r\nconst EVENT_RESIZE_DATA_API = `resize.${NAME_KEY}.data.api`;\r\n\r\nclass VGNav extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tbreakpoint: false,\r\n\t\t\tplacement: 'horizontal',\r\n\t\t\tclasses: {\r\n\t\t\t\thamburgerActive: 'vg-nav-hamburger-active',\r\n\t\t\t\thamburgerAlways: 'vg-nav-hamburger-always',\r\n\t\t\t\thamburger: 'vg-nav-hamburger',\r\n\t\t\t\tcontainer: 'vg-nav-container',\r\n\t\t\t\twrapper: 'vg-nav-wrapper',\r\n\t\t\t\tactive: 'vg-nav-active',\r\n\t\t\t\texpand: 'vg-nav-expand',\r\n\t\t\t\tcloned: 'vg-nav-cloned',\r\n\t\t\t\thover: 'vg-nav-hover',\r\n\t\t\t\tflip: 'vg-nav-flip',\r\n\t\t\t\tXXXL: 'vg-nav-xxxl',\r\n\t\t\t\tXXL: 'vg-nav-xxl',\r\n\t\t\t\tXL: 'vg-nav-xl',\r\n\t\t\t\tLG: 'vg-nav-lg',\r\n\t\t\t\tMD: 'vg-nav-md',\r\n\t\t\t\tSM: 'vg-nav-sm',\r\n\t\t\t\tXS: 'vg-nav-xs'\r\n\t\t\t},\r\n\t\t\texpand: true,\r\n\t\t\thover: false,\r\n\t\t\tposition: true,\r\n\t\t\tcollapse: true,\r\n\t\t\ttoggle: '<span class=\"default\"></span>',\r\n\t\t\thamburger: {\r\n\t\t\t\tenable: true,\r\n\t\t\t\talways: false,\r\n\t\t\t\ttitle: '',\r\n\t\t\t\tbody: null\r\n\t\t\t},\r\n\t\t\tcallback: noop,\r\n\t\t\tanimation: true,\r\n\t\t\ttimeoutAnimation: 300,\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get'\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._navigation = null;\r\n\t\tthis.navigation = '.' + this._params.classes.wrapper;\r\n\r\n\t\tthis.movedLinks = [];\r\n\t\tthis.$links = Selectors.findAll('.' + this._params.classes.wrapper + ' > li', this.navigation)\r\n\r\n\t\tif (this._params.animation === false) {\r\n\t\t\tthis._params.timeoutAnimation = 10\r\n\t\t}\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\tget navigation() {\r\n\t\treturn this._navigation;\r\n\t}\r\n\r\n\tset navigation(el) {\r\n\t\tlet elm = Selectors.find(el, this._element);\r\n\t\tif (!elm) return;\r\n\t\tthis._navigation = elm;\r\n\t}\r\n\r\n\tbuild() {\r\n\t\tif (!this.navigation) return;\r\n\r\n\t\tlet params = this._params;\r\n\r\n\t\t// Вешаем основные классы\r\n\t\tthis._element.classList.add(params.classes.container);\r\n\t\tthis._element.classList.add('vg-nav-' + params.placement);\r\n\r\n\t\t// Если нужно оставить список меню или установить медиа точку\r\n\t\tif (!params.breakpoint) {\r\n\t\t\tparams.expand = false;\r\n\t\t}\r\n\r\n\t\tif (!params.hamburger.always) {\r\n\t\t\tif (!params.breakpoint || !params.expand) {\r\n\t\t\t\tthis._element.classList.add(params.classes.expand);\r\n\t\t\t} else if (params.breakpoint !== false) {\r\n\t\t\t\tthis._element.classList.add('vg-nav-' + params.breakpoint);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis._element.classList.add(params.classes.hamburgerAlways);\r\n\t\t}\r\n\r\n\t\t// Меню срабатывает при наведении, если это не мобильное устройство\r\n\t\tif (params.hover) {\r\n\t\t\tthis._element.classList.add(params.classes.hover);\r\n\r\n\t\t\tif (Responsive.checkMobileOrTablet()) {\r\n\t\t\t\tthis._element.classList.remove(params.classes.hover);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Устанавливаем гамбургер, если его нет в разметке\r\n\t\tif (params.expand && !params.hamburger.body) {\r\n\t\t\tlet isHamburger = Selectors.find('.' + params.classes.hamburger, this._element);\r\n\r\n\t\t\tif (isHamburger === null) {\r\n\t\t\t\tlet mTitle = '',\r\n\t\t\t\t\thamburger = '<span class=\"' + params.classes.hamburger + '--lines\"><span></span><span></span><span></span></span>';\r\n\r\n\t\t\t\tif (params.hamburger.title) {\r\n\t\t\t\t\tmTitle = '<span class=\"' + params.classes.hamburger + '--title\">'+ params.hamburger.title +'</span>';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (params.hamburger.body !== null) {\r\n\t\t\t\t\thamburger = params.hamburger.body;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis._element.insertAdjacentHTML('afterbegin','<a href=\"#sidebar-nav\" class=\"' + params.classes.hamburger + '\" data-vg-toggle=\"sidebar\">' + mTitle + hamburger +'</a>');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Устанавливаем указатель переключателя\r\n\t\tif (params.toggle) {\r\n\t\t\tlet $dropdown_a = [...Selectors.findAll('.dropdown-mega > a, .dropdown > a', this._element)],\r\n\t\t\t\ttoggle = '<span class=\"toggle\">' + params.toggle + '</span>';\r\n\r\n\t\t\tif ($dropdown_a.length) {\r\n\t\t\t\t$dropdown_a.forEach(function (elem) {\r\n\t\t\t\t\tif (!elem.querySelector('.toggle') && !elem.closest('.dots')) {\r\n\t\t\t\t\t\telem.setAttribute('aria-expanded', 'false')\r\n\t\t\t\t\t\telem.insertAdjacentHTML('beforeend', toggle)\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (params.collapse && Responsive.check(this) && params.placement !== 'vertical') {\r\n\t\t\tsetCollapse(this);\r\n\t\t}\r\n\r\n\t\tif ('afterInit' in this._params.callback) {\r\n\t\t\texecute(this._params.callback.afterInit, [this]);\r\n\t\t}\r\n\r\n\t\t/**\r\n\t\t * Функция сворачивания\r\n\t\t * TODO Придумать что то с мега меню, которое уходит в подменю\r\n\t\t * TODO Так же есть косяки при ресайзе\r\n\t\t */\r\n\t\tfunction setCollapse(_this) {\r\n\t\t\tlet width_navigation_responsive = _this.navigation.clientWidth,\r\n\t\t\t\twidth_all_links_responsive = 0,\r\n\t\t\t\t$dots = Selectors.find('.dots', _this.navigation),\r\n\t\t\t\t_dots = getSVG('dots');\r\n\r\n\t\t\tif (_this.$links.length) {\r\n\t\t\t\tif ($dots) {\r\n\t\t\t\t\twidth_all_links_responsive = $dots.clientWidth\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlet $a = Selectors.find('a', _this.$links[0]),\r\n\t\t\t\t\t\t$linkStyle = getComputedStyle($a),\r\n\t\t\t\t\t\tpaddingLeft = normalizeData($linkStyle.paddingLeft.slice(0, -2)),\r\n\t\t\t\t\t\tpaddingRight = normalizeData($linkStyle.paddingRight.slice(0, -2)),\r\n\t\t\t\t\t\tpadding = paddingLeft + paddingRight;\r\n\r\n\t\t\t\t\t// TODO не совсем верно, но мы точно знаем ширину точек в svg - 16px\r\n\t\t\t\t\twidth_all_links_responsive = padding + 16;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor (let $link of _this.$links) {\r\n\t\t\t\t\tlet width = $link.getBoundingClientRect().width;\r\n\t\t\t\t\twidth_all_links_responsive = width_all_links_responsive + width;\r\n\r\n\t\t\t\t\tif ((width_navigation_responsive) < width_all_links_responsive) {\r\n\t\t\t\t\t\t_this.movedLinks.push($link);\r\n\t\t\t\t\t\t$link.remove();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (_this.movedLinks.length) {\r\n\t\t\t\t\t\t\tif ($dots) {\r\n\t\t\t\t\t\t\t\t_this.navigation.insertBefore(_this.movedLinks[0], $dots)\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t_this.navigation.appendChild(_this.movedLinks[0])\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t_this.movedLinks.splice(0, 1);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (_this.movedLinks.length) {\r\n\t\t\t\t\tif (!$dots) {\r\n\t\t\t\t\t\t_this.navigation.insertAdjacentHTML('beforeend','<li class=\"dropdown dots\">' + '<a href=\"#\" aria-expanded=\"false\">'+ _dots +'</a></li>');\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif ($dots) {\r\n\t\t\t\t\t\t$dots.remove();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet $d = _this.navigation.querySelector('.dots');\r\n\t\t\t\tif ($d && _this.movedLinks.length) {\r\n\t\t\t\t\tlet $dropdown = $d.querySelector('ul');\r\n\t\t\t\t\tif ($dropdown) {\r\n\t\t\t\t\t\tfor (let link of _this.movedLinks) {\r\n\t\t\t\t\t\t\t$dropdown.prepend(link);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tlet $dropdown = document.createElement('ul');\r\n\t\t\t\t\t\t$dropdown.classList.add('dropdown-content');\r\n\t\t\t\t\t\t$dropdown.classList.add('right');\r\n\r\n\t\t\t\t\t\tfor (let link of _this.movedLinks) {\r\n\t\t\t\t\t\t\t$dropdown.prepend(link);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t$d.appendChild($dropdown);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\t\tlet target = relatedTarget.relatedTarget;\r\n\r\n\t\tif (!target || isDisabled(target)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!target.closest('.dropdown-content')) {\r\n\t\t\ttarget.classList.add('first');\r\n\t\t}\r\n\r\n\t\tconst showEvent = EventHandler.trigger(target, EVENT_KEY_SHOW, { relatedTarget });\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tlet drop = Selectors.find('.dropdown-content', target),\r\n\t\t\tlink = target.firstElementChild;\r\n\r\n\t\tif (link) link.setAttribute('aria-expanded', 'true');\r\n\t\tdrop.classList.add(CLASS_NAME_SHOW);\r\n\t\ttarget.classList.add(CLASS_NAME_ACTIVE);\r\n\r\n\t\tsetDropPosition(drop)\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tdrop.classList.add(CLASS_NAME_FADE);\r\n\t\t\tEventHandler.trigger(target, EVENT_KEY_SHOWN, relatedTarget)\r\n\t\t}\r\n\t\tthis._queueCallback(completeCallBack, drop, true, 50);\r\n\r\n\t\t/**\r\n\t\t *\r\n\t\t * @param $drop\r\n\t\t */\r\n\t\tfunction setDropPosition($drop) {\r\n\t\t\tlet {width, right} = $drop.getBoundingClientRect(),\r\n\t\t\t\twindow_width = window.innerWidth;\r\n\r\n\t\t\tlet N_right = window_width - right - width;\r\n\r\n\t\t\t$drop.classList.remove('right');\r\n\t\t\t$drop.classList.remove('left');\r\n\r\n\t\t\tlet $parent = $drop.closest('li'),\r\n\t\t\t\t$ul = $parent.querySelectorAll('ul');\r\n\r\n\t\t\tif (N_right > width) {\r\n\t\t\t\tfor (const $el of $ul) {\r\n\t\t\t\t\t$el.classList.add('left');\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tfor (const $el of $ul) {\r\n\t\t\t\t\t$el.classList.add('right');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\thide(relatedTarget) {\r\n\t\tconst _this = this;\r\n\t\tif ('ontouchstart' in document.documentElement) {\r\n\t\t\tfor (const element of [].concat(...document.body.children)) {\r\n\t\t\t\tEventHandler.off(element, 'mouseover', noop);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet element = relatedTarget.relatedTarget;\r\n\r\n\t\tif ('elm' in relatedTarget && relatedTarget.elm) {\r\n\t\t\telement = relatedTarget.elm\r\n\t\t}\r\n\r\n\t\tif (element) {\r\n\t\t\tconst hideEvent = EventHandler.trigger(element, EVENT_KEY_HIDE);\r\n\t\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\t\telement.classList.remove(CLASS_NAME_ACTIVE);\r\n\r\n\t\t\tif (element.classList.contains('first')) {\r\n\t\t\t\telement.classList.remove('first');\r\n\t\t\t}\r\n\r\n\t\t\t[...Selectors.findAll('.' + CLASS_NAME_SHOW, element)].forEach(function (el, index) {\r\n\t\t\t\tel.classList.remove(CLASS_NAME_FADE);\r\n\r\n\t\t\t\tlet parent = el.closest('.dropdown');\r\n\t\t\t\tif (parent.classList.contains(CLASS_NAME_ACTIVE)) {\r\n\t\t\t\t\tparent.classList.remove(CLASS_NAME_ACTIVE);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet link = el.previousElementSibling;\r\n\t\t\t\tif (link) link.setAttribute('aria-expanded', 'false');\r\n\r\n\t\t\t\tif (index === 0) {\r\n\t\t\t\t\tconst completeCallback = () => {\r\n\t\t\t\t\t\tel.classList.remove(CLASS_NAME_SHOW);\r\n\t\t\t\t\t\tEventHandler.trigger(el, EVENT_KEY_HIDDEN, relatedTarget)\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t_this._queueCallback(completeCallback, el, true, 500);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * TODO если на странице несколько навигаций, то есть косяки\r\n\t * @param element\r\n\t * @param params\r\n\t */\r\n\tstatic init(element, params = {}) {\r\n\t\tconst instance = VGNav.getOrCreateInstance(element, params);\r\n\t\tinstance.build();\r\n\r\n\t\tlet drops = Selectors.findAll('.dropdown', instance._navigation)\r\n\r\n\t\tif (instance._params.hover) {\r\n\t\t\t[...drops].forEach(function (el) {\r\n\t\t\t\tlet currentElem = null;\r\n\t\t\t\tEventHandler.on(el, EVENT_MOUSEOVER_DATA_API, function (event) {\r\n\t\t\t\t\tif (currentElem) return;\r\n\t\t\t\t\tVGNav.hideOpenDrops(event);\r\n\r\n\t\t\t\t\tlet target = event.target.closest('.dropdown');\r\n\t\t\t\t\tif (!target) return;\r\n\r\n\t\t\t\t\tif (!instance.navigation.contains(target)) return;\r\n\t\t\t\t\tcurrentElem = target;\r\n\r\n\t\t\t\t\tlet relatedTarget = {\r\n\t\t\t\t\t\trelatedTarget: target\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tinstance.show(relatedTarget);\r\n\t\t\t\t});\r\n\t\t\t\tEventHandler.on(el, EVENT_MOUSEOUT_DATA_API, function (event) {\r\n\t\t\t\t\tif (!currentElem) return;\r\n\r\n\t\t\t\t\tlet relatedTarget = event.relatedTarget.closest('.dropdown'),\r\n\t\t\t\t\t\telm = currentElem;\r\n\r\n\t\t\t\t\twhile (relatedTarget) {\r\n\t\t\t\t\t\tif (relatedTarget === currentElem) return;\r\n\t\t\t\t\t\trelatedTarget = relatedTarget.parentNode;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tcurrentElem = null;\r\n\t\t\t\t\tinstance.hide({relatedTarget: relatedTarget, elm: elm});\r\n\t\t\t\t})\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\tEventHandler.on(document, EVENT_KEYUP_DATA_API, VGNav.clearDrops);\r\n\t\t\tEventHandler.on(document, EVENT_CLICK_DATA_API, VGNav.clearDrops);\r\n\t\t\tEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\t\t\t\tif (!Manipulator.has(this, 'aria-expanded')) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ('click' in instance._params.callback) {\r\n\t\t\t\t\texecute(instance._params.callback.click, [this]);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tevent.preventDefault();\r\n\r\n\t\t\t\tlet self = this.closest('.vg-nav'),\r\n\t\t\t\t\tisFirst = self.querySelector('.first');\r\n\r\n\t\t\t\tlet target = this.closest('.dropdown');\r\n\t\t\t\tif (!target) return;\r\n\r\n\t\t\t\tif (isDisabled(target) && !isVisible(target)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (isFirst && this.closest('.first')) {\r\n\t\t\t\t\tif (target.classList.contains('active')) {\r\n\t\t\t\t\t\tinstance.hide({relatedTarget: target});\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t[...Selectors.findAll('.active', self)].forEach(function (el) {\r\n\t\t\t\t\t\tif (el && el !== target) {\r\n\t\t\t\t\t\t\tinstance.hide({relatedTarget: el})\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tinstance.show({relatedTarget: target});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tconst vgNavSidebar = document.getElementById('sidebar-nav');\r\n\t\tlet hamburger = instance._element.querySelector('.' + instance._params.classes.hamburger);\r\n\r\n\t\tif (vgNavSidebar && hamburger) {\r\n\t\t\tvgNavSidebar.addEventListener('vg.sidebar.show', function () {\r\n\t\t\t\thamburger.classList.add(instance._params.classes.hamburgerActive);\r\n\t\t\t});\r\n\r\n\t\t\tvgNavSidebar.addEventListener('vg.sidebar.hide', function () {\r\n\t\t\t\thamburger.classList.remove(instance._params.classes.hamburgerActive);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tstatic clearDrops(event) {\r\n\t\tif (event.button === 2 || (event.type === 'keyup' && event.key !== 'Tab')) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tVGNav.hideOpenDrops(event)\r\n\t}\r\n\r\n\tstatic hideOpenDrops(event) {\r\n\t\tconst openToggles = Selectors.findAll('.dropdown:not(.disabled):not(:disabled).active');\r\n\r\n\t\tfor (const toggle of openToggles) {\r\n\t\t\tconst context = VGNav.getInstance(toggle.closest('.vg-nav'));\r\n\t\t\tif (!context) continue;\r\n\r\n\t\t\tif (event.target.closest('.first')) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst relatedTarget = { relatedTarget: toggle }\r\n\r\n\t\t\tif (event.type === 'click') {\r\n\t\t\t\trelatedTarget.clickEvent = event\r\n\t\t\t}\r\n\r\n\t\t\tcontext.hide(relatedTarget)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nEventHandler.on(window, EVENT_RESIZE_DATA_API, function (event) {\r\n\tconst instance = VGNav.getOrCreateInstance('.vg-nav', {});\r\n\tinstance.build();\r\n})\r\n\r\nexport default VGNav;","import {mergeDeepObject, normalizeData} from \"../functions\";\r\n\r\n/**\r\n * Класс Placement, определяет и устанавливает местоположение элемента на странице.\r\n * TODO класс не дописан\r\n */\r\n\r\nclass Placement {\r\n\tconstructor(arg = {}) {\r\n\t\tthis.params = mergeDeepObject({\r\n\t\t\telement: null,\r\n\t\t\tdrop: null\r\n\t\t}, arg);\r\n\t}\r\n\r\n\t_getPlacement() {\r\n\t\tconst _this = this;\r\n\t\tconst _parent = (self) => {\r\n\t\t\tlet parent = self.parentNode,\r\n\t\t\t\toverflow = getComputedStyle(parent).overflow;\r\n\r\n\t\t\tif (parent.tagName !== 'BODY') {\r\n\t\t\t\tif (overflow === 'visible') {\r\n\t\t\t\t\t_parent(parent)\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn parent;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet isFixed = false, top, left,\r\n\t\t\tbounds = _this.params.drop.getBoundingClientRect(),\r\n\t\t\tparent = _this.params.element.getBoundingClientRect();\r\n\r\n\t\tif (_parent(_this.params.element)) {\r\n\t\t\tisFixed = true;\r\n\t\t\ttop = bounds.top;\r\n\t\t\tleft = bounds.left;\r\n\t\t} else {\r\n\t\t\tlet styles = getComputedStyle(_this.params.drop);\r\n\t\t\ttop = normalizeData(styles.top.slice(0, -2));\r\n\t\t\tleft = normalizeData(styles.left.slice(0, -2));\r\n\t\t}\r\n\r\n\t\tif ((bounds.left + bounds.width) > window.innerWidth) {\r\n\t\t\tleft = parent.width - bounds.width;\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tisFixed: isFixed,\r\n\t\t\ttop: top,\r\n\t\t\tleft: left\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default Placement;","import BaseModule from \"../../base-module\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport {isDisabled, mergeDeepObject, noop} from \"../../../utils/js/functions\";\r\nimport Placement from \"../../../utils/js/components/placement\";\r\nimport Overflow from \"../../../utils/js/components/overflow\";\r\nimport Backdrop from \"../../../utils/js/components/backdrop\";\r\n\r\nconst NAME = 'dropdown';\r\nconst NAME_KEY = 'vg.dropdown';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst TARGET_CONTAINER = 'vg-dropdown-content';\r\nconst PARENT_CONTAINER = 'vg-dropdown';\r\nconst SELECTOR_DATA_TOGGLE = '[data-vg-toggle=\"dropdown\"]';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\n\r\nconst EVENT_KEYUP_DATA_API = `keyup.${NAME_KEY}.data.api`;\r\nconst EVENT_KEYDOWN_DATA_API = `keydown.${NAME_KEY}.data.api`;\r\nconst EVENT_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\nconst EVENT_MOUSEOVER_DATA_API = `mouseover.${NAME_KEY}.data.api`;\r\nconst EVENT_MOUSEOUT_DATA_API = `mouseout.${NAME_KEY}.data.api`;\r\n\r\nclass VGDropdown extends BaseModule {\r\n\tconstructor(element, params) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tlet defaultParams = {\r\n\t\t\toffset: [0, 2],\r\n\t\t\tbackdrop: false,\r\n\t\t\toverflow: false,\r\n\t\t\tkeyboard: false,\r\n\t\t\tplacement: 'bottom',\r\n\t\t\ttimeoutAnimation: 350,\r\n\t\t\thover: false,\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get'\r\n\t\t\t},\r\n\t\t\tanimation: {\r\n\t\t\t\tenable: false,\r\n\t\t\t\tin: 'animate__flipInY',\r\n\t\t\t\tout: 'animate__flipOutY',\r\n\t\t\t\tdelay: 800,\r\n\t\t\t},\r\n\t\t}\r\n\r\n\t\tif ('offset' in params && Array.isArray(params.offset)) {\r\n\t\t\tdefaultParams.offset = params.offset;\r\n\t\t}\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject(defaultParams, params));\r\n\r\n\t\tconst target = Selectors.getElementFromSelector(this._element);\r\n\r\n\t\tthis._parent = this._element.parentNode;\r\n\t\tthis._drop = target || Selectors.find('.' + TARGET_CONTAINER, this._parent);\r\n\t\tthis._isPlacement = false;\r\n\r\n\t\tthis._params.animation.delay = !this._params.animation.enable ? 0 : this._params.animation.delay;\r\n\t\tthis._animation(this._drop, VGDropdown.NAME_KEY, this._params.animation);\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\ttoggle() {\r\n\t\treturn this._isShown() ? this.hide() : this.show();\r\n\t}\r\n\r\n\tshow() {\r\n\t\tif (isDisabled(this._element) || this._isShown()) return;\r\n\r\n\t\tconst relatedTarget = {\r\n\t\t\trelatedTarget: this._element\r\n\t\t}\r\n\r\n\t\tconst showEvent = EventHandler.trigger(this._element, EVENT_KEY_SHOW, relatedTarget)\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tif ('ontouchstart' in document.documentElement) {\r\n\t\t\tfor (const element of [].concat(...document.body.children)) {\r\n\t\t\t\tEventHandler.on(element, 'mouseover', noop);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._route();\r\n\r\n\t\tthis._element.setAttribute('aria-expanded', true);\r\n\t\tthis._element.classList.add(CLASS_NAME_SHOW);\r\n\t\tthis._drop.classList.add(CLASS_NAME_SHOW);\r\n\t\tthis._setPlacement();\r\n\r\n\t\tif (this._params.backdrop && !this._params.hover) {\r\n\t\t\tBackdrop.show();\r\n\t\t}\r\n\r\n\t\tif (this._params.overflow) {\r\n\t\t\tOverflow.append();\r\n\t\t\tdocument.body.classList.add('dropdown-open')\r\n\t\t}\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tthis._drop.classList.add(CLASS_NAME_FADE);\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_SHOWN, relatedTarget)\r\n\t\t}\r\n\t\tthis._queueCallback(completeCallBack, this._drop, true, 50);\r\n\t}\r\n\r\n\thide() {\r\n\t\tif (isDisabled(this._element) || !this._isShown()) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst relatedTarget = {\r\n\t\t\trelatedTarget: this._element\r\n\t\t}\r\n\r\n\t\tthis._completeHide(relatedTarget);\r\n\t}\r\n\r\n\tdispose() {\r\n\t\treturn super.dispose();\r\n\t}\r\n\r\n\t_isShown() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\t_completeHide(relatedTarget) {\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE, relatedTarget)\r\n\t\tif (hideEvent.defaultPrevented) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ('ontouchstart' in document.documentElement) {\r\n\t\t\tfor (const element of [].concat(...document.body.children)) {\r\n\t\t\t\tEventHandler.off(element, 'mouseover', noop);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._drop.classList.remove(CLASS_NAME_FADE);\r\n\t\tthis._element.classList.remove(CLASS_NAME_SHOW);\r\n\t\tthis._element.setAttribute('aria-expanded', 'false');\r\n\r\n\t\tif (this._params.backdrop && !this._params.hover) {\r\n\t\t\tconst _this = this;\r\n\t\t\tBackdrop.hide(function () {\r\n\t\t\t\tif (_this._params.overflow) {\r\n\t\t\t\t\tOverflow.destroy();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this._params.overflow) {\r\n\t\t\tOverflow.destroy();\r\n\t\t\tdocument.body.classList.remove('dropdown-open');\r\n\t\t}\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tconst completeCallback = () => {\r\n\t\t\t\tthis._drop.classList.remove(CLASS_NAME_SHOW);\r\n\t\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDDEN, relatedTarget);\r\n\t\t\t}\r\n\t\t\tthis._queueCallback(completeCallback, this._parent, true, 10);\r\n\t\t}, this._params.animation.delay);\r\n\t}\r\n\r\n\t// TODO class Placement isn't done\r\n\t_setPlacement() {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (!_this._isPlacement) {\r\n\t\t\tlet placement = new Placement({\r\n\t\t\t\telement: this._parent,\r\n\t\t\t\tdrop: this._drop\r\n\t\t\t})._getPlacement();\r\n\r\n\t\t\tif (placement.isFixed) {\r\n\t\t\t\t_this._drop.style.position = 'fixed';\r\n\t\t\t\t_this._drop.style.transform = 'translateY(-20%)'; // todo this is костыль поfixить\r\n\t\t\t}\r\n\r\n\t\t\t_this._drop.style.left = placement.left + 'px';\r\n\t\t\t_this._drop.style.top = placement.top + 'px';\r\n\t\t}\r\n\r\n\t\tif (_this._params.offset) {\r\n\t\t\t_this._drop.style.paddingTop = _this._params.offset[1] + 'px';\r\n\t\t\t_this._drop.style.paddingRight = _this._params.offset[0] + 'px';\r\n\t\t}\r\n\r\n\t\t_this._isPlacement = true;\r\n\t}\r\n\r\n\tstatic init(element, params = {}) {\r\n\t\tconst instance = VGDropdown.getOrCreateInstance(element, params);\r\n\r\n\t\tif (instance._params.hover) {\r\n\t\t\tlet currentElem = null;\r\n\t\t\tEventHandler.on(instance._parent, EVENT_MOUSEOVER_DATA_API, function (event) {\r\n\t\t\t\tif (currentElem) return;\r\n\t\t\t\tVGDropdown.hideOpenToggles(event);\r\n\r\n\t\t\t\tlet target = event.target.closest('.' + PARENT_CONTAINER);\r\n\t\t\t\tif (!target) return;\r\n\r\n\t\t\t\tif (!instance._parent.contains(target)) return;\r\n\t\t\t\tcurrentElem = target;\r\n\t\t\t\tinstance.show();\r\n\t\t\t});\r\n\r\n\t\t\tEventHandler.on(instance._parent, EVENT_MOUSEOUT_DATA_API, function (event) {\r\n\t\t\t\tif (!currentElem) return;\r\n\r\n\t\t\t\tlet relatedTarget = event.relatedTarget;\r\n\r\n\t\t\t\twhile (relatedTarget) {\r\n\t\t\t\t\tif (relatedTarget === currentElem) return;\r\n\t\t\t\t\trelatedTarget = relatedTarget.parentNode;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcurrentElem = null;\r\n\t\t\t\tinstance._completeHide({relatedTarget: instance._element});\r\n\t\t\t})\r\n\t\t} else {\r\n\t\t\tEventHandler.on(document, EVENT_KEYUP_DATA_API, SELECTOR_DATA_TOGGLE, VGDropdown.keydownHandler);\r\n\t\t\tEventHandler.on(document, EVENT_KEYDOWN_DATA_API, '.' + TARGET_CONTAINER, VGDropdown.keydownHandler);\r\n\t\t\tEventHandler.on(document, EVENT_KEYUP_DATA_API, VGDropdown.clearDrops);\r\n\t\t\tEventHandler.on(document, EVENT_CLICK_DATA_API, VGDropdown.clearDrops);\r\n\t\t\tEventHandler.on(element, EVENT_CLICK_DATA_API, function (event) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tinstance.toggle();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tstatic hideOpenToggles(event) {\r\n\t\tconst openToggles = Selectors.findAll('[data-vg-toggle=\"dropdown\"]:not(.disabled):not(:disabled).show');\r\n\t\tfor (const toggle of openToggles) {\r\n\t\t\tconst context = VGDropdown.getInstance(toggle);\r\n\t\t\tif (!context) {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\tif (event.target.closest('.' + TARGET_CONTAINER) === context._drop) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst composedPath = event.composedPath();\r\n\t\t\tif (composedPath.includes(context._element)) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\tconst relatedTarget = { relatedTarget: context._element }\r\n\r\n\t\t\tif (event.type === 'click') {\r\n\t\t\t\trelatedTarget.clickEvent = event\r\n\t\t\t}\r\n\r\n\t\t\tcontext._completeHide(relatedTarget)\r\n\t\t}\r\n\t}\r\n\r\n\tstatic keydownHandler(event) {\r\n\t\tconst isInput = /input|textarea/i.test(event.target.tagName)\r\n\t\tconst isEscapeEvent = event.key === 'Escape'\r\n\t\tconst isUpOrDownEvent = ['ArrowUp', 'ArrowDown'].includes(event.key)\r\n\r\n\t\tif (!isUpOrDownEvent && !isEscapeEvent) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (isInput && !isEscapeEvent) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tevent.preventDefault()\r\n\r\n\t\tconst getToggleButton = this.matches(SELECTOR_DATA_TOGGLE) ?\r\n\t\t\tthis : (Selectors.find(SELECTOR_DATA_TOGGLE, event.delegateTarget.parentNode))\r\n\r\n\t\tconst instance = VGDropdown.getOrCreateInstance(getToggleButton)\r\n\r\n\t\tif (isUpOrDownEvent) {\r\n\t\t\tevent.stopPropagation()\r\n\t\t\tinstance.show()\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tif (instance._isShown()) {\r\n\t\t\tevent.stopPropagation()\r\n\t\t\tinstance.hide()\r\n\t\t\tgetToggleButton.focus()\r\n\t\t}\r\n\t}\r\n\r\n\tstatic clearDrops(event) {\r\n\t\tif (event.button === 2 || (event.type === 'keyup' && event.key !== 'Tab')) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tVGDropdown.hideOpenToggles(event)\r\n\t}\r\n}\r\n\r\nexport default VGDropdown;","/**\r\n * --------------------------------------------------------------------------\r\n * Bootstrap util/scrollBar.js\r\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\r\n * --------------------------------------------------------------------------\r\n */\r\n\r\nimport {Manipulator} from \"../dom/manipulator\";\r\nimport {isElement} from \"../functions\";\r\nimport Selectors from \"../dom/selectors\";\r\n\r\n/**\r\n * Constants\r\n */\r\n\r\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\r\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\r\nconst PROPERTY_PADDING = 'padding-right'\r\nconst PROPERTY_MARGIN = 'margin-right'\r\n\r\n/**\r\n * Class definition\r\n */\r\n\r\nclass ScrollBarHelper {\r\n\tconstructor() {\r\n\t\tthis._element = document.body\r\n\t}\r\n\r\n\t// Public\r\n\tgetWidth() {\r\n\t\t// https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\r\n\t\tconst documentWidth = document.documentElement.clientWidth\r\n\t\treturn Math.abs(window.innerWidth - documentWidth)\r\n\t}\r\n\r\n\thide() {\r\n\t\tconst width = this.getWidth()\r\n\t\tthis._disableOverFlow()\r\n\t\t// give padding to element to balance the hidden scrollbar width\r\n\t\tthis._setElementAttributes(this._element, PROPERTY_PADDING, calculatedValue => calculatedValue + width)\r\n\t\t// trick: We adjust positive paddingRight and negative marginRight to sticky-top elements to keep showing fullwidth\r\n\t\tthis._setElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING, calculatedValue => calculatedValue + width)\r\n\t\tthis._setElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN, calculatedValue => calculatedValue - width)\r\n\t}\r\n\r\n\treset() {\r\n\t\tthis._resetElementAttributes(this._element, 'overflow')\r\n\t\tthis._resetElementAttributes(this._element, PROPERTY_PADDING)\r\n\t\tthis._resetElementAttributes(SELECTOR_FIXED_CONTENT, PROPERTY_PADDING)\r\n\t\tthis._resetElementAttributes(SELECTOR_STICKY_CONTENT, PROPERTY_MARGIN)\r\n\t}\r\n\r\n\tisOverflowing() {\r\n\t\treturn this.getWidth() > 0\r\n\t}\r\n\r\n\t// Private\r\n\t_disableOverFlow() {\r\n\t\tthis._saveInitialAttribute(this._element, 'overflow')\r\n\t\tthis._element.style.overflow = 'hidden'\r\n\t}\r\n\r\n\t_setElementAttributes(selector, styleProperty, callback) {\r\n\t\tconst scrollbarWidth = this.getWidth()\r\n\t\tconst manipulationCallBack = element => {\r\n\t\t\tif (element !== this._element && window.innerWidth > element.clientWidth + scrollbarWidth) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tthis._saveInitialAttribute(element, styleProperty)\r\n\t\t\tconst calculatedValue = window.getComputedStyle(element).getPropertyValue(styleProperty)\r\n\t\t\telement.style.setProperty(styleProperty, `${callback(Number.parseFloat(calculatedValue))}px`)\r\n\t\t}\r\n\r\n\t\tthis._applyManipulationCallback(selector, manipulationCallBack)\r\n\t}\r\n\r\n\t_saveInitialAttribute(element, styleProperty) {\r\n\t\tconst actualValue = element.style.getPropertyValue(styleProperty)\r\n\t\tif (actualValue) {\r\n\t\t\tManipulator.get(element, styleProperty, actualValue)\r\n\t\t}\r\n\t}\r\n\r\n\t_resetElementAttributes(selector, styleProperty) {\r\n\t\tconst manipulationCallBack = element => {\r\n\t\t\tconst value = Manipulator.get(element, styleProperty)\r\n\t\t\t// We only want to remove the property if the value is `null`; the value can also be zero\r\n\t\t\tif (value === null) {\r\n\t\t\t\telement.style.removeProperty(styleProperty)\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tManipulator.remove(element, styleProperty)\r\n\t\t\telement.style.setProperty(styleProperty, value)\r\n\t\t}\r\n\r\n\t\tthis._applyManipulationCallback(selector, manipulationCallBack)\r\n\t}\r\n\r\n\t_applyManipulationCallback(selector, callBack) {\r\n\t\tif (isElement(selector)) {\r\n\t\t\tcallBack(selector)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tfor (const sel of Selectors.findAll(selector, this._element)) {\r\n\t\t\tcallBack(sel)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nexport default ScrollBarHelper","import BaseModule from \"../../base-module\";\r\nimport ScrollBarHelper from \"../../../utils/js/components/scrollbar\";\r\nimport Backdrop from \"../../../utils/js/components/backdrop\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\nimport {execute, isDisabled, isRTL, mergeDeepObject, reflow} from \"../../../utils/js/functions\";\r\nimport {dismissTrigger} from \"../../module-fn\";\r\nimport Params from \"../../../utils/js/components/params\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'modal';\r\nconst NAME_KEY = 'vg.modal';\r\n\r\nconst ESCAPE_KEY = 'Escape';\r\n\r\nconst OPEN_SELECTOR = '.vg-modal.show';\r\nconst SELECTOR_DIALOG = '.vg-modal-dialog';\r\nconst SELECTOR_MODAL_BODY = '.vg-modal-body';\r\nconst SELECTOR_DATA_TOGGLE = '[data-vg-toggle=\"modal\"]';\r\n\r\nconst CLASS_NAME_OPEN = 'vg-modal-open';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_STATIC = 'vg-modal-static';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\nconst EVENT_KEY_RESIZE = `${NAME_KEY}.resize`;\r\nconst EVENT_KEY_LOADED = `${NAME_KEY}.loaded`;\r\n\r\nconst EVENT_KEY_KEYDOWN_DISMISS = `keydown.dismiss.${NAME_KEY}`;\r\nconst EVENT_KEY_HIDE_PREVENTED = `hidePrevented.${NAME_KEY}`;\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\nconst EVENT_KEY_MOUSEDOWN_DISMISS = `mousedown.dismiss${NAME_KEY}`\r\nconst EVENT_KEY_CLICK_DISMISS = `click.dismiss${NAME_KEY}`\r\n\r\nclass VGModal extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tbackdrop: true,\r\n\t\t\tfocus: true,\r\n\t\t\tkeyboard: true,\r\n\t\t\tfields: [],\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t\tloader: false\r\n\t\t\t},\r\n\t\t\tanimation: {\r\n\t\t\t\tenable: false,\r\n\t\t\t\tin: 'animate__rollIn',\r\n\t\t\t\tout: 'animate__rollOut',\r\n\t\t\t\tdelay: 800,\r\n\t\t\t},\r\n\t\t\tclasses: {\r\n\t\t\t\tgeneral: 'vg-modal',\r\n\t\t\t\tdialog: 'vg-modal-dialog',\r\n\t\t\t\tcontent: 'vg-modal-content',\r\n\t\t\t\theader: 'vg-modal-header',\r\n\t\t\t\ttitle: 'vg-modal-title',\r\n\t\t\t\tbody: 'vg-modal-body',\r\n\t\t\t\tfooter: 'vg-modal-footer',\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._button = null;\r\n\t\tthis._dialog = Selectors.find(SELECTOR_DIALOG, this._element);\r\n\t\tthis._isShown = false;\r\n\t\tthis._isTransitioning = false;\r\n\t\tthis._scrollBar = new ScrollBarHelper();\r\n\r\n\t\tthis._addEventListeners();\r\n\t\tthis._dismissElement();\r\n\r\n\t\tthis._params.animation.delay = !this._params.animation.enable ? 0 : this._params.animation.delay;\r\n\t\tthis._animation(this._element, VGModal.NAME_KEY, this._params.animation);\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\tstatic init(element, params, callback) {\r\n\t\tVGModal.build(element, params, callback);\r\n\t}\r\n\r\n\tstatic build(id, params, callback) {\r\n\t\tif (typeof id !== \"string\") return;\r\n\r\n\t\tlet _element = document.createElement('div');\r\n\t\t_element.classList.add('vg-modal', 'fade');\r\n\t\t_element.id = id;let dialog = document.createElement('div');\r\n\t\tdialog.classList.add('vg-modal-dialog');\r\n\r\n\t\tlet content = document.createElement('div');\r\n\t\tcontent.classList.add('vg-modal-content');\r\n\r\n\t\tlet btnClose = document.createElement('button');\r\n\t\tManipulator.set(btnClose, 'type', 'button');\r\n\t\tManipulator.set(btnClose, 'data-vg-dismiss', 'modal');\r\n\t\tManipulator.set(btnClose, 'data-vg-target', '#' + id);\r\n\t\tManipulator.set(btnClose, 'aria-label', 'close');\r\n\t\tbtnClose.classList.add('vg-btn-close');\r\n\r\n\t\tcontent.append(btnClose);\r\n\r\n\t\tlet body = document.createElement('div');\r\n\t\tbody.classList.add('vg-modal-body');\r\n\r\n\t\tcontent.append(body);\r\n\t\tdialog.append(content);\r\n\t\t_element.append(dialog);\r\n\r\n\t\tdocument.body.append(_element);\r\n\r\n\t\tconst modal = VGModal.getOrCreateInstance(_element, params);\r\n\r\n\t\texecute(callback, [modal]);\r\n\t}\r\n\r\n\ttoggle(relatedTarget) {\r\n\t\treturn !this._isShown ? this.show(relatedTarget) : this.hide();\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\t\tconst _this = this;\r\n\t\tif (isDisabled(_this._element)) return;\r\n\r\n\t\tthis._params = this._getParams(relatedTarget, this._params);\r\n\t\t_this._route(function (status, data) {\r\n\t\t\tEventHandler.trigger(_this._element, EVENT_KEY_LOADED, {stats: status, data: data});\r\n\t\t});\r\n\r\n\t\tconst showEvent = EventHandler.trigger(this._element, EVENT_KEY_SHOW, { relatedTarget })\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tthis._isShown = true;\r\n\t\tthis._isTransitioning = true;\r\n\r\n\t\tthis._scrollBar.hide();\r\n\r\n\t\tdocument.body.classList.add(CLASS_NAME_OPEN);\r\n\r\n\t\tthis._addFieldsInModal(relatedTarget);\r\n\t\tthis._adjustDialog();\r\n\r\n\t\tBackdrop.show(() => this._showElement(relatedTarget));\r\n\t}\r\n\r\n\thide(openedModals = []) {\r\n\t\tif (!this._isShown || this._isTransitioning) return;\r\n\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE);\r\n\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\tthis._isShown = false;\r\n\t\tthis._isTransitioning = true;\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis._element.classList.remove(CLASS_NAME_SHOW);\r\n\t\t\tthis._queueCallback(() => this._hideModal(openedModals), this._element, this._isAnimatedFade());\r\n\t\t}, this._params.animation.delay);\r\n\t}\r\n\r\n\t_hideModal(openedModals) {\r\n\t\tthis._element.style.display = 'none';\r\n\t\tthis._element.setAttribute('aria-hidden', true);\r\n\t\tthis._element.removeAttribute('aria-modal');\r\n\t\tthis._element.removeAttribute('role');\r\n\t\tthis._isTransitioning = false;\r\n\r\n\t\tif (openedModals.length) return;\r\n\r\n\t\tBackdrop.hide(() => {\r\n\t\t\tdocument.body.classList.remove(CLASS_NAME_OPEN);\r\n\t\t\tthis._resetAdjustments();\r\n\t\t\tthis._scrollBar.reset();\r\n\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDDEN);\r\n\t\t})\r\n\t}\r\n\r\n\t_showElement(relatedTarget) {\r\n\t\tif (!document.body.contains(this._element)) {\r\n\t\t\tdocument.body.append(this._element);\r\n\t\t}\r\n\r\n\t\tthis._element.style.display = 'block';\r\n\t\tthis._element.removeAttribute('aria-hidden');\r\n\t\tthis._element.setAttribute('aria-modal', true);\r\n\t\tthis._element.setAttribute('role', 'dialog');\r\n\t\tthis._element.scrollTop = 0;\r\n\r\n\t\tconst modalBody = Selectors.find(SELECTOR_MODAL_BODY, this._dialog);\r\n\t\tif (modalBody) {\r\n\t\t\tmodalBody.scrollTop = 0;\r\n\t\t}\r\n\r\n\t\treflow(this._element);\r\n\r\n\t\tthis._element.classList.add(CLASS_NAME_SHOW)\r\n\r\n\t\tconst transitionComplete = () => {\r\n\t\t\tthis._isTransitioning = false;\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_SHOWN, {\r\n\t\t\t\trelatedTarget\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis._queueCallback(transitionComplete, this._dialog, this._isAnimatedFade())\r\n\t}\r\n\r\n\t_isAnimatedFade() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_FADE)\r\n\t}\r\n\r\n\t_adjustDialog() {\r\n\t\tconst isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\r\n\t\tconst scrollbarWidth = this._scrollBar.getWidth()\r\n\t\tconst isBodyOverflowing = scrollbarWidth > 0\r\n\r\n\t\tif (isBodyOverflowing && !isModalOverflowing) {\r\n\t\t\tconst property = isRTL() ? 'paddingLeft' : 'paddingRight'\r\n\t\t\tthis._element.style[property] = `${scrollbarWidth}px`\r\n\t\t}\r\n\r\n\t\tif (!isBodyOverflowing && isModalOverflowing) {\r\n\t\t\tconst property = isRTL() ? 'paddingRight' : 'paddingLeft'\r\n\t\t\tthis._element.style[property] = `${scrollbarWidth}px`\r\n\t\t}\r\n\t}\r\n\r\n\t_resetAdjustments() {\r\n\t\tthis._element.style.paddingLeft = ''\r\n\t\tthis._element.style.paddingRight = ''\r\n\t}\r\n\r\n\t_addEventListeners() {\r\n\t\tEventHandler.on(this._element, EVENT_KEY_KEYDOWN_DISMISS, event => {\r\n\t\t\tif (event.key !== ESCAPE_KEY) return;\r\n\r\n\t\t\tif (this._params.keyboard) {\r\n\t\t\t\tthis.hide();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tthis._triggerBackdropTransition();\r\n\t\t});\r\n\r\n\t\tEventHandler.on(window, EVENT_KEY_RESIZE, () => {\r\n\t\t\tif (this._isShown && !this._isTransitioning) this._adjustDialog();\r\n\t\t});\r\n\r\n\t\tEventHandler.on(this._element, EVENT_KEY_MOUSEDOWN_DISMISS, event => {\r\n\t\t\tEventHandler.one(this._element, EVENT_KEY_CLICK_DISMISS, event2 => {\r\n\t\t\t\tif (this._element !== event.target || this._element !== event2.target) return;\r\n\r\n\t\t\t\tif (this._params.backdrop === 'static') {\r\n\t\t\t\t\tthis._triggerBackdropTransition();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this._params.backdrop) {\r\n\t\t\t\t\tthis.hide();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t});\r\n\t}\r\n\r\n\t_triggerBackdropTransition() {\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE_PREVENTED);\r\n\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\tconst isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\r\n\t\tconst initialOverflowY = this._element.style.overflowY;\r\n\r\n\t\tif (initialOverflowY === 'hidden' || this._element.classList.contains(CLASS_NAME_STATIC)) return;\r\n\t\tif (!isModalOverflowing) this._element.style.overflowY = 'hidden';\r\n\r\n\t\tthis._element.classList.add(CLASS_NAME_STATIC);\r\n\r\n\t\tthis._queueCallback(() => {\r\n\t\t\tthis._element.classList.remove(CLASS_NAME_STATIC);\r\n\t\t\tthis._queueCallback(() => {\r\n\t\t\t\tthis._element.style.overflowY = initialOverflowY;\r\n\t\t\t}, this._dialog);\r\n\t\t}, this._dialog);\r\n\t}\r\n\r\n\t_addFieldsInModal(relatedTarget) {\r\n\t\tthis._params = this._getParams(relatedTarget, this._params);\r\n\r\n\t\tif (!this._params.fields.length) return;\r\n\r\n\t\tthis._params.fields.forEach(function (item) {\r\n\t\t\tif (!'name' in item && !'value' in item) return;\r\n\r\n\t\t\tlet elements = Selectors.findAll('[data-' + item.name + ']');\r\n\t\t\tif (!elements.length) return;\r\n\r\n\t\t\tfor (const elm of elements) {\r\n\t\t\t\tswitch (elm.tagName) {\r\n\t\t\t\t\tcase 'INPUT': elm.value = item.value; break;\r\n\t\t\t\t\tcase 'IMG': Manipulator.set(elm, 'src', item.value); break;\r\n\t\t\t\t\tdefault: elm.innerHTML = item.value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n\r\ndismissTrigger(VGModal);\r\n\r\n\r\n/**\r\n * Data API implementation\r\n */\r\n\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\tconst target = Selectors.getElementFromSelector(this);\r\n\r\n\tif (['A', 'AREA'].includes(this.tagName)) event.preventDefault();\r\n\r\n\tEventHandler.one(target, EVENT_KEY_SHOW, showEvent => {\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\t});\r\n\r\n\tconst alreadyOpen = Selectors.find(OPEN_SELECTOR);\r\n\tif (alreadyOpen) VGModal.getInstance(alreadyOpen).hide([alreadyOpen]);\r\n\r\n\tconst data = VGModal.getOrCreateInstance(target);\r\n\tdata.toggle(this);\r\n})\r\n\r\nexport default VGModal;","import BaseModule from \"../../base-module\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport VGModal from \"../../vgmodal/js/vgmodal\";\r\nimport {isObject, makeRandomString, mergeDeepObject, normalizeData} from \"../../../utils/js/functions\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport VGCollapse from \"../../vgcollapse/js/vgcollapse\";\r\nimport {getSVG} from \"../../module-fn\";\r\nimport Backdrop from \"../../../utils/js/components/backdrop\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'form-sender';\r\nconst NAME_KEY = 'vg.fs';\r\n\r\n/**\r\n * Constants Events\r\n */\r\nconst EVENT_KEY_SUCCESS = 'vg.fs.success';\r\nconst EVENT_KEY_ERROR = 'vg.fs.error';\r\nconst EVENT_KEY_BEFORE = 'vg.fs.before';\r\n\r\nconst EVENT_SUBMIT_DATA_API = `submit.${NAME_KEY}.data.api`;\r\n\r\nclass VGFormSender extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tredirect: '',\r\n\t\t\tvalidate: false,\r\n\t\t\tsubmit: false,\r\n\t\t\tfields: [],\r\n\t\t\ttimeout: 50,\r\n\t\t\talert: {\r\n\t\t\t\tenabled: true,\r\n\t\t\t\ttype: 'modal'\r\n\t\t\t},\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get',\r\n\t\t\t},\r\n\t\t\tclasses: {\r\n\t\t\t\tgeneral: 'vg-form-sender',\r\n\t\t\t\talertCollapse: 'vg-form-sender-collapse',\r\n\t\t\t\talertModal: 'vg-form-sender-modal',\r\n\t\t\t\tvalidation: 'needs-validation',\r\n\t\t\t\twasValidate: 'was-validated'\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis._params.ajax.route = Manipulator.get(this._element, 'action').toLowerCase();\r\n\t\tthis._params.ajax.method = Manipulator.get(this._element, 'method').toLowerCase();\r\n\t\tthis._button = Selectors.find('[type=\"submit\"]', this._element) || Selectors.find('[form=\"' + this._element.id + '\"]') || null;\r\n\r\n\t\tthis._params.isBtnText = Manipulator.get(this._element, 'data-btn-text') !== 'false';\r\n\t\tthis._params.isJsonParse = Manipulator.get(this._element, 'data-json-parse') !== 'false';\r\n\t\tthis._params.isShowPass = Manipulator.get(this._element, 'data-show-pass') === 'true';\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\tbuild() {\r\n\t\tthis._element.classList.add(this._params.classes.general);\r\n\r\n\t\tif (this._params.validate) {\r\n\t\t\tManipulator.set(this._element, 'novalidate', '');\r\n\t\t\tthis._element.classList.add(this._params.classes.validation);\r\n\t\t}\r\n\r\n\t\t// TODO сделать добавление глаза если есть ввод пароля\r\n\r\n\t\treturn this\r\n\t}\r\n\r\n\trequest(data, event) {\r\n\t\tconst _this = this;\r\n\r\n\t\t_this._alertBefore();\r\n\r\n\t\t_this._params.ajax.data = data;\r\n\r\n\t\t_this._route(function (status, data) {\r\n\t\t\t_this._element.classList.remove('was-validated');\r\n\r\n\t\t\tif (_this._params.alert.enabled) {\r\n\t\t\t\tif (typeof status === 'string' && status === 'error') {\r\n\t\t\t\t\t_this._alertError(event, data);\r\n\t\t\t\t} else if (typeof status === 'string' && status === 'success') {\r\n\t\t\t\t\t_this._alertSuccess(event, data);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (_this._params.redirect) {\r\n\t\t\t\twindow.location.href = _this._params.redirect;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t_alertBefore() {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (_this._params.alert.type === 'collapse') {\r\n\t\t\t[...document.getElementsByClassName(_this._params.classes.alertCollapse)].forEach(function (element) {\r\n\t\t\t\tif (element && element.classList.contains('show')) {\r\n\t\t\t\t\tVGCollapse.getOrCreateInstance(element, {toggle: false}).hide();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t_this._statusButton('before');\r\n\t\tEventHandler.trigger(_this._element, EVENT_KEY_BEFORE, _this);\r\n\t}\r\n\r\n\t_alertError(event, data) {\r\n\t\tconst _this = this;\r\n\r\n\t\t_this._statusButton('after');\r\n\t\t_this._jsonParse(data, 'error');\r\n\t\tEventHandler.trigger(_this._element, EVENT_KEY_ERROR, [event, _this, data]);\r\n\t}\r\n\r\n\t_alertSuccess(event, data) {\r\n\t\tconst _this = this;\r\n\r\n\t\t_this._statusButton('after');\r\n\t\t_this._jsonParse(data, 'success');\r\n\t\tEventHandler.trigger(_this._element, EVENT_KEY_SUCCESS, [event, _this, data]);\r\n\t}\r\n\r\n\t_statusButton(status) {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (!_this._button) return;\r\n\r\n\t\tlet btnSubmitText = _this._button,\r\n\t\t\tbtnText = {\r\n\t\t\tsend: 'Отправляем...',\r\n\t\t\ttext: 'Отправить'\r\n\t\t};\r\n\r\n\t\tif (Manipulator.has(_this._button, 'data-spinner') && status === 'before') {\r\n\t\t\t_this._button.insertAdjacentHTML('afterbegin', '<span class=\"spinner-border spinner-border-sm me-2\"></span>');\r\n\t\t}\r\n\r\n\t\tif (Manipulator.has(_this._button, 'data-text')) {\r\n\t\t\tbtnText.text = Manipulator.get(_this._button, 'data-text');\r\n\t\t} else {\r\n\t\t\tlet $btnText = _this._button.querySelector('[data-text]');\r\n\t\t\tif ($btnText) {\r\n\t\t\t\tbtnText.text = Manipulator.get($btnText, 'data-text');\r\n\t\t\t\tbtnSubmitText = $btnText;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (Manipulator.has(_this._button, 'data-text-send')) {\r\n\t\t\tbtnText.send = Manipulator.get(_this._button, 'data-text-send');\r\n\t\t} else {\r\n\t\t\tlet $btnTextSend = _this._button.querySelector('[data-text-send]');\r\n\t\t\tif ($btnTextSend) {\r\n\t\t\t\tbtnText.send = Manipulator.get($btnTextSend, 'data-text-send');\r\n\t\t\t\tbtnSubmitText = $btnTextSend;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (status === 'before') {\r\n\t\t\tif (_this._params.isBtnText) {\r\n\t\t\t\tbtnSubmitText.innerHTML = btnText.send;\r\n\t\t\t}\r\n\t\t\tManipulator.set(_this._button,'disabled', 'disabled');\r\n\t\t}\r\n\r\n\t\tif (status === 'after') {\r\n\t\t\tif (_this._params.isBtnText) {\r\n\t\t\t\tbtnSubmitText.innerHTML = btnText.text;\r\n\t\t\t}\r\n\t\t\tManipulator.remove(_this._button,'disabled');\r\n\r\n\t\t\tlet spinner = _this._button.querySelector('.spinner-border');\r\n\t\t\tif (spinner) spinner.remove();\r\n\t\t}\r\n\t}\r\n\r\n\t_jsonParse(data, status) {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (_this._params.isJsonParse && typeof data === 'string') {\r\n\t\t\tlet parserData = {};\r\n\r\n\t\t\ttry {\r\n\t\t\t\tparserData = JSON.parse(data);\r\n\t\t\t\t_this.alert(parserData, status);\r\n\t\t\t} catch (e) {\r\n\t\t\t\t_this.alert(data, status);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t_this.alert(data, status);\r\n\t\t}\r\n\t}\r\n\r\n\talert(data, status) {\r\n\t\tconst _this = this;\r\n\r\n\t\tif (isObject(data)) {\r\n\t\t\tif (('code' in data) && data.code && data.code === 200) {\r\n\t\t\t\tif ('response' in data && data.response) {\r\n\t\t\t\t\tlet response = normalizeData(data.response);\r\n\t\t\t\t\tif (typeof response === 'string') {\r\n\t\t\t\t\t\tif (response.indexOf(\"Parse error\") !== -1 || response.indexOf(\"syntax error\") !== -1) {\r\n\t\t\t\t\t\t\tstatus = 'error';\r\n\t\t\t\t\t\t\tdata = {\r\n\t\t\t\t\t\t\t\tresponse: {\r\n\t\t\t\t\t\t\t\t\ttitle: 'Error',\r\n\t\t\t\t\t\t\t\t\tmessage: 'Something went wrong, please repeat later'\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\ttext: 'Something went wrong, please repeat later'\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif ('errors' in response && normalizeData(response.errors)) {\r\n\t\t\t\t\t\t\tstatus = normalizeData(response.errors) ? 'error' : 'success';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!_this._params.alert.enabled) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (_this._params.alert.type === 'modal') {\r\n\t\t\t_this._alertModal(data, status)\r\n\t\t}\r\n\r\n\t\tif (_this._params.alert.type === 'collapse') {\r\n\t\t\t_this._alertCollapse(data, status)\r\n\t\t}\r\n\t}\r\n\r\n\t_alertModal(data, status) {\r\n\t\tconst _this = this;\r\n\r\n\t\t// Есть ли открытые модалки, закрываем\r\n\t\t[...document.getElementsByClassName('modal')].forEach(function (element) {\r\n\t\t\tif (element && element.classList.contains('show')) {\r\n\t\t\t\tlet mBS = bootstrap.Modal.getOrCreateInstance(element);\r\n\t\t\t\tmBS.hide();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t[...document.getElementsByClassName('vg-modal')].forEach(function (element) {\r\n\t\t\tif (element && element.classList.contains('show')) {\r\n\t\t\t\tconst mVG = VGModal.getOrCreateInstance(element);\r\n\t\t\t\tmVG.hide([mVG]);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet id = _this._params.classes.general + '-' + makeRandomString(),\r\n\t\t\t$modal = Selectors.find('.' + _this._params.classes.alertModal);\r\n\r\n\t\tif ($modal) $modal.remove();\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tVGModal.init(id, {\r\n\t\t\t\tclasses: {\r\n\t\t\t\t\talert: _this._params.classes.alertModal\r\n\t\t\t\t}\r\n\t\t\t}, function (self) {\r\n\t\t\t\tlet element = self._element;\r\n\t\t\t\telement.classList.add(_this._params.classes.alertModal);\r\n\r\n\t\t\t\tlet $body = Selectors.find('.vg-modal-body', element);\r\n\t\t\t\tif ($body) $body.append(_this.setDataRelationStatus(element, status, data, 'modal'));\r\n\r\n\t\t\t\tself.toggle();\r\n\t\t\t});\r\n\t\t}, _this._params.timeout);\r\n\t}\r\n\r\n\t_alertCollapse(data, status) {\r\n\t\tconst _this = this;\r\n\r\n\t\tlet $collapse = Selectors.find('.' + _this._params.classes.alertCollapse);\r\n\t\tif (!$collapse) {\r\n\t\t\t$collapse = document.createElement('div');\r\n\t\t\t$collapse.classList.add(_this._params.classes.alertCollapse);\r\n\t\t\t$collapse.classList.add('vg-collapse');\r\n\t\t\t$collapse.id = _this._params.classes.general + '-' + makeRandomString();\r\n\t\t\t$collapse.append(_this.setDataRelationStatus($collapse, status, data, 'collapse'));\r\n\r\n\t\t\t_this._element.prepend($collapse);\r\n\t\t}\r\n\r\n\t\tVGCollapse.getOrCreateInstance($collapse, {toggle: false}).toggle();\r\n\t}\r\n\r\n\tsetDataRelationStatus($element, status, data, type) {\r\n\t\tlet $alert = Selectors.find('.vg-alert-' + status, $element);\r\n\r\n\t\tif (isObject(data)) {\r\n\t\t\tif (status === 'error') {\r\n\t\t\t\tif ('code' in data && data.code !== 200) {\r\n\t\t\t\t\tif ('text' in data && !data.text) {\r\n\t\t\t\t\t\tdata.text = 'Something went wrong, please repeat later';\r\n\r\n\t\t\t\t\t\tswitch (data.code) {\r\n\t\t\t\t\t\t\tcase 400:\r\n\t\t\t\t\t\t\t\tdata.text = 'Bad Request'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 401:\r\n\t\t\t\t\t\t\t\tdata.text = 'Unauthorized'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 403:\r\n\t\t\t\t\t\t\t\tdata.text = 'Unauthorized'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 413:\r\n\t\t\t\t\t\t\t\tdata.text = 'Forbidden'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 404:\r\n\t\t\t\t\t\t\t\tdata.text = 'Not Found'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 422:\r\n\t\t\t\t\t\t\t\tdata.text = 'Unprocessable Entity'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 500:\r\n\t\t\t\t\t\t\t\tdata.text = 'Internal Server Error'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t\tcase 504:\r\n\t\t\t\t\t\t\t\tdata.text = 'Gateway Timeout'\r\n\t\t\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif ('response' in data) {\r\n\t\t\t\tlet response = normalizeData(data.response), title = '', txt = '', code = '';\r\n\t\t\t\tif (typeof response !== 'string') {\r\n\t\t\t\t\tif (!('view' in response)) {\r\n\t\t\t\t\t\tif ('title' in response) title = response.title;\r\n\t\t\t\t\t\tif (status === 'error' && data.code !== 200) {\r\n\t\t\t\t\t\t\tcode = ' ' + data.text + ' (' + data.code + ')';\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\ttxt += '<h4 class=\"vg-alert-content--title\">' + title + code + '</h4>';\r\n\r\n\t\t\t\t\t\tif ('message' in response) {\r\n\t\t\t\t\t\t\ttxt += '<div class=\"vg-alert-content--message\">' + response.message + '</div>'\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ('errors' in response) {\r\n\t\t\t\t\t\t\tlet errors = normalizeData(response.errors) || null;\r\n\t\t\t\t\t\t\tif (isObject(errors)) {\r\n\t\t\t\t\t\t\t\tfor (const error in errors) {\r\n\t\t\t\t\t\t\t\t\tif (Array.isArray(errors[error])) {\r\n\t\t\t\t\t\t\t\t\t\terrors[error].forEach(function (t) {\r\n\t\t\t\t\t\t\t\t\t\t\ttxt += '<div>'+ t +'</div>';\r\n\t\t\t\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\ttxt = '<div>'+ errors[error] +'</div>';\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tdata = {\r\n\t\t\t\t\t\t\tview: txt\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdata.view = response;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!$alert) {\r\n\t\t\t$alert = document.createElement('div');\r\n\t\t\t$alert.classList.add('vg-alert', 'vg-alert-' + status, 'vg-alert-' + type);\r\n\r\n\t\t\tlet content = document.createElement('div');\r\n\t\t\tcontent.classList.add('vg-alert-content');\r\n\r\n\t\t\tlet icon = document.createElement('div');\r\n\t\t\ticon.classList.add('vg-alert-content--icon');\r\n\r\n\t\t\tlet i = document.createElement('i');\r\n\t\t\ti.innerHTML = getSVG(status);\r\n\r\n\t\t\ticon.append(i);\r\n\t\t\tcontent.append(icon);\r\n\r\n\t\t\tlet text = document.createElement('div');\r\n\t\t\ttext.classList.add('vg-alert-content--text');\r\n\t\t\ttext.innerHTML = data.view;\r\n\r\n\t\t\tcontent.append(text);\r\n\t\t\t$alert.append(content);\r\n\t\t} else {\r\n\t\t\tlet text = Selectors.find('.vg-alert-content--text', $alert);\r\n\t\t\ttext.innerHTML = data.view;\r\n\t\t}\r\n\r\n\t\treturn $alert;\r\n\t}\r\n\r\n\t/**\r\n\t * Инициализация\r\n\t * @param element\r\n\t * @param params\r\n\t */\r\n\tstatic init(element, params = {}) {\r\n\t\tconst instance = VGFormSender.getOrCreateInstance(element, params);\r\n\t\tinstance.build();\r\n\t}\r\n}\r\n\r\nEventHandler.on(document, EVENT_SUBMIT_DATA_API, function (event) {\r\n\tif (!Manipulator.has(event.target, 'data-vgformsender')) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst instance = VGFormSender.getOrCreateInstance(event.target, {});\r\n\tif (!instance) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif (instance._params.validate) {\r\n\t\tif (!instance._element.checkValidity()) {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tevent.stopPropagation();\r\n\r\n\t\t\tinstance._element.classList.add(instance._params.classes.wasValidate);\r\n\r\n\t\t\treturn false;\r\n\t\t}\r\n\t}\r\n\r\n\tconst collectData = function(data, fields) {\r\n\t\tfor (let name in fields) {\r\n\t\t\tif (typeof fields[name] === 'object') {\r\n\t\t\t\tfor (let key in fields[name]) {\r\n\t\t\t\t\tlet arr = Object.keys(fields[name][key]).map(function (i) {\r\n\t\t\t\t\t\treturn fields[name][key][i];\r\n\t\t\t\t\t});\r\n\t\t\t\t\tdata.append(name, arr);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tdata.append(name, fields[name]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn data;\r\n\t}\r\n\r\n\tif (!instance._params.submit) {\r\n\t\tevent.preventDefault();\r\n\r\n\t\tlet data = new FormData(instance._element);\r\n\r\n\t\t// TODO доделать\r\n\t\t/*if (Array.isArray(instance._params.ajax.fields) && instance._params.ajax.fields.length) {\r\n\t\t\tdata = collectData(data, instance._params.ajax.fields);\r\n\t\t}*/\r\n\r\n\t\treturn instance.request(data, event);\r\n\t}\r\n})\r\n\r\nexport default VGFormSender;","import BaseModule from \"../../base-module\";\r\nimport {execute, isDisabled, isVisible, mergeDeepObject, noop} from \"../../../utils/js/functions\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'rollup';\r\nconst NAME_KEY = 'vg.rollup';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_HIDE = 'd-none';\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"rollup\"]'\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\n\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nclass VGRollup extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\r\n\t\t}, params));\r\n\r\n\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY\r\n\t}\r\n\r\n\tbuild() {\r\n\r\n\t}\r\n\r\n\ttoggle(relatedTarget) {\r\n\t\treturn !this._isShown() ? this.show(relatedTarget) : this.hide();\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\r\n\t}\r\n\r\n\t_isShown() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\t/**\r\n\t * Инициализация\r\n\t * @param element\r\n\t * @param params\r\n\t */\r\n\tstatic init(element, params = {}) {\r\n\t\tconst instance = VGRollup.getOrCreateInstance(element, params);\r\n\t\tinstance.toggle();\r\n\t}\r\n}\r\n\r\n/**\r\n * Data API implementation\r\n */\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\tconst target = Selectors.getElementFromSelector(this);\r\n\tif (!target) return;\r\n\r\n\tif (['A', 'AREA'].includes(this.tagName)) {\r\n\t\tevent.preventDefault()\r\n\t}\r\n\r\n\tif (isDisabled(this)) {\r\n\t\treturn\r\n\t}\r\n\r\n\tthis.setAttribute('aria-expanded', true);\r\n\r\n\tconst data = VGRollup.getOrCreateInstance(target)\r\n\tdata.toggle(this);\r\n});\r\n\r\n\r\nexport default VGRollup;","/*! js-cookie v3.0.1 | MIT */\r\n\r\nfunction assign (target) {\r\n\tfor (let i = 1; i < arguments.length; i++) {\r\n\t\tlet source = arguments[i];\r\n\t\tfor (let key in source) {\r\n\t\t\ttarget[key] = source[key];\r\n\t\t}\r\n\t}\r\n\treturn target\r\n}\r\n\r\nlet defaultConverter = {\r\n\tread: function (value) {\r\n\t\tif (value[0] === '\"') {\r\n\t\t\tvalue = value.slice(1, -1);\r\n\t\t}\r\n\t\treturn value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\r\n\t},\r\n\twrite: function (value) {\r\n\t\treturn encodeURIComponent(value).replace(\r\n\t\t\t/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\r\n\t\t\tdecodeURIComponent\r\n\t\t)\r\n\t}\r\n};\r\n\r\nfunction init (converter, defaultAttributes) {\r\n\tfunction set (key, value, attributes) {\r\n\t\tif (typeof document === 'undefined') {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tattributes = assign({}, defaultAttributes, attributes);\r\n\r\n\t\tif (typeof attributes.expires === 'number') {\r\n\t\t\tattributes.expires = new Date(Date.now() + attributes.expires * 864e5);\r\n\t\t}\r\n\t\tif (attributes.expires) {\r\n\t\t\tattributes.expires = attributes.expires.toUTCString();\r\n\t\t}\r\n\r\n\t\tkey = encodeURIComponent(key)\r\n\t\t\t.replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\r\n\t\t\t.replace(/[()]/g, escape);\r\n\r\n\t\tlet stringifiedAttributes = '';\r\n\t\tfor (let attributeName in attributes) {\r\n\t\t\tif (!attributes[attributeName]) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\tstringifiedAttributes += '; ' + attributeName;\r\n\r\n\t\t\tif (attributes[attributeName] === true) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\t// Considers RFC 6265 section 5.2:\r\n\t\t\t// ...\r\n\t\t\t// 3. If the remaining unparsed-attributes contains a %x3B (\";\")\r\n\t\t\t// character:\r\n\t\t\t// Consume the characters of the unparsed-attributes up to,\r\n\t\t\t// not including, the first %x3B (\";\") character.\r\n\t\t\t// ...\r\n\t\t\tstringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\r\n\t\t}\r\n\r\n\t\treturn (document.cookie =\r\n\t\t\tkey + '=' + converter.write(value, key) + stringifiedAttributes)\r\n\t}\r\n\r\n\tfunction get (key) {\r\n\t\tif (typeof document === 'undefined' || (arguments.length && !key)) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\t// To prevent the for loop in the first place assign an empty array\r\n\t\t// in case there are no cookies at all.\r\n\t\tlet cookies = document.cookie ? document.cookie.split('; ') : [];\r\n\t\tlet jar = {};\r\n\t\tfor (let i = 0; i < cookies.length; i++) {\r\n\t\t\tlet parts = cookies[i].split('=');\r\n\t\t\tlet value = parts.slice(1).join('=');\r\n\r\n\t\t\ttry {\r\n\t\t\t\tlet foundKey = decodeURIComponent(parts[0]);\r\n\t\t\t\tjar[foundKey] = converter.read(value, foundKey);\r\n\r\n\t\t\t\tif (key === foundKey) {\r\n\t\t\t\t\tbreak\r\n\t\t\t\t}\r\n\t\t\t} catch (e) {}\r\n\t\t}\r\n\r\n\t\treturn key ? jar[key] : jar\r\n\t}\r\n\r\n\treturn Object.create({\r\n\t\t\tset: set,\r\n\t\t\tget: get,\r\n\t\t\tremove: function (key, attributes) {\r\n\t\t\t\tset(\r\n\t\t\t\t\tkey,\r\n\t\t\t\t\t'',\r\n\t\t\t\t\tassign({}, attributes, {\r\n\t\t\t\t\t\texpires: -1\r\n\t\t\t\t\t})\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\twithAttributes: function (attributes) {\r\n\t\t\t\treturn init(this.converter, assign({}, this.attributes, attributes))\r\n\t\t\t},\r\n\t\t\twithConverter: function (converter) {\r\n\t\t\t\treturn init(assign({}, this.converter, converter), this.attributes)\r\n\t\t\t}\r\n\t\t},\r\n\t\t{\r\n\t\t\tattributes: { value: Object.freeze(defaultAttributes) },\r\n\t\t\tconverter: { value: Object.freeze(converter) }\r\n\t\t}\r\n\t)\r\n}\r\n\r\nlet api = init(defaultConverter, { path: '/' });\r\n\r\nexport default api;","import BaseModule from \"../../base-module\";\r\nimport {isDisabled, mergeDeepObject} from \"../../../utils/js/functions\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport Cookies from \"../../../utils/js/dom/cookie\";\r\nimport {dismissTrigger} from \"../../module-fn\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'lawcookie';\r\nconst NAME_KEY = 'vg.lawcookie';\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\n\r\nconst SELECTOR_DATA_TOGGLE = '[data-vg-toggle=\"lawcookie\"]';\r\nconst SELECTOR_DATA_TOGGLE_CLEAR = '[data-vg-toggle=\"lawcookie-clear\"]';\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nclass VGLawCookie extends BaseModule {\r\n\tstatic sParams = {};\r\n\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tstorage: 'local', // cookie or local\r\n\t\t\tdelay: 500,\r\n\t\t\tcookie: {\r\n\t\t\t\tname: 'lawCookie',\r\n\t\t\t\tvalue: 'yes',\r\n\t\t\t\tattributes: {}\r\n\t\t\t},\r\n\t\t\tanimation: {\r\n\t\t\t\tenable: true,\r\n\t\t\t\tin: 'animate__fadeInUp',\r\n\t\t\t\tout: 'animate__fadeOutDown',\r\n\t\t\t\tdelay: 800,\r\n\t\t\t},\r\n\t\t\tajax: {\r\n\t\t\t\troute: '',\r\n\t\t\t\ttarget: '',\r\n\t\t\t\tmethod: 'get'\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tVGLawCookie.sParams = this._params;\r\n\r\n\t\tthis._params.animation.delay = !this._params.animation.enable ? 0 : this._params.animation.delay;\r\n\t\tthis._animation(this._element, VGLawCookie.NAME_KEY, this._params.animation);\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\ttoggle() {\r\n\t\treturn !this._isShown() ? this.show() : this.hide();\r\n\t}\r\n\r\n\t_isShown() {\r\n\t\treturn this.storage().get();\r\n\t}\r\n\r\n\tshow() {\r\n\t\tif (isDisabled(this._element)) return;\r\n\r\n\t\tconst showEvent = EventHandler.trigger(this._element, EVENT_KEY_SHOW, {})\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tthis._element.classList.add(CLASS_NAME_SHOW);\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_SHOWN, {});\r\n\t\t}\r\n\t\tthis._queueCallback(completeCallBack, this._element, true, this._params.delay)\r\n\t}\r\n\r\n\thide() {\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE);\r\n\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis._element.classList.remove(CLASS_NAME_SHOW);\r\n\r\n\t\t\tconst completeCallback = () => EventHandler.trigger(this._element, EVENT_KEY_HIDDEN);\r\n\t\t\tthis._queueCallback(completeCallback, this._element, true);\r\n\t\t}, this._params.animation.delay);\r\n\t}\r\n\r\n\tstorage() {\r\n\t\tthis._storage = {\r\n\t\t\tisCookie: this._params.storage === 'cookie',\r\n\t\t\tstorage: this._params.storage === 'cookie' ? Cookies : localStorage,\r\n\t\t\tname: this._params.cookie.name,\r\n\t\t\tvalue: this._params.cookie.value,\r\n\t\t\tattributes: this._params.cookie.attributes,\r\n\t\t}\r\n\r\n\t\treturn this;\r\n\t}\r\n\r\n\tget() {\r\n\t\tif (this._storage.isCookie) {\r\n\t\t\treturn this._storage.storage.get(this._storage.name);\r\n\t\t} else {\r\n\t\t\treturn this._storage.storage.getItem(this._storage.name);\r\n\t\t}\r\n\t}\r\n\r\n\tset() {\r\n\t\tif (this._storage.isCookie) {\r\n\t\t\tthis._storage.storage.set(this._storage.name, this._storage.value, this._storage.attributes);\r\n\t\t} else {\r\n\t\t\tthis._storage.storage.setItem(this._storage.name, this._storage.value);\r\n\t\t}\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\tstatic reset() {\r\n\t\tCookies.remove(VGLawCookie.sParams.cookie.name);\r\n\t\tlocalStorage.clear();\r\n\t\tlocation.reload();\r\n\t}\r\n\r\n\t/**\r\n\t * Инициализация\r\n\t * @param element\r\n\t * @param params\r\n\t */\r\n\tstatic init(element, params = {}) {\r\n\t\tconst instance = VGLawCookie.getOrCreateInstance(element, params);\r\n\t\tinstance.toggle();\r\n\t}\r\n}\r\n\r\ndismissTrigger(VGLawCookie);\r\n\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\r\n\tif (['A', 'AREA'].includes(this.tagName)) {\r\n\t\tevent.preventDefault()\r\n\t}\r\n\r\n\tif (isDisabled(this)) return;\r\n\r\n\tconst element = Selectors.find('#vg-lawcookie');\r\n\tif (!element) return;\r\n\r\n\tconst instance = VGLawCookie.getOrCreateInstance(element);\r\n\tinstance.storage().set();\r\n\tinstance.hide();\r\n});\r\n\r\nEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CLEAR, function (event) {\r\n\tif (['A', 'AREA'].includes(this.tagName)) {\r\n\t\tevent.preventDefault()\r\n\t}\r\n\r\n\tif (isDisabled(this)) return;\r\n\r\n\tconst element = Selectors.find('#vg-lawcookie');\r\n\tif (!element) return;\r\n\r\n\tconst instance = VGLawCookie.getOrCreateInstance(element);\r\n\tinstance.dispose();\r\n\r\n\tlocation.reload();\r\n});\r\n\r\nexport default VGLawCookie;","import BaseModule from \"../../base-module\";\r\nimport {\r\n\tisDisabled,\r\n\tisEmptyObj, isObject,\r\n\tmergeDeepObject,\r\n\tnoop,\r\n\tnormalizeData,\r\n\ttransliterate\r\n} from \"../../../utils/js/functions\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'select';\r\nconst NAME_KEY = 'vg.select';\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_ACTIVE = 'active';\r\nconst CLASS_NAME_CONTAINER = 'vg-select';\r\nconst CLASS_NAME_DROPDOWN = 'vg-select-dropdown';\r\nconst CLASS_NAME_LIST = 'vg-select-list';\r\nconst CLASS_NAME_OPTION = 'vg-select-list--option';\r\nconst CLASS_NAME_OPTGROUP = 'vg-select-list--optgroup';\r\nconst CLASS_NAME_OPTGROUP_TITLE = 'vg-select-list--optgroup-title';\r\nconst CLASS_NAME_CURRENT = 'vg-select-current';\r\nconst CLASS_NAME_PLACEHOLDER = 'vg-select-current--placeholder';\r\nconst CLASS_NAME_SEARCH = 'vg-select-search';\r\n\r\nconst EVENT_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\nconst EVENT_KEY_UP_DATA_API = `keyup.${NAME_KEY}.data.api`;\r\nconst EVENT_RESET_DATA_API = `reset.${NAME_KEY}.data.api`;\r\nconst EVENT_KEY_CHANGE = `${NAME_KEY}.change`;\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_KEY_SHOWN = `${NAME_KEY}.shown`;\r\n\r\nconst SELECTOR_DATA_TOGGLE = '[data-vg-toggle=\"select\"]';\r\nconst SELECTOR_OPTION_TOGGLE = '[data-vg-toggle=\"select-option\"]';\r\nconst SELECTOR_SEARCH_TOGGLE = '[name=vg-select-search]';\r\n\r\n\r\nlet observerTimout;\r\n\r\nclass VGSelect extends BaseModule {\r\n\tconstructor(element, params = {}) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = this._getParams(element, mergeDeepObject({\r\n\t\t\tsearch: false,\r\n\t\t\tplaceholder: '',\r\n\t\t}, params));\r\n\r\n\t\telement.parentElement.style.position = 'relative';\r\n\r\n\t\tthis._drop = Selectors.find('.' + CLASS_NAME_DROPDOWN, this._element);\r\n\t\tthis.refresh();\r\n\t}\r\n\r\n\tstatic get NAME() {\r\n\t\treturn NAME;\r\n\t}\r\n\r\n\tstatic get NAME_KEY() {\r\n\t\treturn NAME_KEY;\r\n\t}\r\n\r\n\tstatic buildListOptions(selector, drop) {\r\n\t\tlet options = selector.options,\r\n\t\t\tlist = document.createElement('ul');\r\n\r\n\t\tlist.classList.add(CLASS_NAME_LIST);\r\n\r\n\t\tlet optGroup = selector.querySelectorAll('optgroup');\r\n\r\n\t\tif (optGroup.length) {\r\n\t\t\tlet isSelected = false;\r\n\t\t\t[...optGroup].forEach(function (el) {\r\n\t\t\t\tlet olOptGroup = document.createElement('ol');\r\n\t\t\t\tolOptGroup.classList.add(CLASS_NAME_OPTGROUP);\r\n\r\n\t\t\t\tlet liLabel = document.createElement('li');\r\n\t\t\t\tliLabel.innerHTML = el.label.trim();\r\n\t\t\t\tliLabel.classList.add(CLASS_NAME_OPTGROUP_TITLE)\r\n\r\n\t\t\t\tolOptGroup.prepend(liLabel)\r\n\r\n\t\t\t\tlet optGroupOptions = Selectors.findAll('option', el);\r\n\r\n\t\t\t\tcreateLi(optGroupOptions, olOptGroup, isSelected);\r\n\r\n\t\t\t\tlist.append(olOptGroup);\r\n\t\t\t\tisSelected = true;\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tlet isSelected = false;\r\n\t\t\tcreateLi(options, list, isSelected);\r\n\t\t}\r\n\r\n\t\tdrop.append(list);\r\n\r\n\t\treturn list;\r\n\r\n\t\tfunction createLi(options, list, isSelected) {\r\n\t\t\tlet i = 0;\r\n\t\t\tfor (const option of options) {\r\n\t\t\t\tlet li = document.createElement('li');\r\n\r\n\t\t\t\tli.innerHTML = option.innerHTML.trim().replace(/<\\/[^>]+(>|$)/g, \"\")\r\n\t\t\t\tli.dataset.value = Manipulator.get(option, 'value');\r\n\t\t\t\tli.classList.add(CLASS_NAME_OPTION);\r\n\r\n\t\t\t\tManipulator.set(li, 'data-vg-toggle', 'select-option');\r\n\r\n\t\t\t\tlet liData = Manipulator.get(option);\r\n\t\t\t\tif (!isEmptyObj(liData)) {\r\n\t\t\t\t\tfor (const key of Object.keys(liData)) {\r\n\t\t\t\t\t\tManipulator.set(li, 'data-' + key, liData[key]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (i === selector.selectedIndex && !isSelected) {\r\n\t\t\t\t\tli.classList.add('selected');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (Manipulator.has(option, 'disabled')) li.classList.add('disabled');\r\n\t\t\t\tif (Manipulator.has(option, 'hidden')) li.classList.add('hidden');\r\n\r\n\t\t\t\tlist.append(li);\r\n\r\n\t\t\t\ti++;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstatic build(selector, reBuild) {\r\n\t\tlet option_selected,\r\n\t\t\tplaceholder = selector.dataset.placeholder || '',\r\n\t\t\tisSearch = selector.dataset.search || false;\r\n\r\n\t\tif (selector.dataset?.inited === 'true' && !reBuild) {\r\n\t\t\treturn;\r\n\t\t} else if (reBuild) {\r\n\t\t\tVGSelect.destroy(selector);\r\n\t\t}\r\n\r\n\t\tif (placeholder && selector.selectedIndex === 0) {\r\n\t\t\toption_selected = '<span class=\"'+ CLASS_NAME_PLACEHOLDER +'\">' + placeholder + '<span>';\r\n\t\t} else {\r\n\t\t\toption_selected = selector.options[selector.selectedIndex].innerText;\r\n\t\t}\r\n\r\n\t\t// Создаем основной элемент с классами селекта\r\n\t\tlet classes = Manipulator.get(selector,'class'),\r\n\t\t\telement = document.createElement('div');\r\n\r\n\t\tclasses = classes.split(' ');\r\n\r\n\t\tfor (const _class of classes) {\r\n\t\t\telement.classList.add(_class)\r\n\t\t}\r\n\r\n\t\tif (Manipulator.has(selector, 'disabled')) element.classList.add('disabled');\r\n\r\n\t\tlet elData = Manipulator.get(selector);\r\n\t\tif (!isEmptyObj(elData)) {\r\n\t\t\tfor (const key of Object.keys(elData)) {\r\n\t\t\t\tManipulator.set(element,'data-' + key, elData[key]);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// Создаем элемент с отображением выбранного варианта\r\n\t\tlet current = document.createElement('div');\r\n\t\tcurrent.classList.add(CLASS_NAME_CURRENT);\r\n\t\tManipulator.set(current, 'data-vg-toggle', 'select');\r\n\t\tManipulator.set(current, 'aria-expanded', 'false');\r\n\t\tcurrent.innerHTML = option_selected.trim();\r\n\t\telement.append(current);\r\n\r\n\t\t// Создаем элемент выпадающего списка\r\n\t\tlet dropdown = document.createElement('div');\r\n\t\tdropdown.classList.add(CLASS_NAME_DROPDOWN);\r\n\t\telement.append(dropdown);\r\n\r\n\t\t// Создаем список и варианты селекта\r\n\t\tVGSelect.buildListOptions(selector, dropdown);\r\n\r\n\t\t// Добавляем все созданный контейнер после селекта\r\n\t\tselector.insertAdjacentElement('afterend', element);\r\n\r\n\t\t// помечаем элемент инициализированным\r\n\t\tselector.dataset.inited = 'true';\r\n\r\n\t\tif (isSearch) {\r\n\t\t\tlet search_container = document.createElement('div');\r\n\t\t\tsearch_container.classList.add(CLASS_NAME_SEARCH);\r\n\r\n\t\t\tlet input = document.createElement('input');\r\n\t\t\tManipulator.set(input, 'name', 'vg-select-search');\r\n\t\t\tManipulator.set(input, 'type', 'text');\r\n\t\t\tManipulator.set(input, 'placeholder', 'Поиск...');\r\n\r\n\t\t\tsearch_container.append(input);\r\n\t\t\tdropdown.prepend(search_container);\r\n\t\t}\r\n\r\n\t\treturn element;\r\n\t}\r\n\r\n\ttoggle(relatedTarget) {\r\n\t\treturn !this._isShown() ? this.show(relatedTarget) : this.hide();\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\t\tif (isDisabled(this._element)) return;\r\n\r\n\t\tconst showEvent = EventHandler.trigger(this._element, EVENT_KEY_SHOW, { relatedTarget })\r\n\t\tif (showEvent.defaultPrevented) return;\r\n\r\n\t\tif ('ontouchstart' in document.documentElement) {\r\n\t\t\tfor (const element of [].concat(...document.body.children)) {\r\n\t\t\t\tEventHandler.on(element, 'mouseover', noop);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis._element.classList.add(CLASS_NAME_SHOW);\r\n\r\n\t\tif (this._params.search) {\r\n\t\t\tlet input = Selectors.find('input', this._element);\r\n\t\t\tif (input) input.focus();\r\n\t\t}\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tthis._element.classList.add(CLASS_NAME_ACTIVE);\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_SHOWN, { relatedTarget });\r\n\t\t}\r\n\r\n\t\tthis._queueCallback(completeCallBack, this._drop, true, 50)\r\n\t}\r\n\r\n\thide() {\r\n\t\tif (isDisabled(this._element) || !this._isShown()) return;\r\n\r\n\t\tthis._completeHide();\r\n\t}\r\n\r\n\t_completeHide() {\r\n\t\tconst hideEvent = EventHandler.trigger(this._element, EVENT_KEY_HIDE, {})\r\n\t\tif (hideEvent.defaultPrevented) return;\r\n\r\n\t\tthis._element.classList.remove(CLASS_NAME_ACTIVE);\r\n\t\tlet toggle = Selectors.find(SELECTOR_DATA_TOGGLE, this._element);\r\n\t\tManipulator.set(toggle, 'aria-expanded', 'false');\r\n\r\n\t\tif ('ontouchstart' in document.documentElement) {\r\n\t\t\tfor (const element of [].concat(...document.body.children)) {\r\n\t\t\t\tEventHandler.off(element, 'mouseover', noop);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst completeCallback = () => {\r\n\t\t\tthis._element.classList.remove(CLASS_NAME_SHOW);\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_HIDDEN, {});\r\n\t\t}\r\n\t\tthis._queueCallback(completeCallback, this._drop, true, 10);\r\n\t}\r\n\r\n\t_isShown() {\r\n\t\treturn this._element.classList.contains(CLASS_NAME_SHOW);\r\n\t}\r\n\r\n\trefresh() {\r\n\t\tconst select = this._element.previousSibling;\r\n\r\n\t\tlet observer = new MutationObserver(() => {\r\n\t\t\tclearTimeout(observerTimout);\r\n\t\t\tobserverTimout = setTimeout(() => {\r\n\t\t\t\tVGSelect.build(select, true);\r\n\t\t\t}, 100);\r\n\t\t});\r\n\r\n\t\tobserver.observe(select, {\r\n\t\t\tattributeFilter: ['disabled', 'required', 'style', 'hidden'],\r\n\t\t\tchildList: true,\r\n\t\t\tsubtree: true,\r\n\t\t\tcharacterDataOldValue: true,\r\n\t\t});\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\tstatic destroy(select) {\r\n\t\tlet element = select.nextElementSibling;\r\n\r\n\t\tif (element) {\r\n\t\t\tif (element.classList.contains(CLASS_NAME_CONTAINER)) {\r\n\t\t\t\telement.remove();\r\n\r\n\t\t\t\tselect.selectedIndex = 0;\r\n\t\t\t\t[...select.querySelectorAll('option')].forEach(function (el, index) {\r\n\t\t\t\t\tif (el.hasAttribute('selected')) {\r\n\t\t\t\t\t\tselect.selectedIndex = index;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tstatic hideOpenToggles(event) {\r\n\t\tconst openToggles = Selectors.findAll('.vg-select:not(.disabled):not(:disabled).show');\r\n\r\n\t\tfor (const toggle of openToggles) {\r\n\t\t\tconst context = VGSelect.getInstance(toggle);\r\n\t\t\tif (!context) continue;\r\n\r\n\t\t\tif (event.target.closest('.' + CLASS_NAME_CONTAINER) === context._element) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst composedPath = event.composedPath();\r\n\t\t\tif (composedPath.includes(context._element)) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\tconst relatedTarget = { relatedTarget: context._element }\r\n\r\n\t\t\tif (event.type === 'click') {\r\n\t\t\t\trelatedTarget.clickEvent = event\r\n\t\t\t}\r\n\r\n\t\t\tcontext._completeHide(relatedTarget)\r\n\t\t}\r\n\t}\r\n\r\n\tstatic clearDrops(event) {\r\n\t\tif (event.button === 2 || (event.type === 'keyup' && event.key !== 'Tab')) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tVGSelect.hideOpenToggles(event)\r\n\t}\r\n\r\n\tstatic changeSelector(select, value, data = {}) {\r\n\t\tif (!isObject(data) && isEmptyObj(data)) return;\r\n\r\n\t\tselect.value = normalizeData(value);\r\n\t\tEventHandler.trigger(select, EVENT_KEY_CHANGE, {data: data});\r\n\t\tEventHandler.trigger(select, 'change', {data: data});\r\n\t}\r\n\r\n\t/**\r\n\t * Инициализация\r\n\t * @param element\r\n\t * @param params\r\n\t * @param isRebuild\r\n\t */\r\n\tstatic init(element, params = {}, isRebuild = false) {\r\n\t\tlet elm = VGSelect.build(element);\r\n\t\tVGSelect.getOrCreateInstance(elm, params);\r\n\t}\r\n}\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, VGSelect.clearDrops);\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function () {\r\n\tconst target = this.closest('.' + CLASS_NAME_CONTAINER);\r\n\r\n\tManipulator.set(this, 'aria-expanded', true);\r\n\r\n\tconst alreadyOpen = Selectors.find('.vg-select.show')\r\n\tif (alreadyOpen && alreadyOpen !== target) {\r\n\t\tVGSelect.getInstance(alreadyOpen).hide();\r\n\t}\r\n\r\n\tconst instance = VGSelect.getOrCreateInstance(target);\r\n\tinstance.toggle(this);\r\n});\r\n\r\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_OPTION_TOGGLE, function (e) {\r\n\tlet el = e.target;\r\n\r\n\tif (!el.classList.contains('disabled')) {\r\n\t\tlet container = el.closest('.' + CLASS_NAME_CONTAINER),\r\n\t\t\toptions = container.querySelectorAll('.' + CLASS_NAME_OPTION);\r\n\r\n\t\tif (options.length) {\r\n\t\t\tfor (const option of options) {\r\n\t\t\t\toption.classList.remove('selected');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tel.classList.add('selected');\r\n\r\n\t\tcontainer.querySelector('.' + CLASS_NAME_CURRENT).innerText = el.innerText;\r\n\t\tcontainer.classList.remove('show');\r\n\r\n\t\tlet select = container.previousSibling;\r\n\t\tVGSelect.changeSelector(select, el.dataset.value, {value: el.dataset.value, title: el.innerHTML})\r\n\t}\r\n});\r\n\r\nEventHandler.on(document, EVENT_KEY_UP_DATA_API, SELECTOR_SEARCH_TOGGLE, function (e) {\r\n\tlet el = this;\r\n\r\n\tlet selectList = el?.closest('.' + CLASS_NAME_DROPDOWN).querySelector('.' + CLASS_NAME_LIST);\r\n\tif (selectList) {\r\n\t\tlet options = [...selectList.querySelectorAll('.' + CLASS_NAME_OPTION)],\r\n\t\t\toptionsGroup = [...selectList.querySelectorAll('.' + CLASS_NAME_OPTGROUP)],\r\n\t\t\tvalue = el?.value;\r\n\r\n\t\toptions = options.concat(optionsGroup);\r\n\r\n\t\tfor (const option of options) {\r\n\t\t\tManipulator.show(option);\r\n\t\t}\r\n\r\n\t\tif (value.length) {\r\n\t\t\tvalue = value.trim();\r\n\t\t\tvalue = value.toLowerCase();\r\n\t\t\tvalue = transliterate(value, true);\r\n\r\n\t\t\tfor (const option of options) {\r\n\t\t\t\tlet text = option.innerText.toLowerCase();\r\n\r\n\t\t\t\tif (text.indexOf(value) === -1) Manipulator.hide(option);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n});\r\n\r\nEventHandler.on(document, EVENT_RESET_DATA_API, 'form', function () {\r\n\tSelectors.findAll('select.' + CLASS_NAME_CONTAINER, this).forEach(el => {\r\n\t\tVGSelect.build(el, true)\r\n\t});\r\n});\r\n\r\n\r\nexport default VGSelect;"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","isEmptyObj","isElement","object","isObject","nodeType","isDisabled","element","Node","ELEMENT_NODE","classList","contains","disabled","hasAttribute","getAttribute","normalizeData","Number","toString","JSON","parse","decodeURIComponent","mergeDeepObject","objects","reduce","prev","keys","forEach","pVal","oVal","Array","isArray","concat","execute","possibleCallback","args","defaultValue","TRANSITION_END","reflow","offsetHeight","noop","makeRandomString","length","result","counter","charAt","Math","floor","characters","random","isRTL","document","documentElement","dir","getSelector","selector","hrefAttribute","includes","startsWith","split","trim","map","sel","window","CSS","escape","replace","match","id","parseSelector","join","Selectors","find","Element","querySelector","findAll","container","querySelectorAll","getSelectorFromElement","getElementFromSelector","getMultipleElementsFromSelector","elementMap","Map","set","instance","has","instanceMap","size","console","error","from","remove","delete","Manipulator","nameAttribute","isRemoveDataName","elmBase","attributes","arr","filter","at","test","name","v","slice","getAttributeNames","acc","setAttribute","removeAttribute","hide","el","style","display","show","state","constructor","params","this","_params","merge","fromElement","mParams","indexOf","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","Set","makeEventUid","uid","getElementEvents","findHandler","events","callable","delegationSelector","values","event","normalizeParameters","originalTypeEvent","handler","delegationFunction","isDelegated","typeEvent","addHandler","oneOff","wrapFunction","fn","relatedTarget","delegateTarget","handlers","previousFunction","domElements","target","parentNode","domElement","hydrateObj","EventHandler","off","type","apply","bootstrapDelegationHandler","bootstrapHandler","addEventListener","removeHandler","removeEventListener","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","entries","meta","configurable","on","one","inNamespace","isNamespace","elementEvent","keyHandlers","trigger","evt","Event","bubbles","cancelable","dispatchEvent","getSVG","success","waiting","dots","cross","dismissTrigger","module","method","clickEvent","EVENT_KEY","NAME","tagName","preventDefault","closest","getOrCreateInstance","Ajax","x","XMLHttpRequest","xhr","versions","i","ActiveXObject","e","send","url","callback","data","async","undefined","open","setRequestHeader","onreadystatechange","readyState","status","text","statusText","response","responseText","code","query","push","encodeURIComponent","post","enable","in","out","delay","classes","animated","_element","_name_key","add","_triggers","Error","Data","NAME_KEY","_getParams","Params","dispose","propertyName","getOwnPropertyNames","_route","_this","$content","setData","innerHTML","ajax","route","loader","_dismissElement","button","insertAdjacentHTML","_queueCallback","isAnimated","timeOutMs","transitionElement","waitForTransition","emulatedDuration","transitionDuration","transitionDelay","getComputedStyle","floatTransitionDuration","parseFloat","floatTransitionDelay","getTransitionDurationFromElement","called","setTimeout","triggerTransitionEnd","executeAfterTransition","_animation","Animation","getInstance","DATA_KEY","append","body","paddingRight","documentWidth","clientWidth","abs","innerWidth","getWidth","overflow","destroy","CLASS_NAME","CLASS_NAME_FADE","Backdrop","_append","_destroy","backdrop","createElement","Overflow","CLASS_NAME_SHOW","CLASS_NAME_OPEN","EVENT_KEY_HIDE","EVENT_KEY_HIDDEN","EVENT_KEY_SHOW","EVENT_KEY_SHOWN","EVENT_KEY_LOADED","EVENT_KEY_KEYDOWN_DISMISS","EVENT_KEY_HIDE_PREVENTED","EVENT_KEY_CLICK_DATA_API","VGSidebar","BaseModule","super","keyboard","animation","_addEventListeners","toggle","_isShown","stats","defaultPrevented","completeCallBack","completeCallback","alreadyOpen","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_DEEPER_CHILDREN","SELECTOR_DATA_TOGGLE","VGCollapse","parent","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElement","_initializeChildren","_addAriaAndCollapsedClass","activeChildren","_getFirstLevelChildren","activeInstance","height","complete","getBoundingClientRect","triggerArray","isOpen","_changeStateButton","children","selected","breakpoints","xs","sm","md","lg","xl","xxl","xxxl","check","define","checkMobileOrTablet","a","navigator","userAgent","vendor","opera","windowWidth","responsive_size","_checkResponsiveClass","point","loc","current_responsive_size","XXXL","XXL","XL","LG","MD","SM","XS","CLASS_NAME_ACTIVE","EVENT_MOUSEOVER_DATA_API","EVENT_MOUSEOUT_DATA_API","EVENT_CLICK_DATA_API","EVENT_KEYUP_DATA_API","EVENT_RESIZE_DATA_API","VGNav","breakpoint","placement","hamburgerActive","hamburgerAlways","hamburger","wrapper","active","expand","cloned","hover","flip","position","collapse","always","title","timeoutAnimation","_navigation","navigation","movedLinks","$links","elm","build","Responsive","mTitle","$dropdown_a","width_navigation_responsive","width_all_links_responsive","$dots","_dots","$a","$linkStyle","paddingLeft","$link","width","insertBefore","appendChild","splice","$d","$dropdown","link","prepend","setCollapse","afterInit","drop","firstElementChild","$drop","right","N_right","$ul","$el","setDropPosition","index","previousElementSibling","init","drops","currentElem","hideOpenDrops","clearDrops","click","self","isFirst","getClientRects","elementIsVisible","getPropertyValue","closedDetails","summary","isVisible","vgNavSidebar","getElementById","openToggles","context","arg","_getPlacement","_parent","top","left","isFixed","bounds","styles","TARGET_CONTAINER","EVENT_KEYDOWN_DATA_API","VGDropdown","defaultParams","offset","_drop","_isPlacement","_setPlacement","_completeHide","Placement","transform","paddingTop","hideOpenToggles","keydownHandler","composedPath","isInput","isEscapeEvent","isUpOrDownEvent","getToggleButton","matches","stopPropagation","focus","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","PROPERTY_PADDING","PROPERTY_MARGIN","_disableOverFlow","_setElementAttributes","calculatedValue","reset","_resetElementAttributes","isOverflowing","_saveInitialAttribute","styleProperty","scrollbarWidth","_applyManipulationCallback","setProperty","actualValue","removeProperty","callBack","CLASS_NAME_STATIC","EVENT_KEY_RESIZE","EVENT_KEY_MOUSEDOWN_DISMISS","EVENT_KEY_CLICK_DISMISS","VGModal","fields","general","dialog","content","header","footer","_button","_dialog","_scrollBar","ScrollBarHelper","btnClose","_addFieldsInModal","_adjustDialog","_showElement","openedModals","_hideModal","_isAnimatedFade","_resetAdjustments","scrollTop","modalBody","transitionComplete","isModalOverflowing","scrollHeight","clientHeight","isBodyOverflowing","property","_triggerBackdropTransition","event2","initialOverflowY","overflowY","item","elements","showEvent","EVENT_SUBMIT_DATA_API","VGFormSender","redirect","validate","submit","timeout","alert","enabled","alertCollapse","alertModal","validation","wasValidate","toLowerCase","isBtnText","isJsonParse","isShowPass","request","_alertBefore","_alertError","_alertSuccess","location","href","getElementsByClassName","_statusButton","_jsonParse","btnSubmitText","btnText","$btnText","$btnTextSend","spinner","parserData","message","errors","_alertModal","_alertCollapse","bootstrap","Modal","mVG","$modal","$body","setDataRelationStatus","$collapse","$element","$alert","txt","t","view","icon","checkValidity","FormData","VGRollup","assign","arguments","source","converter","defaultAttributes","expires","Date","now","toUTCString","stringifiedAttributes","attributeName","cookie","write","create","cookies","jar","parts","foundKey","read","withAttributes","withConverter","freeze","path","VGLawCookie","static","storage","sParams","_storage","isCookie","Cookies","localStorage","getItem","setItem","clear","reload","CLASS_NAME_CONTAINER","CLASS_NAME_DROPDOWN","CLASS_NAME_LIST","CLASS_NAME_OPTION","CLASS_NAME_OPTGROUP","CLASS_NAME_CURRENT","EVENT_KEY_UP_DATA_API","EVENT_RESET_DATA_API","EVENT_KEY_CHANGE","observerTimout","VGSelect","search","placeholder","parentElement","refresh","buildListOptions","options","list","optGroup","isSelected","olOptGroup","liLabel","label","createLi","option","li","dataset","liData","selectedIndex","reBuild","option_selected","isSearch","inited","innerText","_class","elData","current","dropdown","insertAdjacentElement","search_container","input","select","previousSibling","MutationObserver","clearTimeout","observe","attributeFilter","childList","subtree","characterDataOldValue","nextElementSibling","changeSelector","isRebuild","selectList","optionsGroup","ru","en","toUpperCase","transliterate"],"sourceRoot":""}