vgapp 0.5.5 → 0.5.6
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.
package/build/vgapp.js.map
CHANGED
|
@@ -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/scrollbar.js","webpack://vg/./app/utils/js/components/overflow.js","webpack://vg/./app/utils/js/components/backdrop.js","webpack://vg/./app/modules/vgmodal/js/vgmodal.js","webpack://vg/./app/modules/vgalert/js/vgalert.js","webpack://vg/./app/modules/vgalert/index.js","webpack://vg/./app/modules/vgcollapse/js/vgcollapse.js","webpack://vg/./app/modules/vgcollapse/index.js","webpack://vg/./app/utils/js/components/placement.js","webpack://vg/./app/modules/vgdropdown/js/vgdropdown.js","webpack://vg/./app/modules/vgdropdown/index.js","webpack://vg/./app/utils/js/components/templater.js","webpack://vg/./app/modules/vgformsender/js/hideshowpass.js","webpack://vg/./app/modules/vgformsender/js/vgformsender.js","webpack://vg/./app/modules/vgformsender/index.js","webpack://vg/./app/utils/js/dom/cookie.js","webpack://vg/./app/modules/vglawcookie/js/vglawcookie.js","webpack://vg/./app/modules/vglawcookie/index.js","webpack://vg/./app/modules/vgloadmore/js/vgloadmore.js","webpack://vg/./app/modules/vgloadmore/index.js","webpack://vg/./app/modules/vgmodal/index.js","webpack://vg/./app/utils/js/components/responsive.js","webpack://vg/./app/modules/vgnav/js/vgnav.js","webpack://vg/./app/modules/vgnav/index.js","webpack://vg/./app/modules/vgrollup/js/vgrollup.js","webpack://vg/./app/modules/vgrollup/index.js","webpack://vg/./app/modules/vgselect/js/vgselect.js","webpack://vg/./app/modules/vgselect/index.js","webpack://vg/./app/modules/vgsidebar/js/vgsidebar.js","webpack://vg/./app/modules/vgsidebar/index.js","webpack://vg/./app/modules/vgspy/js/vgspy.js","webpack://vg/./app/modules/vgspy/index.js","webpack://vg/./app/modules/vgtabs/js/vgtabs.js","webpack://vg/./app/modules/vgtabs/index.js","webpack://vg/./app/modules/vgtoast/js/vgtoast.js","webpack://vg/./app/modules/vgtoast/index.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 {string} selector\r\n * @returns {string}\r\n */\r\nconst parseSelector = selector => {\r\n\tif (selector && window.CSS && window.CSS.escape) {\r\n\t\t// document.querySelector needs escaping to handle IDs (html5+) containing for instance /\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\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\nconst getElement = object => {\r\n\t// it's a jQuery object or a node element\r\n\tif (isElement(object)) {\r\n\t\treturn object.jquery ? object[0] : object\r\n\t}\r\n\r\n\tif (typeof object === 'string' && object.length > 0) {\r\n\t\treturn document.querySelector(parseSelector(object))\r\n\t}\r\n\r\n\treturn null\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\tif (!isObject) return;\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\n * @param {array} list The list of elements\r\n * @param activeElement The active element\r\n * @param shouldGetNext Choose to get next or previous element\r\n * @param isCycleAllowed\r\n * @return {Element|elem} The proper element\r\n */\r\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\r\n\tconst listLength = list.length\r\n\tlet index = list.indexOf(activeElement)\r\n\r\n\t// if the element does not exist in the list return an element\r\n\t// depending on the direction and if cycle is allowed\r\n\tif (index === -1) {\r\n\t\treturn !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\r\n\t}\r\n\r\n\tindex += shouldGetNext ? 1 : -1\r\n\r\n\tif (isCycleAllowed) {\r\n\t\tindex = (index + listLength) % listLength\r\n\t}\r\n\r\n\treturn list[Math.max(0, Math.min(index, listLength - 1))]\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, getElement, getNextActiveElement}","/**\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\tparents(element, selector) {\r\n\t\tconst parents = []\r\n\t\tlet ancestor = element.parentNode.closest(selector)\r\n\r\n\t\twhile (ancestor) {\r\n\t\t\tparents.push(ancestor)\r\n\t\t\tancestor = ancestor.parentNode.closest(selector)\r\n\t\t}\r\n\r\n\t\treturn parents\r\n\t},\r\n\r\n\tnext(element, selector) {\r\n\t\tlet next = element.nextElementSibling\r\n\r\n\t\twhile (next) {\r\n\t\t\tif (next.matches(selector)) {\r\n\t\t\t\treturn [next]\r\n\t\t\t}\r\n\r\n\t\t\tnext = next.nextElementSibling;\r\n\t\t}\r\n\r\n\t\treturn []\r\n\t},\r\n\r\n\tprev(element, selector) {\r\n\t\tlet previous = element.previousElementSibling\r\n\r\n\t\twhile (previous) {\r\n\t\t\tif (previous.matches(selector)) {\r\n\t\t\t\treturn [previous]\r\n\t\t\t}\r\n\r\n\t\t\tprevious = previous.previousElementSibling\r\n\t\t}\r\n\r\n\t\treturn []\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'popstate',\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 in data) {\r\n\t\t\t\tconsole.log(key)\r\n\t\t\t\tquery.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key]));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet uri = '';\r\n\t\tif (query.length) {\r\n\t\t\turi += url.includes('?') ? '&' : '?';\r\n\t\t\turi += query.join('&');\r\n\t\t}\r\n\r\n\t\tAjax.send(url + uri, 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\tduration: 800,\r\n\t\t}, params);\r\n\r\n\t\tthis.classes = {\r\n\t\t\tanimated: 'animate__animated',\r\n\t\t\tduration: 'animate__duration-' + this._params.duration\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\tthis._element.classList.add(this.classes.duration);\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\tthis._isLoaded = false;\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\tif (_this._isLoaded) return;\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\tif ('output' in _this._params.ajax && _this._params.ajax.output) {\r\n\t\t\t\tsetData('<div class=\"vg-loader\"></div>');\r\n\t\t\t}\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\tif ('once' in _this._params.ajax && _this._params.ajax.once) {\r\n\t\t\t\t_this._isLoaded = true;\r\n\t\t\t}\r\n\r\n\t\t\tif ('output' in _this._params.ajax && _this._params.ajax.output) {\r\n\t\t\t\tsetData(data.response);\r\n\t\t\t}\r\n\r\n\t\t\texecute(callback, [status, data, $content]);\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;","/**\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 {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 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\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\nconst EVENT_KEY_DOM_LOADED_DATA_API = `DOMContentLoaded.${NAME_KEY}.data.api`;\r\nconst EVENT_KEY_POPSTATE_DATA_API = `popstate.${NAME_KEY}.data.api`;\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\thash: false,\r\n\t\t\tcentered: 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\tloader: false,\r\n\t\t\t\tonce: false,\r\n\t\t\t\toutput: true,\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: 100,\r\n\t\t\t\tduration: 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\tif ('centered' in params && params.centered) {\r\n\t\t\tdialog.classList.add('vg-modal-dialog-centered');\r\n\t\t}\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\r\n\t\treturn 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\tif (this._params.hash) {\r\n\t\t\twindow.history.pushState(null, \"vg-sidebar-open\", \"#\" + this._element.id);\r\n\r\n\t\t\tEventHandler.on(window, EVENT_KEY_POPSTATE_DATA_API, () => {\r\n\t\t\t\tthis.hide();\r\n\t\t\t});\r\n\t\t}\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\tif (this._params.hash) {\r\n\t\t\thistory.pushState(\"\", document.title, window.location.pathname + window.location.search);\r\n\t\t}\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((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 + ']', this._element);\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\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\nEventHandler.on(document, EVENT_KEY_DOM_LOADED_DATA_API, function () {\r\n\tlet targetHash = window.location.hash.slice(1);\r\n\tif (targetHash) {\r\n\t\tlet target = Selectors.find('#' + targetHash);\r\n\t\tif (target && target.classList.contains('vg-modal')) {\r\n\t\t\tif (isDisabled(target)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst data = VGModal.getOrCreateInstance(target)\r\n\t\t\tdata.toggle();\r\n\t\t}\r\n\t}\r\n})\r\n\r\nexport default VGModal;","import BaseModule from \"../../base-module\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {isDisabled, makeRandomString, mergeDeepObject} from \"../../../utils/js/functions\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport VGModal from \"../../vgmodal/js/vgmodal\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'alert';\r\nconst NAME_KEY = 'vg.alert';\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"alert\"]';\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nlet IS_PROMISE = false;\r\n\r\nclass VGAlert 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\tmodal: {\r\n\t\t\t\tcentered: false,\r\n\t\t\t\tbackdrop: true,\r\n\t\t\t\toverflow: true,\r\n\t\t\t\tkeyboard: true,\r\n\t\t\t\tanimation: {\r\n\t\t\t\t\tenable: false,\r\n\t\t\t\t\tin: 'animate__rollIn',\r\n\t\t\t\t\tout: 'animate__rollOut',\r\n\t\t\t\t\tdelay: 0,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\ttoast: {\r\n\r\n\t\t\t},\r\n\t\t\telements: {\r\n\t\t\t\tbutton: ''\r\n\t\t\t},\r\n\t\t\tdialog: 'modal',\r\n\t\t\tmode: 'alert',\r\n\t\t}, params));\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 run(... args) {\r\n\r\n\t}\r\n\r\n\ttoggle(event) {\r\n\r\n\t}\r\n\r\n\tpromise(event) {\r\n\r\n\t}\r\n\r\n\t_build() {\r\n\t\tif (this._params.dialog === 'modal') {\r\n\t\t\treturn this._buildModal();\r\n\t\t}\r\n\t\tif (this._params.dialog === 'toast') {\r\n\t\t\treturn this._buildToast();\r\n\t\t}\r\n\t}\r\n\r\n\t_buildModal() {\r\n\t\tlet id = 'vg-alert-' + makeRandomString(),\r\n\t\t\t$modal = Selectors.find('.vg-alert-modal');\r\n\r\n\t\tif ($modal) $modal.remove();\r\n\r\n\t\treturn VGModal.build(id, this._params.modal, (self) => {\r\n\t\t\tlet element = self._element;\r\n\t\t\telement.classList.add('vg-alert-modal');\r\n\r\n\t\t\tlet $body = Selectors.find('.vg-modal-body', element);\r\n\t\t\tif ($body) {\r\n\t\t\t\tlet html = '<div class=\"message\">' + this._params.message + '</div>';\r\n\r\n\t\t\t\thtml += '<div class=\"buttons\">';\r\n\t\t\t\tif (this._params.elements.button) {\r\n\t\t\t\t\thtml += '<a href=\"#\" data-vg-dismiss=\"modal\" class=\"btn btn-primary\">'+ this._params.elements.button +'</a>';\r\n\t\t\t\t}\r\n\t\t\t\thtml += '</div>';\r\n\r\n\t\t\t\t$body.innerHTML = html;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t_buildToast() {\r\n\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\r\n});\r\n\r\n/*window.alert = (message) => {\r\n\tVGAlert.run(message);\r\n}*/\r\n\r\nexport default VGAlert;","// alert\r\nimport \"./scss/vgalert.scss\";\r\nimport VGAlert from \"./js/vgalert\";\r\n\r\nexport default VGAlert;","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\tonce: false,\r\n\t\t\t\toutput: true,\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;","import VGCollapse from \"./js/vgcollapse\";\r\n\r\nexport default VGCollapse;","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\tloader: false,\r\n\t\t\t\tonce: false,\r\n\t\t\t\toutput: true,\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;","import './scss/vgdropdown.scss';\r\nimport VGDropdown from \"./js/vgdropdown\";\r\n\r\nexport default VGDropdown;","import {execute, mergeDeepObject} from \"../functions\";\r\n\r\nconst TEMPLATES = [\r\n\t{type: 'pass-open', template: '<span data-vg-toggle=\"pass\" class=\"[[classes]]\" title=\"Показать / Скрыть\" data-bs-toggle=\"tooltip\"><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z\"/></svg></span>'},\r\n\t{type: 'pass-close', template: '<span data-vg-toggle=\"pass\" class=\"[[classes]]\" title=\"Показать / Скрыть\" data-bs-toggle=\"tooltip\"><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d=\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zm151 118.3C226 97.7 269.5 80 320 80c65.2 0 118.8 29.6 159.9 67.7C518.4 183.5 545 226 558.6 256c-12.6 28-36.6 66.8-70.9 100.9l-53.8-42.2c9.1-17.6 14.2-37.5 14.2-58.7c0-70.7-57.3-128-128-128c-32.2 0-61.7 11.9-84.2 31.5l-46.1-36.1zM394.9 284.2l-81.5-63.9c4.2-8.5 6.6-18.2 6.6-28.3c0-5.5-.7-10.9-2-16c.7 0 1.3 0 2 0c44.2 0 80 35.8 80 80c0 9.9-1.8 19.4-5.1 28.2zm9.4 130.3C378.8 425.4 350.7 432 320 432c-65.2 0-118.8-29.6-159.9-67.7C121.6 328.5 95 286 81.4 256c8.3-18.4 21.5-41.5 39.4-64.8L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5l-41.9-33zM192 256c0 70.7 57.3 128 128 128c13.3 0 26.1-2 38.2-5.8L302 334c-23.5-5.4-43.1-21.2-53.7-42.3l-56.1-44.2c-.2 2.8-.3 5.6-.3 8.5z\"/></svg></span>'},\r\n\t{type: 'loader', template: '<div class=\"vg-loader\"></div>'}\r\n]\r\n\r\n\r\nclass Templater {\r\n\tconstructor(el, params = {}) {\r\n\t\tif (!el) {\r\n\t\t\tthrow new Error('Element is required');\r\n\t\t}\r\n\r\n\t\tthis._element = el;\r\n\t\tthis._params = mergeDeepObject({\r\n\t\t\tinsert: 'afterend',\r\n\t\t\tclasses: []\r\n\t\t}, params);\r\n\t}\r\n\r\n\trender(content, callback) {\r\n\t\tlet tmpl = this.toHTML(content, callback);\r\n\r\n\t\tswitch (this._params.insert) {\r\n\t\t\tcase 'afterend':\r\n\t\t\t\tthis._element.insertAdjacentHTML('afterend', tmpl);\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\ttoHTML(content = '' | null, callback) {\r\n\t\tlet tmpl = '';\r\n\r\n\t\tfor (const tmplElement of TEMPLATES) {\r\n\t\t\tif (tmplElement.type === this._params.template) {\r\n\t\t\t\ttmpl = tmplElement.template;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!tmpl) return;\r\n\r\n\t\ttmpl = tmpl.replace('[[classes]]', this._params.classes.join(' '));\r\n\t\texecute(callback, [this._element, this._params, tmpl]);\r\n\r\n\t\treturn tmpl;\r\n\t}\r\n\r\n\tsetContent() {\r\n\r\n\t}\r\n}\r\n\r\nexport default Templater;","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} from \"../../../utils/js/functions\";\r\nimport Templater from \"../../../utils/js/components/templater\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'hideshowpass';\r\nconst NAME_KEY = 'vg.hideshowpass';\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"pass\"]';\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\n\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nclass VGHideShowPass extends BaseModule{\r\n\tconstructor(el, params = {}) {\r\n\t\tsuper(el, params);\r\n\r\n\t\tthis._params = this._getParams(el, mergeDeepObject({}, params));\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(relatedTarget);\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\t\tif (relatedTarget) this._params = this._getParams(relatedTarget, this._params);\r\n\r\n\t\tthis._element.classList.add(CLASS_NAME_SHOW);\r\n\t\trelatedTarget.remove();\r\n\t\tthis.build(true);\r\n\t\tManipulator.set(this._element, 'type', 'text');\r\n\t}\r\n\r\n\thide(relatedTarget) {\r\n\t\tthis._element.classList.remove(CLASS_NAME_SHOW);\r\n\t\trelatedTarget.remove();\r\n\t\tthis.build(false);\r\n\t\tManipulator.set(this._element, 'type', 'password');\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\tstatic init(el, params) {\r\n\t\tlet instance = VGHideShowPass.getOrCreateInstance(el, params);\r\n\t\tinstance.build(false);\r\n\t}\r\n\r\n\tbuild(isShow = false) {\r\n\t\tif (!isShow) {\r\n\t\t\tthis._params.template = 'pass-close';\r\n\t\t} else {\r\n\t\t\tthis._params.template = 'pass-open';\r\n\t\t}\r\n\r\n\t\tnew Templater(this._element, this._params).render();\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.prev(this, 'input');\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 instance = VGHideShowPass.getOrCreateInstance(target.shift())\r\n\tinstance.toggle(this);\r\n});\r\n\r\nexport default VGHideShowPass","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 {\r\n\texecute,\r\n\tisObject,\r\n\tisVisible,\r\n\tmakeRandomString,\r\n\tmergeDeepObject,\r\n\tnoop,\r\n\tnormalizeData\r\n} 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 VGHideShowPass from \"./hideshowpass\";\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\tresponse: {\r\n\t\t\t\tenabled: false,\r\n\t\t\t\terrors: false,\r\n\t\t\t\ttitle: '',\r\n\t\t\t\tmessage: '',\r\n\t\t\t},\r\n\t\t\tredirect: {\r\n\t\t\t\terror: '',\r\n\t\t\t\tsuccess: ''\r\n\t\t\t},\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\tpass: {\r\n\t\t\t\tenabled: true,\r\n\t\t\t\ttemplate: 'pass-open',\r\n\t\t\t\tclasses: ['vg-form-sender--hide-show-pass'],\r\n\t\t\t\tinsert: 'afterend'\r\n\t\t\t},\r\n\t\t\talert: {\r\n\t\t\t\tenabled: true,\r\n\t\t\t\ttype: 'modal',\r\n\t\t\t\terrors: true,\r\n\t\t\t\tdelay: 0\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\tcontent: 'vg-form-sender--content'\r\n\t\t\t},\r\n\t\t\tcallback: {\r\n\t\t\t\tafterInit: noop,\r\n\t\t\t\tafterSuccess: noop,\r\n\t\t\t\tafterError: noop,\r\n\t\t\t},\r\n\t\t\tinterceptors: {\r\n\t\t\t\tsuccess: false,\r\n\t\t\t\terror: false\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\t[... Selectors.findAll('input, textarea, select', this._element)].forEach((el) => {\r\n\t\t\tif (isVisible(el)) {\r\n\t\t\t\tel.parentElement.classList.add(this._params.classes.content)\r\n\t\t\t}\r\n\t\t});\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\tif (this._params.pass.enabled) {\r\n\t\t\t[... Selectors.findAll('input[type=\"password\"]', this._element)].forEach((el) => {\r\n\t\t\t\tVGHideShowPass.init(el, this._params.pass);\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\texecute(this._params.callback.afterInit, [this._element, this]);\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.response.enabled) {\r\n\t\t\t\tdata.response = _this._params.response;\r\n\t\t\t}\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\tif (_this._params.redirect.error) {\r\n\t\t\t\t\t\twindow.location.href = _this._params.redirect.error;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (!_this._params.interceptors.error) {\r\n\t\t\t\t\t\t\t_this._alertError(event, data);\r\n\t\t\t\t\t\t\texecute(_this._params.callback.afterError, [_this._element, _this, event, data]);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\texecute(_this._params.callback.afterError, [_this._element, _this, event, data]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (typeof status === 'string' && status === 'success') {\r\n\t\t\t\t\tif (_this._params.redirect.success) {\r\n\t\t\t\t\t\twindow.location.href = _this._params.redirect.success;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (!_this._params.interceptors.success) {\r\n\t\t\t\t\t\t\t_this._alertSuccess(event, data);\r\n\t\t\t\t\t\t\texecute(_this._params.callback.afterSuccess, [_this._element, _this, event, data]);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\texecute(_this._params.callback.afterSuccess, [_this._element, _this, event, data]);\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\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\r\n\t\t\t\tif (_this._params.alert.delay > 0) {\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tself.hide();\r\n\t\t\t\t\t}, _this._params.alert.delay)\r\n\t\t\t\t}\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\tlet collapse = VGCollapse.getOrCreateInstance($collapse, {toggle: false});\r\n\t\tcollapse.toggle();\r\n\r\n\t\tif (_this._params.alert.delay > 0) {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tcollapse.hide();\r\n\t\t\t}, _this._params.alert.delay)\r\n\t\t}\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 && this._params.alert.errors) {\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\tif (!title) txt += '<h4 class=\"vg-alert-content--title\">' + code + '</h4>';\r\n\t\t\t\t\t\telse txt += '<h4 class=\"vg-alert-content--title\">' + title + '</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 && this._params.alert.errors) {\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 './scss/vgformsender.scss';\r\nimport VGFormSender from \"./js/vgformsender\";\r\n\r\nexport default VGFormSender;","/*! 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\tloader: false,\r\n\t\t\t\tonce: false,\r\n\t\t\t\toutput: true,\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 './scss/vglawcookie.scss';\r\nimport VGLawCookie from \"./js/vglawcookie\";\r\n\r\nexport default VGLawCookie;","import BaseModule from \"../../base-module\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {execute, mergeDeepObject} from \"../../../utils/js/functions\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\n\r\nconst NAME = 'loadmore';\r\nconst NAME_KEY = 'vg.loadmore';\r\nconst CLASS_NAME_SHOW = 'show';\r\n\r\nconst SELECTOR_DATA_TOGGLE = '[data-vg-toggle=\"loadmore\"]';\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_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nclass VGLoadMore 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\tlimit: 0,\r\n\t\t\toffset: 0,\r\n\t\t\toutput: true,\r\n\t\t\tautohide: true,\r\n\t\t\tbutton: {\r\n\t\t\t\ttext: '',\r\n\t\t\t\tsend: 'Загружаем...'\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\tonce: false,\r\n\t\t\t\toutput: false,\r\n\t\t\t},\r\n\t\t}, params));\r\n\r\n\t\tthis.fOffset = this._params.offset;\r\n\r\n\t\tif (!this._params.button.text) {\r\n\t\t\tthis._params.button.text = this._element.innerHTML;\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(callback) {\r\n\t\tthis._params.ajax.data = {\r\n\t\t\tlimit: this._params.limit,\r\n\t\t\toffset: this._params.offset\r\n\t\t}\r\n\r\n\t\tif (this._params.button.send) {\r\n\t\t\tthis._element.innerHTML = this._params.button.send;\r\n\t\t}\r\n\r\n\t\tthis._route((status, data, target) => {\r\n\t\t\tif ('loader' in this._params.ajax && this._params.ajax.loader) {\r\n\t\t\t\tlet loader = Selectors.find('.vg-loader', target);\r\n\t\t\t\tif (loader) loader.remove();\r\n\t\t\t}\r\n\r\n\t\t\tif ('output' in this._params && this._params.output) {\r\n\t\t\t\ttarget.insertAdjacentHTML('beforeend', data.response);\r\n\t\t\t}\r\n\r\n\t\t\tthis._params.offset = this.fOffset + this._params.offset;\r\n\t\t\tthis._element.innerHTML = this._params.button.text;\r\n\r\n\t\t\tif ('autohide' in this._params && this._params.autohide) {\r\n\t\t\t\tif (!data.response) this._element.remove();\r\n\t\t\t}\r\n\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_LOADED, {stats: status, data: data});\r\n\t\t\texecute(callback, [this, data, target, status]);\r\n\t\t});\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 = this;\r\n\r\n\tif (['A', 'AREA'].includes(this.tagName)) event.preventDefault();\r\n\r\n\tconst instance = VGLoadMore.getOrCreateInstance(target);\r\n\tinstance.toggle();\r\n});\r\n\r\n\r\nexport default VGLoadMore;","import VGLoadMore from \"./js/vgloadmore\";\r\n\r\nexport default VGLoadMore","import './scss/vgmodal.scss';\r\nimport VGModal from \"./js/vgmodal\";\r\n\r\nexport default VGModal;","/**\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\tloader: false,\r\n\t\t\t\tonce: false,\r\n\t\t\t\toutput: true,\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 () {\r\n\tif (Selectors.find('.vg-nav')) {\r\n\t\tconst instance = VGNav.getOrCreateInstance('.vg-nav', {});\r\n\t\tinstance.build();\r\n\t}\r\n})\r\n\r\nexport default VGNav;","import './scss/vgnav.scss';\r\nimport VGNav from \"./js/vgnav\";\r\n\r\nexport default VGNav;","import BaseModule from \"../../base-module\";\r\nimport {execute, isDisabled, mergeDeepObject} from \"../../../utils/js/functions\";\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 = 'rollup';\r\nconst NAME_KEY = 'vg.rollup';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_HIDE = 'vg-rollup-display--none';\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"rollup\"]'\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\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\t\t\tcontent: 'text',\r\n\t\t\toffset: 0,\r\n\t\t\tcnt: 0,\r\n\t\t\tfade: true,\r\n\t\t\ttransition: false,\r\n\t\t\tnumber: false,\r\n\t\t\theight: 0,\r\n\t\t\tellipsis: {\r\n\t\t\t\tline: null\r\n\t\t\t},\r\n\t\t\tmore: ' еще ',\r\n\t\t\tbutton: {\r\n\t\t\t\tenable: true,\r\n\t\t\t\tmore: \"Показать\",\r\n\t\t\t\tless: \"Свернуть\"\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis.classes = {\r\n\t\t\tcontainer: 'vg-rollup',\r\n\t\t\thidden: \"vg-rollup-content--hidden\",\r\n\t\t\tfade: \"vg-rollup-content--fade\",\r\n\t\t\tellipsis: \"vg-rollup-content--ellipsis\",\r\n\t\t\tbutton: \"vg-rollup-content--button\",\r\n\t\t\ttransition: \"vg-rollup-content--transition\"\r\n\t\t};\r\n\r\n\t\tthis.total = 0;\r\n\t\tthis.count = 0;\r\n\t\tthis.offset = 0;\r\n\t\tthis.isOffset = false;\r\n\t\tthis.isRemainder = false;\r\n\r\n\t\tif (this._params.offset > 0) {\r\n\t\t\tthis.offset = this._params.offset || 0;\r\n\t\t\tthis.isOffset = true;\r\n\t\t}\r\n\r\n\t\tthis.build();\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 toggle(target, relatedTarget) {\r\n\t\tconst instance = VGRollup.getOrCreateInstance(target);\r\n\t\tlet isShown = instance.isShow();\r\n\r\n\t\tif (!isShown) {\r\n\t\t\tinstance._element.classList.add(CLASS_NAME_SHOW);\r\n\t\t\trelatedTarget.innerHTML = instance._params.button.less;\r\n\t\t\trelatedTarget.setAttribute(\"aria-expanded\", true);\r\n\r\n\t\t\tif (instance.offset > 0) {\r\n\t\t\t\tif (instance.isOffset) {\r\n\t\t\t\t\trelatedTarget.innerHTML = instance._params.button.more;\r\n\t\t\t\t\trelatedTarget.setAttribute(\"aria-expanded\", true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\trelatedTarget.innerHTML = instance._params.button.less;\r\n\t\t\t\t\trelatedTarget.setAttribute(\"aria-expanded\", false);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tinstance.switch(instance._element, false);\r\n\t\t\tEventHandler.trigger(instance._element, EVENT_KEY_SHOW, { relatedTarget });\r\n\t\t} else {\r\n\t\t\tlet textShowNum = '',\r\n\t\t\t\tisShowNum = instance._params.number;\r\n\r\n\r\n\t\t\tif (isShowNum) {\r\n\t\t\t\tlet sum = (instance.total) - (instance.count);\r\n\r\n\t\t\t\tif (sum > 0) {\r\n\t\t\t\t\ttextShowNum = instance._params.more + sum;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (instance.isOffset) {\r\n\t\t\t\trelatedTarget.setAttribute(\"aria-expanded\", true);\r\n\t\t\t} else {\r\n\t\t\t\trelatedTarget.setAttribute(\"aria-expanded\", false);\r\n\t\t\t}\r\n\r\n\t\t\tinstance._element.classList.remove(CLASS_NAME_SHOW);\r\n\t\t\trelatedTarget.innerHTML = instance._params.button.more + textShowNum;\r\n\t\t\tinstance.switch(instance._element, true);\r\n\r\n\t\t\tEventHandler.trigger(instance._element, EVENT_KEY_HIDE, { relatedTarget });\r\n\t\t}\r\n\t}\r\n\r\n\tbuild(el = null, isButtonAppend = true) {\r\n\t\tlet _this = this,\r\n\t\t\telement = el || _this._element,\r\n\t\t\tself_height = element.clientHeight, set_height = _this._params.height || (self_height / 2);\r\n\r\n\t\telement.classList.add(_this.classes.container)\r\n\r\n\t\tlet isFade = _this._params.fade,\r\n\t\t\tisTransition = _this._params.transition,\r\n\t\t\tisEllipsis = _this._params.ellipsis.line !== null,\r\n\t\t\tisButton = _this._params.button.enable,\r\n\t\t\tisShowNum = _this._params.number;\r\n\r\n\t\tif (!isButtonAppend) _this.switch(element);\r\n\r\n\t\tif (self_height > set_height && _this._params.content === 'text') {\r\n\t\t\telement.classList.add(_this.classes.hidden);\r\n\t\t\telement.style.height = set_height + \"px\";\r\n\r\n\t\t\tellipsis();\r\n\t\t\ttransition();\r\n\t\t\tfade();\r\n\t\t\tbutton();\r\n\t\t} else if (_this._params.content === 'elements') {\r\n\t\t\tlet elementClass = _this._params.elements || 'item',\r\n\t\t\t\titems = element.querySelectorAll('.' + elementClass),\r\n\t\t\t\tcnt = _this._params.cnt || 5,\r\n\t\t\t\ti = 1;\r\n\r\n\t\t\t_this.total = items.length;\r\n\t\t\t_this.count = cnt;\r\n\r\n\t\t\tfor (const item of items) {\r\n\t\t\t\tif (i > cnt) {\r\n\t\t\t\t\titem.classList.add(CLASS_NAME_HIDE)\r\n\t\t\t\t}\r\n\r\n\t\t\t\ti++;\r\n\t\t\t}\r\n\r\n\t\t\tif (isButton === true) isButton = (i - 1) > cnt;\r\n\r\n\t\t\tellipsis();\r\n\t\t\ttransition();\r\n\t\t\tfade();\r\n\t\t\tbutton();\r\n\t\t}\r\n\r\n\t\tfunction ellipsis() {\r\n\t\t\tif (isEllipsis) {\r\n\t\t\t\tlet line = _this._params.ellipsis.line;\r\n\t\t\t\tisFade = false;\r\n\r\n\t\t\t\tif (line) {\r\n\t\t\t\t\telement.classList.add(_this.classes.ellipsis);\r\n\t\t\t\t\telement.style.webkitLineClamp = line;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.log(\"Переменная [data-line] или параметр[line] не должны быть пустыми\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// TODO no work\r\n\t\tfunction transition() {\r\n\t\t\tif (isTransition) {\r\n\t\t\t\telement.classList.add(_this.classes.transition);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction fade() {\r\n\t\t\tif (isFade) {\r\n\t\t\t\telement.classList.add(_this.classes.fade);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction button() {\r\n\t\t\tif (isButtonAppend) {\r\n\t\t\t\telement.setAttribute(\"id\", element.id);\r\n\r\n\t\t\t\tif (isButton) {\r\n\t\t\t\t\tlet textShowNum = '';\r\n\r\n\t\t\t\t\tif (isShowNum) {\r\n\t\t\t\t\t\tlet sum = (_this.total) - (_this.count);\r\n\r\n\t\t\t\t\t\tif (sum > 0) {\r\n\t\t\t\t\t\t\ttextShowNum = _this._params.more + sum;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet btnTextMore = _this._params.button.more;\r\n\t\t\t\t\telement.insertAdjacentHTML(\"afterend\", \"<div class=\\\"\" + _this.classes.button + \"\\\"><a href=\\\"#\\\" aria-expanded=\\\"false\\\" data-vg-toggle=\\\"rollup\\\" data-vg-target=\\\"#\" + element.id + \"\\\">\" + btnTextMore + textShowNum + \"</a></div>\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tswitch(el, switcher = false) {\r\n\t\tif (switcher && !this.isOffset) {\r\n\t\t\tthis.build(el, false);\r\n\r\n\t\t\tif (this._params.offset > 0) {\r\n\t\t\t\tthis.offset = this._params.offset;\r\n\t\t\t\tif (this.offset > 0) this.isOffset = true;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tel.classList.remove(this.classes.hidden);\r\n\t\t\tel.classList.remove(this.classes.ellipsis);\r\n\t\t\tel.classList.remove(this.classes.fade);\r\n\r\n\t\t\tel.removeAttribute(\"style\");\r\n\r\n\t\t\tif (this._params.content === 'elements') {\r\n\t\t\t\tlet className = this._params.elements;\r\n\r\n\t\t\t\tlet items = Selectors.findAll('.' + className, el);\r\n\r\n\t\t\t\tif (items.length) {\r\n\t\t\t\t\tif (this.offset > 0) {\r\n\t\t\t\t\t\titems.slice(this.offset, this.offset + this.count).forEach(item => item.classList.remove(CLASS_NAME_HIDE));\r\n\t\t\t\t\t\tthis.offset = this.offset + this._params.offset;\r\n\t\t\t\t\t\tthis.isRemainder = (items.length - this.offset) > 0;\r\n\r\n\t\t\t\t\t\tif (!this.isRemainder) {\r\n\t\t\t\t\t\t\tthis.isOffset = false;\r\n\t\t\t\t\t\t\tthis.offset = 0;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\titems.forEach((item) => item.classList.remove(CLASS_NAME_HIDE))\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\tisShow() {\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 * @param callback\r\n\t */\r\n\tstatic init(element, params = {}, callback) {\r\n\t\tconst instance = VGRollup.getOrCreateInstance(element, params);\r\n\t\texecute(callback, [instance]);\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\tVGRollup.toggle(target, this);\r\n});\r\n\r\nexport default VGRollup;","import './scss/vgrollup.scss';\r\nimport VGRollup from \"./js/vgrollup\";\r\n\r\nexport default VGRollup;","import BaseModule from \"../../base-module\";\r\nimport {\r\n\tisDisabled,\r\n\tisEmptyObj, isObject, isVisible,\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\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, isPlaceholder) {\r\n\t\tlet options = selector.options,\r\n\t\t\tlist = document.createElement('ul');\r\n\r\n\t\tif (isPlaceholder) {\r\n\t\t\tlet isSelectedOption = [...options].filter(el => Manipulator.has(el, 'selected')).length > 0;\r\n\r\n\t\t\tif (!isSelectedOption) {\r\n\t\t\t\tlet option = document.createElement('option');\r\n\t\t\t\tManipulator.set(option, 'hidden', '');\r\n\t\t\t\tManipulator.set(option, 'selected', '');\r\n\t\t\t\toptions.add(option, 0)\r\n\t\t\t}\r\n\t\t}\r\n\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 = false) {\r\n\t\tlet option_selected,\r\n\t\t\tplaceholder = selector.dataset.placeholder || '',\r\n\t\t\tisPlaceholder = !!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\tVGSelect.destroy(selector);\r\n\t\t}\r\n\r\n\t\tselector.parentElement.style.position = 'relative';\r\n\r\n\t\tlet isSelectedOption = [... selector.options].filter(el => {\r\n\t\t\treturn Manipulator.has(el, 'selected') && el.value !== ''\r\n\t\t}).length > 0;\r\n\r\n\t\tif (isPlaceholder && selector.selectedIndex === -1) {\r\n\t\t\toption_selected = '<span class=\"' + CLASS_NAME_PLACEHOLDER + '\">' + placeholder + '<span>';\r\n\t\t\tManipulator.set(selector, 'disabled', '');\r\n\t\t} else if (!isPlaceholder && selector.selectedIndex === -1) {\r\n\t\t\toption_selected = '<span class=\"' + CLASS_NAME_PLACEHOLDER + '\">-<span>';\r\n\t\t\tManipulator.set(selector, 'disabled', '');\r\n\t\t} else if (isPlaceholder) {\r\n\t\t\tif (isPlaceholder && isSelectedOption) {\r\n\t\t\t\toption_selected = selector.options[selector.selectedIndex].innerText;\r\n\t\t\t} else if (isPlaceholder && !isSelectedOption) {\r\n\t\t\t\toption_selected = '<span class=\"' + CLASS_NAME_PLACEHOLDER + '\">' + placeholder + '<span>';\r\n\t\t\t} else if(!isPlaceholder && !isSelectedOption) {\r\n\t\t\t\toption_selected = selector.options[selector.selectedIndex].innerText;\r\n\t\t\t} else {\r\n\t\t\t\toption_selected = '<span class=\"' + CLASS_NAME_PLACEHOLDER + '\">-<span>';\r\n\t\t\t}\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, isPlaceholder);\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\t\t\tManipulator.set(input, 'autocomplete', 'off');\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 = Selectors.next(select, '.' + CLASS_NAME_CONTAINER);\r\n\t\telement = element.shift();\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\r\n\t\t\tlet arrOptions = [];\r\n\r\n\t\t\t[\r\n\t\t\t\tvalue,\r\n\t\t\t\ttransliterate(value),\r\n\t\t\t\ttransliterate(value, true),\r\n\t\t\t].forEach(val => {\r\n\t\t\t\tfor (const option of options) {\r\n\t\t\t\t\tlet text = option.innerText.toLowerCase();\r\n\r\n\t\t\t\t\tManipulator.hide(option)\r\n\r\n\t\t\t\t\tif (text.includes(val)) {\r\n\t\t\t\t\t\tarrOptions.push(option)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tarrOptions.forEach(el => Manipulator.show(el))\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;","import './scss/vgselect.scss';\r\nimport VGSelect from \"./js/vgselect\";\r\n\r\nexport default VGSelect;","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\nconst EVENT_KEY_POPSTATE_DATA_API = `popstate.${NAME_KEY}.data.api`;\r\nconst EVENT_KEY_DOM_LOADED_DATA_API = `DOMContentLoaded.${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\thash: false,\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\tonce: false,\r\n\t\t\t\toutput: true,\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\tif (relatedTarget) _this._params = _this._getParams(relatedTarget, _this._params);\r\n\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\tif (this._params.hash) {\r\n\t\t\twindow.history.pushState(null, \"vg-sidebar-open\", \"#\" + this._element.id);\r\n\r\n\t\t\tEventHandler.on(window, EVENT_KEY_POPSTATE_DATA_API, () => {\r\n\t\t\t\tthis.hide();\r\n\t\t\t});\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\tif (_this._params.hash) {\r\n\t\t\t\t\thistory.pushState(\"\", document.title, window.location.pathname + window.location.search);\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\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\nEventHandler.on(document, EVENT_KEY_DOM_LOADED_DATA_API, function () {\r\n\tlet targetHash = window.location.hash.slice(1);\r\n\tif (targetHash) {\r\n\t\tlet target = Selectors.find('#' + targetHash);\r\n\t\tif (target && target.classList.contains('vg-sidebar')) {\r\n\t\t\tif (isDisabled(target)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst data = VGSidebar.getOrCreateInstance(target)\r\n\t\t\tdata.toggle();\r\n\t\t}\r\n\t}\r\n})\r\n\r\nexport default VGSidebar;\r\n","import './scss/vgsidebar.scss';\r\nimport VGSidebar from \"./js/vgsidebar\";\r\n\r\nexport default VGSidebar;","import BaseModule from \"../../base-module\";\r\nimport {mergeDeepObject, getElement, isDisabled, isVisible} from \"../../../utils/js/functions\";\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 = 'spy';\r\nconst NAME_KEY = 'vg.spy';\r\nconst EVENT_KEY = `.${NAME_KEY}`\r\nconst DATA_API_KEY = '.data-api'\r\n\r\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\r\nconst EVENT_CLICK = `click${EVENT_KEY}`\r\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\r\n\r\nconst CLASS_NAME_DROPDOWN_ITEM = 'vg-dropdown-item'\r\nconst CLASS_NAME_ACTIVE = 'active'\r\n\r\nconst SELECTOR_DATA_SPY = '[data-vg-toggle=\"spy\"]'\r\nconst SELECTOR_TARGET_LINKS = '[href]'\r\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\r\nconst SELECTOR_NAV_LINKS = '.nav-link'\r\nconst SELECTOR_NAV_ITEMS = '.nav-item'\r\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\r\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`\r\nconst SELECTOR_DROPDOWN = '.vg-dropdown'\r\nconst SELECTOR_DROPDOWN_TOGGLE = '[data-vg-toggle=\"dropdown\"]'\r\n\r\n\r\nclass VGSpy 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\toffset: null, // TODO: v6 @deprecated, keep it for backwards compatibility reasons\r\n\t\t\trootMargin: '0px 0px -25%',\r\n\t\t\tsmoothScroll: true,\r\n\t\t\ttarget: this._element,\r\n\t\t\tthreshold: [0.1, 0.5, 1]\r\n\t\t}, params));\r\n\r\n\t\tthis._targetLinks = new Map()\r\n\t\tthis._observableSections = new Map()\r\n\t\tthis._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element\r\n\t\tthis._activeTarget = null\r\n\t\tthis._observer = null\r\n\t\tthis._previousScrollData = {\r\n\t\t\tvisibleEntryTop: 0,\r\n\t\t\tparentScrollTop: 0\r\n\t\t}\r\n\t\tthis._params = this._configAfterMerge(this._params);\r\n\t\tconsole.log(this._params)\r\n\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\trefresh() {\r\n\t\tthis._initializeTargetsAndObservables()\r\n\t\tthis._maybeEnableSmoothScroll()\r\n\r\n\t\tif (this._observer) {\r\n\t\t\tthis._observer.disconnect()\r\n\t\t} else {\r\n\t\t\tthis._observer = this._getNewObserver()\r\n\t\t}\r\n\r\n\t\tfor (const section of this._observableSections.values()) {\r\n\t\t\tthis._observer.observe(section)\r\n\t\t}\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tthis._observer.disconnect()\r\n\t\tsuper.dispose()\r\n\t}\r\n\r\n\t_configAfterMerge(param) {\r\n\t\tparam.target = getElement(param.target) || document.body\r\n\t\tparam.rootMargin = param.offset ? `${param.offset}px 0px -30%` : param.rootMargin\r\n\r\n\t\tif (typeof param.threshold === 'string') {\r\n\t\t\tparam.threshold = param.threshold.split(',').map(value => Number.parseFloat(value))\r\n\t\t}\r\n\r\n\t\treturn param\r\n\t}\r\n\r\n\t_maybeEnableSmoothScroll() {\r\n\t\tif (!this._params.smoothScroll) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tEventHandler.off(this._params.target, EVENT_CLICK)\r\n\r\n\t\tEventHandler.on(this._params.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\r\n\t\t\tconst observableSection = this._observableSections.get(event.target.hash)\r\n\t\t\tif (observableSection) {\r\n\t\t\t\tevent.preventDefault()\r\n\t\t\t\tconst root = this._rootElement || window\r\n\t\t\t\tconst height = observableSection.offsetTop - this._element.offsetTop\r\n\t\t\t\tif (root.scrollTo) {\r\n\t\t\t\t\troot.scrollTo({ top: height, behavior: 'smooth' })\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t\troot.scrollTop = height\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\t_getNewObserver() {\r\n\t\tconst options = {\r\n\t\t\troot: this._rootElement,\r\n\t\t\tthreshold: this._params.threshold,\r\n\t\t\trootMargin: this._params.rootMargin\r\n\t\t}\r\n\r\n\t\treturn new IntersectionObserver(entries => this._observerCallback(entries), options)\r\n\t}\r\n\r\n\t_observerCallback(entries) {\r\n\t\tconst targetElement = entry => this._targetLinks.get(`#${entry.target.id}`);\r\n\r\n\t\tconst activate = entry => {\r\n\t\t\tthis._previousScrollData.visibleEntryTop = entry.target.offsetTop;\r\n\t\t\tthis._process(targetElement(entry));\r\n\t\t}\r\n\r\n\t\tconst parentScrollTop = (this._rootElement || document.documentElement).scrollTop\r\n\t\tconst userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop\r\n\t\tthis._previousScrollData.parentScrollTop = parentScrollTop\r\n\r\n\t\tfor (const entry of entries) {\r\n\t\t\tif (!entry.isIntersecting) {\r\n\t\t\t\tthis._activeTarget = null\r\n\t\t\t\tthis._clearActiveClass(targetElement(entry))\r\n\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\tconst entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop\r\n\t\t\tif (userScrollsDown && entryIsLowerThanPrevious) {\r\n\t\t\t\tactivate(entry)\r\n\t\t\t\tif (!parentScrollTop) {\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\tif (!userScrollsDown && !entryIsLowerThanPrevious) {\r\n\t\t\t\tactivate(entry)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t_initializeTargetsAndObservables() {\r\n\t\tthis._targetLinks = new Map();\r\n\t\tthis._observableSections = new Map();\r\n\r\n\t\tconst targetLinks = Selectors.findAll(SELECTOR_TARGET_LINKS, this._params.target);\r\n\r\n\t\tfor (const anchor of targetLinks) {\r\n\t\t\tif (!anchor.hash || isDisabled(anchor)) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\tconst observableSection = Selectors.find(decodeURI(anchor.hash));\r\n\r\n\t\t\tif (isVisible(observableSection)) {\r\n\t\t\t\tthis._targetLinks.set(decodeURI(anchor.hash), anchor)\r\n\t\t\t\tthis._observableSections.set(anchor.hash, observableSection)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t_process(target) {\r\n\t\tif (this._activeTarget === target) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis._clearActiveClass(this._params.target)\r\n\t\tthis._activeTarget = target\r\n\t\ttarget.classList.add(CLASS_NAME_ACTIVE)\r\n\t\tthis._activateParents(target)\r\n\r\n\t\tEventHandler.trigger(this._element, EVENT_ACTIVATE, { relatedTarget: target })\r\n\t}\r\n\r\n\t_activateParents(target) {\r\n\t\tif (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\r\n\t\t\tSelectors.find(SELECTOR_DROPDOWN_TOGGLE, target.closest(SELECTOR_DROPDOWN))\r\n\t\t\t\t.classList.add(CLASS_NAME_ACTIVE)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tfor (const listGroup of Selectors.parents(target, SELECTOR_NAV_LIST_GROUP)) {\r\n\t\t\tfor (const item of Selectors.prev(listGroup, SELECTOR_LINK_ITEMS)) {\r\n\t\t\t\titem.classList.add(CLASS_NAME_ACTIVE)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t_clearActiveClass(parent) {\r\n\t\tparent.classList.remove(CLASS_NAME_ACTIVE)\r\n\r\n\t\tconst activeNodes = Selectors.findAll(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE}`, parent);\r\n\t\tfor (const node of activeNodes) {\r\n\t\t\tnode.classList.remove(CLASS_NAME_ACTIVE)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\r\n\tfor (const spy of Selectors.findAll(SELECTOR_DATA_SPY)) {\r\n\t\tVGSpy.getOrCreateInstance(spy)\r\n\t}\r\n})\r\n\r\nexport default VGSpy;","import VGSpy from \"./js/vgspy\";\r\n\r\nexport default VGSpy;","import BaseModule from \"../../base-module\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {getNextActiveElement, isDisabled, mergeDeepObject} from \"../../../utils/js/functions\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'tabs';\r\nconst NAME_KEY = 'vg.tabs';\r\n\r\nconst EVENT_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_SHOWN = `${NAME_KEY}.shown`;\r\nconst EVENT_LOADED = `${NAME_KEY}.loaded`;\r\n\r\nconst EVENT_KEYDOWN = `keydown.${NAME_KEY}`;\r\nconst EVENT_LOAD_DATA_API = `load.${NAME_KEY}`;\r\nconst EVENT_CLICK_DATA_API = `click.${NAME_KEY}`;\r\nconst EVENT_MOUSEOVER_DATA_API = `mouseover.${NAME_KEY}`;\r\nconst EVENT_MOUSEOUT_DATA_API = `mouseout.${NAME_KEY}`;\r\n\r\nconst ARROW_LEFT_KEY = 'ArrowLeft';\r\nconst ARROW_RIGHT_KEY = 'ArrowRight';\r\nconst ARROW_UP_KEY = 'ArrowUp';\r\nconst ARROW_DOWN_KEY = 'ArrowDown';\r\nconst HOME_KEY = 'Home';\r\nconst END_KEY = 'End';\r\n\r\nconst CLASS_NAME_ACTIVE = 'active';\r\nconst CLASS_NAME_HOVER = 'hover';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_DROPDOWN = 'dropdown';\r\nconst CLASS_SLIDER = 'vg-tabs-slider';\r\nconst CLASS_WITH_SLIDER = 'vg-tabs-with-slider';\r\n\r\nconst SELECTOR_DROPDOWN_TOGGLE = '[data-vg-toggle=\"dropdown\"]';\r\nconst SELECTOR_DROPDOWN_MENU = '.dropdown-content';\r\nconst NOT_SELECTOR_DROPDOWN_TOGGLE = `:not(${SELECTOR_DROPDOWN_TOGGLE})`;\r\n\r\nconst SELECTOR_TAB_CLASS = '.vg-tabs';\r\nconst SELECTOR_TAB_PANEL = '.list-group, .vg-tabs-panel, [role=\"tablist\"]';\r\nconst SELECTOR_OUTER = '.vg-tabs-item, .list-group-item';\r\nconst SELECTOR_INNER = `.vg-tabs-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role=\"tab\"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`;\r\nconst SELECTOR_DATA_TOGGLE = '[data-vg-toggle=\"tab\"]';\r\nconst SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`;\r\n\r\nconst SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-vg-toggle=\"tab\"]`;\r\n\r\nclass VGTabs extends BaseModule {\r\n\r\n\tconstructor(element, params) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = mergeDeepObject({\r\n\t\t\tslide: false,\r\n\t\t\thash: 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\tloader: false,\r\n\t\t\t\tonce: true,\r\n\t\t\t\toutput: true,\r\n\t\t\t},\r\n\t\t}, this._params);\r\n\r\n\t\tthis._parent = this._element.closest(SELECTOR_TAB_PANEL);\r\n\t\tthis._main_parent = this._parent.closest(SELECTOR_TAB_CLASS);\r\n\t\tthis._params = this._getParams(this._main_parent, this._params);\r\n\t\tthis._params = this._getParams(this._element, this._params);\r\n\r\n\t\tif (!this._parent) {\r\n\t\t\tthrow new TypeError(`${element.outerHTML} не имеет родителя ${SELECTOR_INNER_ELEM}`)\r\n\t\t}\r\n\r\n\t\tthis._setInitialAttributes(this._parent, this._getChildren());\r\n\t\tthis._setInitialSlider();\r\n\t\tthis._setTabHash();\r\n\r\n\t\tEventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\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\tshow() {\r\n\t\tconst innerElem = this._element\r\n\t\tif (this._elemIsActive(innerElem)) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst active = this._getActiveElem()\r\n\r\n\t\tconst hideEvent = active ?\r\n\t\t\tEventHandler.trigger(active, EVENT_HIDE, { relatedTarget: innerElem }) :\r\n\t\t\tnull\r\n\r\n\t\tconst showEvent = EventHandler.trigger(innerElem, EVENT_SHOW, { relatedTarget: active })\r\n\r\n\t\tif (showEvent.defaultPrevented || (hideEvent && hideEvent.defaultPrevented)) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis._deactivate(active, innerElem)\r\n\t\tthis._activate(innerElem, active)\r\n\t}\r\n\r\n\t_elemIsActive(elem) {\r\n\t\treturn elem.classList.contains(CLASS_NAME_ACTIVE)\r\n\t}\r\n\r\n\t_getActiveElem() {\r\n\t\treturn this._getChildren().find(child => this._elemIsActive(child)) || null\r\n\t}\r\n\r\n\t_activate(element, relatedElem) {\r\n\t\tif (!element) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\telement.classList.add(CLASS_NAME_ACTIVE);\r\n\r\n\t\tthis._activate(Selectors.getElementFromSelector(element));\r\n\r\n\t\tconst complete = () => {\r\n\t\t\tif (element.getAttribute('role') !== 'tab') {\r\n\t\t\t\telement.classList.add(CLASS_NAME_SHOW)\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tthis._route((status, data) => {\r\n\t\t\t\tEventHandler.trigger(this._element, EVENT_LOADED, {stats: status, data: data});\r\n\t\t\t});\r\n\r\n\t\t\telement.removeAttribute('tabindex')\r\n\t\t\telement.setAttribute('aria-selected', true);\r\n\r\n\t\t\tthis._toggleDropDown(element, true)\r\n\t\t\tEventHandler.trigger(element, EVENT_SHOWN, {\r\n\t\t\t\trelatedTarget: relatedElem\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tthis._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\r\n\t}\r\n\r\n\t_deactivate(element, relatedElem) {\r\n\t\tif (!element) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\telement.classList.remove(CLASS_NAME_ACTIVE);\r\n\t\telement.blur();\r\n\r\n\t\tthis._deactivate(Selectors.getElementFromSelector(element));\r\n\r\n\t\tconst complete = () => {\r\n\t\t\tif (element.getAttribute('role') !== 'tab') {\r\n\t\t\t\telement.classList.remove(CLASS_NAME_SHOW);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\telement.setAttribute('aria-selected', false);\r\n\t\t\telement.setAttribute('tabindex', '-1');\r\n\t\t\tthis._toggleDropDown(element, false);\r\n\t\t\tEventHandler.trigger(element, EVENT_HIDDEN, { relatedTarget: relatedElem });\r\n\t\t}\r\n\r\n\t\tthis._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE));\r\n\t}\r\n\r\n\t_keydown(event) {\r\n\t\tif (!([ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key))) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tevent.stopPropagation()// stopPropagation/preventDefault both added to support up/down keys without scrolling the page\r\n\t\tevent.preventDefault()\r\n\r\n\t\tconst children = this._getChildren().filter(element => !isDisabled(element))\r\n\t\tlet nextActiveElement\r\n\r\n\t\tif ([HOME_KEY, END_KEY].includes(event.key)) {\r\n\t\t\tnextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1]\r\n\t\t} else {\r\n\t\t\tconst isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key)\r\n\t\t\tnextActiveElement = getNextActiveElement(children, event.target, isNext, true)\r\n\t\t}\r\n\r\n\t\tif (nextActiveElement) {\r\n\t\t\tnextActiveElement.focus({ preventScroll: true })\r\n\t\t\tVGTabs.getOrCreateInstance(nextActiveElement).show()\r\n\t\t}\r\n\t}\r\n\r\n\t_setTabHash() {\r\n\t\tif (!this._params.hash) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet url = document.location.toString();\r\n\r\n\t\tif (url.match('#')) {\r\n\t\t\tlet id = url.split('#')[1];\r\n\r\n\t\t\tlet element = Selectors.find('[href=\"#' + id +'\"]', this._parent) || Selectors.find('[data-vg-target=\"#' + id +'\"]', this._element) || null;\r\n\t\t\tif (element) {\r\n\t\t\t\tVGTabs.getOrCreateInstance(element).show();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t_setInitialSlider() {\r\n\t\tif (!this._params.slide) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet slider = Selectors.find('.' + CLASS_SLIDER, this._main_parent);\r\n\t\tif (!slider) {\r\n\t\t\tslider = document.createElement('span');\r\n\t\t\tslider.classList.add(CLASS_SLIDER);\r\n\t\t\tthis._main_parent.prepend(slider);\r\n\t\t}\r\n\r\n\t\tthis._main_parent.classList.add(CLASS_WITH_SLIDER);\r\n\r\n\t\tlet link_active = Selectors.find('.' + CLASS_NAME_ACTIVE, this._parent),\r\n\t\t\t{width, height} = window.getComputedStyle(link_active);\r\n\r\n\t\tlink_active.classList.add(CLASS_NAME_HOVER);\r\n\r\n\t\tslider.style.width = width;\r\n\t\tslider.style.height = height;\r\n\t\tslider.style.left = link_active.offsetLeft + 'px';\r\n\r\n\t\tEventHandler.on(this._main_parent, EVENT_MOUSEOVER_DATA_API, SELECTOR_DATA_TOGGLE, (event) => {\r\n\t\t\tlet link_target = event.target,\r\n\t\t\t\t{width, height} = window.getComputedStyle(link_target);\r\n\r\n\t\t\tif (['A', 'AREA'].includes(event.target.tagName)) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t}\r\n\r\n\t\t\tif (isDisabled(link_target)) return;\r\n\r\n\t\t\tlet link_current_hover = Selectors.find('.' + CLASS_NAME_HOVER, this._parent);\r\n\t\t\tif (link_current_hover) link_current_hover.classList.remove(CLASS_NAME_HOVER);\r\n\t\t\tlink_target.classList.add(CLASS_NAME_HOVER);\r\n\r\n\t\t\tslider.style.width = width;\r\n\t\t\tslider.style.height = height;\r\n\t\t\tslider.style.left = link_target.offsetLeft + 'px';\r\n\t\t});\r\n\r\n\t\tEventHandler.on(this._main_parent, EVENT_MOUSEOUT_DATA_API, SELECTOR_DATA_TOGGLE, (event) => {\r\n\t\t\tif (['A', 'AREA'].includes(event.target.tagName)) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t}\r\n\r\n\t\t\tlet active = Selectors.find('.' + CLASS_NAME_ACTIVE, this._parent),\r\n\t\t\t\t{width, height} = window.getComputedStyle(active);\r\n\r\n\t\t\t[... Selectors.findAll('.' + CLASS_NAME_HOVER, this._parent)].forEach(el => {\r\n\t\t\t\tel.classList.remove(CLASS_NAME_HOVER);\r\n\t\t\t});\r\n\r\n\t\t\tactive.classList.add(CLASS_NAME_HOVER);\r\n\r\n\t\t\tslider.style.width = width;\r\n\t\t\tslider.style.height = height;\r\n\t\t\tslider.style.left = active.offsetLeft + 'px';\r\n\t\t});\r\n\t}\r\n\r\n\t_setInitialAttributes(parent, children) {\r\n\t\tthis._setAttributeIfNotExists(parent, 'role', 'tablist')\r\n\r\n\t\tfor (const child of children) {\r\n\t\t\tthis._setInitialAttributesOnChild(child)\r\n\t\t}\r\n\t}\r\n\r\n\t_setInitialAttributesOnChild(child) {\r\n\t\tchild = this._getInnerElement(child)\r\n\t\tconst isActive = this._elemIsActive(child)\r\n\t\tconst outerElem = this._getOuterElement(child)\r\n\t\tchild.setAttribute('aria-selected', isActive)\r\n\r\n\t\tif (outerElem !== child) {\r\n\t\t\tthis._setAttributeIfNotExists(outerElem, 'role', 'presentation')\r\n\t\t}\r\n\r\n\t\tif (!isActive) {\r\n\t\t\tchild.setAttribute('tabindex', '-1')\r\n\t\t}\r\n\r\n\t\tthis._setAttributeIfNotExists(child, 'role', 'tab')\r\n\t\tthis._setInitialAttributesOnTargetPanel(child)\r\n\t}\r\n\r\n\t_setInitialAttributesOnTargetPanel(child) {\r\n\t\tconst target = Selectors.getElementFromSelector(child)\r\n\r\n\t\tif (!target) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis._setAttributeIfNotExists(target, 'role', 'tabpanel')\r\n\r\n\t\tif (child.id) {\r\n\t\t\tthis._setAttributeIfNotExists(target, 'aria-labelledby', `${child.id}`)\r\n\t\t}\r\n\t}\r\n\r\n\t_setAttributeIfNotExists(element, attribute, value) {\r\n\t\tif (!element.hasAttribute(attribute)) {\r\n\t\t\telement.setAttribute(attribute, value)\r\n\t\t}\r\n\t}\r\n\r\n\t_getChildren() {\r\n\t\treturn Selectors.findAll(SELECTOR_INNER_ELEM, this._parent)\r\n\t}\r\n\r\n\t_getInnerElement(elem) {\r\n\t\treturn elem.matches(SELECTOR_INNER_ELEM) ? elem : Selectors.find(SELECTOR_INNER_ELEM, elem)\r\n\t}\r\n\r\n\t_getOuterElement(elem) {\r\n\t\treturn elem.closest(SELECTOR_OUTER) || elem\r\n\t}\r\n\r\n\t_toggleDropDown(element, open) {\r\n\t\tconst outerElem = this._getOuterElement(element)\r\n\t\tif (!outerElem.classList.contains(CLASS_DROPDOWN)) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst toggle = (selector, className) => {\r\n\t\t\tconst element = Selectors.find(selector, outerElem)\r\n\t\t\tif (element) {\r\n\t\t\t\telement.classList.toggle(className, open)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\ttoggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE)\r\n\t\ttoggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW)\r\n\t\touterElem.setAttribute('aria-expanded', open)\r\n\t}\r\n}\r\n\r\n/**\r\n * Data API implementation\r\n */\r\nEventHandler.on(document, EVENT_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)) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tVGTabs.getOrCreateInstance(this).show();\r\n})\r\n\r\n/**\r\n * Initialize on focus\r\n */\r\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\r\n\tfor (const element of Selectors.findAll(SELECTOR_DATA_TOGGLE_ACTIVE)) {\r\n\t\tVGTabs.getOrCreateInstance(element);\r\n\t}\r\n});\r\n\r\n\r\nexport default VGTabs;\r\n","import './scss/vgtabs.scss'\r\nimport VGTabs from \"./js/vgtabs\";\r\n\r\nexport default VGTabs;","import BaseModule from \"../../base-module\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {dismissTrigger} from \"../../module-fn\";\r\nimport {execute, isDisabled, makeRandomString, mergeDeepObject} from \"../../../utils/js/functions\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'toast';\r\nconst NAME_KEY = 'vg.toast';\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"toast\"]';\r\n\r\nconst CLASS_NAME_OPEN = 'vg-toast-open';\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\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 VGToast 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\tstatic: true,\r\n\t\t\tplacement: 'bottom center',\r\n\t\t\tautohide: false,\r\n\t\t\tdelay: 3000,\r\n\t\t\tenableClickToast: true,\r\n\t\t\tenableButtonClose: true,\r\n\t\t\tkeyboard: true,\r\n\t\t\ttheme: 'dark',\r\n\t\t\tstack: {\r\n\t\t\t\tenable: true,\r\n\t\t\t\tmax: 5\r\n\t\t\t},\r\n\t\t\tanimation: {\r\n\t\t\t\tenable: true,\r\n\t\t\t\tin: 'animate__fadeIn',\r\n\t\t\t\tout: 'animate__fadeOut',\r\n\t\t\t\tdelay: 400,\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\tonce: false,\r\n\t\t\t\toutput: true,\r\n\t\t\t}\r\n\t\t}, 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, VGToast.NAME_KEY, this._params.animation);\r\n\t\tthis._dismissElement();\r\n\t\tthis._addEventListeners();\r\n\r\n\t\tthis._timeout = null;\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 run(text, params = {}, callback) {\r\n\t\treturn VGToast.build(text, params, callback);\r\n\t}\r\n\r\n\tstatic build(text, params, callback) {\r\n\t\tparams = mergeDeepObject({\r\n\t\t\tplacement: 'bottom center',\r\n\t\t\tstatic: false,\r\n\t\t\ttheme: 'dark',\r\n\t\t\tstack: {\r\n\t\t\t\tenable: false\r\n\t\t\t}\r\n\t\t}, params);\r\n\r\n\t\tlet target = document.createElement('div');\r\n\t\ttarget.classList.add('vg-toast');\r\n\t\ttarget.id = 'vg-toast-' + makeRandomString();\r\n\r\n\t\tif ('theme' in params) {\r\n\t\t\ttarget.classList.add('vg-toast-' + params.theme);\r\n\t\t}\r\n\r\n\t\tif ('placement' in params) {\r\n\t\t\tparams.placement.split(' ').forEach(val => target.classList.add(val));\r\n\t\t}\r\n\r\n\t\tlet wrapper = document.createElement('div');\r\n\t\twrapper.classList.add('vg-toast-wrapper');\r\n\r\n\t\tif ('type' in params) {\r\n\t\t\tlet icon = document.createElement('div');\r\n\t\t\ticon.classList.add('vg-toast-icon');\r\n\r\n\t\t\twrapper.append(icon);\r\n\t\t}\r\n\r\n\t\tlet content = document.createElement('div');\r\n\t\tcontent.classList.add('vg-toast-content');\r\n\r\n\t\tlet body = document.createElement('div');\r\n\t\tbody.classList.add('vg-toast-body');\r\n\r\n\t\tif (typeof text === 'string') {\r\n\t\t\tbody.innerHTML = text;\r\n\t\t\tcontent.append(body);\r\n\t\t} else if (Array.isArray(text)) {\r\n\t\t\tif (text.length > 1) {\r\n\t\t\t\tlet header = document.createElement('div');\r\n\t\t\t\theader.classList.add('vg-toast-header');\r\n\t\t\t\theader.innerHTML = text[0];\r\n\t\t\t\tcontent.append(header);\r\n\r\n\t\t\t\tbody.innerHTML = text[1];\r\n\t\t\t\tcontent.append(body);\r\n\t\t\t} else {\r\n\t\t\t\tbody.innerHTML = text[0];\r\n\t\t\t\tcontent.append(body);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\twrapper.append(content);\r\n\r\n\t\tif ('enableButtonClose' in params && params.enableButtonClose) {\r\n\t\t\tlet button = document.createElement('div');\r\n\t\t\tbutton.classList.add('vg-toast-button');\r\n\t\t\tbutton.innerHTML = '<button class=\"vg-btn-close\" data-vg-dismiss=\"toast\"></button>';\r\n\t\t\twrapper.append(button);\r\n\t\t}\r\n\r\n\t\ttarget.append(wrapper);\r\n\t\tdocument.body.append(target);\r\n\r\n\t\tlet instance = VGToast.getOrCreateInstance(target, params);\r\n\t\texecute(callback, [instance]);\r\n\t\tinstance.show();\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\tthis._clearTimeout();\r\n\r\n\t\tthis._params = this._getParams(relatedTarget || {}, this._params);\r\n\t\tthis._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._element.classList.add(CLASS_NAME_SHOW);\r\n\t\tdocument.body.classList.add(CLASS_NAME_OPEN);\r\n\r\n\t\tthis._setPlacement();\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tthis._element.classList.add(CLASS_NAME_SHOW);\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_SHOWN, { relatedTarget });\r\n\t\t\tthis._scheduleHide();\r\n\t\t}\r\n\t\tthis._queueCallback(completeCallBack, this._element, true, 0);\r\n\t}\r\n\r\n\thide() {\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\tthis._element?.classList.remove(CLASS_NAME_SHOW);\r\n\r\n\t\t\tconst completeCallback = () => {\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\r\n\t\t\t\tif (this._params.stack.enable) {\r\n\t\t\t\t\tthis._setPlacement();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!this._params.static) {\r\n\t\t\t\t\tthis.dispose();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis._queueCallback(completeCallback, this._element, false, this._params.animation.delay);\r\n\t\t}, this._params.animation.delay);\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tthis._clearTimeout();\r\n\t\tif (this._isShown()) {\r\n\t\t\tthis._element.classList.remove(CLASS_NAME_SHOW);\r\n\t\t}\r\n\r\n\t\tif (!this._params.static) {\r\n\t\t\tthis._element.remove();\r\n\t\t}\r\n\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t_scheduleHide() {\r\n\t\tif (!this._params.autohide) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._timeout = setTimeout(() => {\r\n\t\t\tthis.hide();\r\n\t\t}, this._params.delay);\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_setPlacement() {\r\n\t\tlet elms = this._enableStack();\r\n\r\n\t\tif (this._params.stack.enable) {\r\n\t\t\tif (elms.length > this._params.stack.max) {\r\n\t\t\t\tlet elm = elms.shift();\r\n\t\t\t\tVGToast.getInstance(elm.el).hide();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\telms.forEach(elm => {\r\n\t\t\tlet isPlacementClassTop = elm.el.classList.contains('top'),\r\n\t\t\t\tisPlacementClassBottom = elm.el.classList.contains('bottom'),\r\n\t\t\t\tisPlacementClassLeft = elm.el.classList.contains('left'),\r\n\t\t\t\tisPlacementClassRight = elm.el.classList.contains('right'),\r\n\t\t\t\tisPlacementClassCenter = elm.el.classList.contains('center');\r\n\r\n\t\t\tif (!isPlacementClassTop &&\r\n\t\t\t\t!isPlacementClassBottom &&\r\n\t\t\t\t!isPlacementClassCenter &&\r\n\t\t\t\t!isPlacementClassRight &&\r\n\t\t\t\t!isPlacementClassLeft\r\n\t\t\t) {\r\n\t\t\t\tisPlacementClassBottom = true;\r\n\t\t\t\tisPlacementClassCenter = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (isPlacementClassCenter) {\r\n\t\t\t\tif (isPlacementClassLeft) {\r\n\t\t\t\t\telm.el.style.left = 0;\r\n\t\t\t\t\telm.el.style.bottom = 'calc(50% - ('+ elm.top +'px))';\r\n\t\t\t\t} else if (isPlacementClassRight) {\r\n\t\t\t\t\telm.el.style.right = 0;\r\n\t\t\t\t\telm.el.style.bottom = 'calc(50% - ('+ elm.top +'px))';\r\n\t\t\t\t} else if (isPlacementClassBottom) {\r\n\t\t\t\t\telm.el.style.left = 'calc(50% - ('+ elm.el.clientWidth +'px) / 2)';\r\n\t\t\t\t\telm.el.style.bottom = elm.top + 'px';\r\n\t\t\t\t} else if (isPlacementClassTop) {\r\n\t\t\t\t\telm.el.style.left = 'calc(50% - ('+ elm.el.clientWidth +'px) / 2)';\r\n\t\t\t\t\telm.el.style.top = elm.top + 'px';\r\n\t\t\t\t} else {\r\n\t\t\t\t\telm.el.style.left = 'calc(50% - ('+ elm.el.clientHeight +'px) / 2)';\r\n\t\t\t\t\telm.el.style.bottom = 'calc(50% - '+ elm.top +'px)';\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (isPlacementClassLeft) elm.el.style.left = 0;\r\n\t\t\t\tif (isPlacementClassBottom) elm.el.style.bottom = elm.top + 'px';\r\n\t\t\t\tif (isPlacementClassTop) elm.el.style.top = elm.top + 'px';\r\n\t\t\t\tif (isPlacementClassRight) elm.el.style.right = 0;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t_enableStack() {\r\n\t\tlet elmsShown = [... Selectors.findAll('.vg-toast.show')], top = 0;\r\n\r\n\t\tif (!this._params.stack.enable) {\r\n\t\t\telmsShown.forEach(el => {\r\n\t\t\t\tif (el !== this._element) {\r\n\t\t\t\t\tVGToast.getInstance(el).hide()\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\treturn [{\r\n\t\t\t\tel: this._element,\r\n\t\t\t\ttop: 0,\r\n\t\t\t}];\r\n\t\t}\r\n\r\n\t\telmsShown = elmsShown.map(el => {\r\n\t\t\treturn {\r\n\t\t\t\tel: el,\r\n\t\t\t\ttop: el.clientHeight\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn elmsShown.map(function (value, index) {\r\n\t\t\tif (index === 0) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tel: value.el,\r\n\t\t\t\t\ttop: 0\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\ttop += value.top\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tel: value.el,\r\n\t\t\t\t\ttop: top\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t_clearTimeout() {\r\n\t\tclearTimeout(this._timeout);\r\n\t\tthis._timeout = null;\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\r\n\t\tif (this._params.enableClickToast) {\r\n\t\t\tthis._element.classList.add('vg-toast-pointer');\r\n\r\n\t\t\tEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, '#' + this._element.id, () => {\r\n\t\t\t\tthis.hide();\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}\r\n\r\ndismissTrigger(VGToast);\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\tthis.setAttribute('aria-expanded', false);\r\n\t});\r\n\r\n\tconst data = VGToast.getOrCreateInstance(target);\r\n\tdata.toggle(this);\r\n});\r\n\r\nexport default VGToast;\r\n","import './scss/vgtoast.scss'\r\nimport VGToast from \"./js/vgtoast\";\r\n\r\nexport default VGToast;"],"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","isVisible","getClientRects","length","elementIsVisible","getComputedStyle","getPropertyValue","closedDetails","closest","summary","parentNode","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","result","counter","charAt","Math","floor","characters","random","transliterate","text","enToRu","x","ru","split","en","join","toUpperCase","isRTL","document","documentElement","dir","getSelector","selector","hrefAttribute","includes","startsWith","trim","map","sel","window","CSS","escape","replace","match","id","parseSelector","Selectors","find","Element","querySelector","findAll","container","querySelectorAll","getSelectorFromElement","getElementFromSelector","getMultipleElementsFromSelector","parents","ancestor","push","next","nextElementSibling","matches","previous","previousElementSibling","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","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","getOrCreateInstance","Ajax","XMLHttpRequest","xhr","versions","i","ActiveXObject","e","send","url","callback","data","async","undefined","open","setRequestHeader","onreadystatechange","readyState","status","statusText","response","responseText","code","query","log","encodeURIComponent","uri","post","enable","in","out","delay","duration","classes","animated","_element","_name_key","add","_triggers","Error","_isLoaded","Data","NAME_KEY","_getParams","Params","dispose","propertyName","getOwnPropertyNames","_route","_this","$content","setData","innerHTML","ajax","route","loader","output","once","_dismissElement","button","insertAdjacentHTML","_queueCallback","isAnimated","timeOutMs","transitionElement","waitForTransition","emulatedDuration","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","getTransitionDurationFromElement","called","setTimeout","triggerTransitionEnd","executeAfterTransition","_animation","Animation","getInstance","DATA_KEY","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","PROPERTY_PADDING","PROPERTY_MARGIN","body","getWidth","documentWidth","clientWidth","abs","innerWidth","width","_disableOverFlow","_setElementAttributes","calculatedValue","reset","_resetElementAttributes","isOverflowing","_saveInitialAttribute","overflow","styleProperty","scrollbarWidth","_applyManipulationCallback","setProperty","actualValue","removeProperty","callBack","append","paddingRight","destroy","CLASS_NAME","CLASS_NAME_FADE","Backdrop","_append","_destroy","backdrop","createElement","Overflow","CLASS_NAME_OPEN","CLASS_NAME_SHOW","CLASS_NAME_STATIC","EVENT_KEY_HIDE","EVENT_KEY_HIDDEN","EVENT_KEY_SHOW","EVENT_KEY_SHOWN","EVENT_KEY_RESIZE","EVENT_KEY_LOADED","EVENT_KEY_KEYDOWN_DISMISS","EVENT_KEY_HIDE_PREVENTED","EVENT_KEY_CLICK_DATA_API","EVENT_KEY_MOUSEDOWN_DISMISS","EVENT_KEY_CLICK_DISMISS","EVENT_KEY_DOM_LOADED_DATA_API","EVENT_KEY_POPSTATE_DATA_API","VGModal","BaseModule","super","focus","keyboard","fields","hash","centered","animation","general","dialog","content","header","title","footer","_button","_dialog","_isShown","_isTransitioning","_scrollBar","ScrollBarHelper","_addEventListeners","init","build","btnClose","modal","toggle","stats","defaultPrevented","history","pushState","_addFieldsInModal","_adjustDialog","_showElement","openedModals","_hideModal","_isAnimatedFade","location","pathname","search","_resetAdjustments","scrollTop","modalBody","transitionComplete","isModalOverflowing","scrollHeight","clientHeight","isBodyOverflowing","property","paddingLeft","_triggerBackdropTransition","event2","initialOverflowY","overflowY","item","elements","elm","showEvent","alreadyOpen","targetHash","toast","mode","run","promise","_build","_buildModal","_buildToast","$modal","self","$body","html","message","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_DEEPER_CHILDREN","SELECTOR_DATA_TOGGLE","VGCollapse","parent","_triggerArray","toggleList","elem","filterElement","foundElement","_initializeChildren","_addAriaAndCollapsedClass","activeChildren","_getFirstLevelChildren","activeInstance","height","complete","getBoundingClientRect","triggerArray","isOpen","_changeStateButton","children","selected","arg","drop","_getPlacement","_parent","top","left","isFixed","bounds","styles","TARGET_CONTAINER","EVENT_KEYUP_DATA_API","EVENT_KEYDOWN_DATA_API","EVENT_CLICK_DATA_API","EVENT_MOUSEOVER_DATA_API","EVENT_MOUSEOUT_DATA_API","VGDropdown","defaultParams","offset","placement","timeoutAnimation","hover","_drop","_isPlacement","_setPlacement","completeCallBack","_completeHide","completeCallback","Placement","position","transform","paddingTop","currentElem","hideOpenToggles","keydownHandler","clearDrops","openToggles","context","composedPath","isInput","isEscapeEvent","isUpOrDownEvent","getToggleButton","stopPropagation","TEMPLATES","template","insert","render","tmpl","toHTML","tmplElement","setContent","VGHideShowPass","isShow","Templater","shift","EVENT_SUBMIT_DATA_API","VGFormSender","enabled","errors","redirect","validate","submit","timeout","pass","alert","alertCollapse","alertModal","validation","wasValidate","afterInit","afterSuccess","afterError","interceptors","toLowerCase","isBtnText","isJsonParse","isShowPass","parentElement","request","_alertBefore","href","_alertError","_alertSuccess","getElementsByClassName","_statusButton","_jsonParse","btnSubmitText","btnText","$btnText","$btnTextSend","spinner","parserData","_alertModal","_alertCollapse","bootstrap","Modal","mVG","setDataRelationStatus","$collapse","prepend","collapse","$element","$alert","txt","t","view","icon","checkValidity","FormData","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","VGLoadMore","limit","autohide","fOffset","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_RESIZE_DATA_API","VGNav","breakpoint","hamburgerActive","hamburgerAlways","hamburger","wrapper","active","expand","cloned","flip","always","_navigation","navigation","movedLinks","$links","Responsive","mTitle","$dropdown_a","width_navigation_responsive","width_all_links_responsive","$dots","_dots","$a","$linkStyle","$link","insertBefore","appendChild","splice","$d","$dropdown","link","setCollapse","firstElementChild","$drop","right","N_right","$ul","$el","setDropPosition","index","drops","hideOpenDrops","click","isFirst","vgNavSidebar","getElementById","CLASS_NAME_HIDE","VGRollup","cnt","fade","transition","number","ellipsis","line","more","less","hidden","total","count","isOffset","isRemainder","textShowNum","sum","switch","isButtonAppend","self_height","set_height","isFade","isTransition","isEllipsis","isButton","isShowNum","elementClass","items","webkitLineClamp","btnTextMore","switcher","className","CLASS_NAME_CONTAINER","CLASS_NAME_DROPDOWN","CLASS_NAME_LIST","CLASS_NAME_OPTION","CLASS_NAME_OPTGROUP","CLASS_NAME_CURRENT","CLASS_NAME_PLACEHOLDER","EVENT_KEY_UP_DATA_API","EVENT_RESET_DATA_API","EVENT_KEY_CHANGE","observerTimout","VGSelect","placeholder","refresh","buildListOptions","isPlaceholder","options","list","option","optGroup","isSelected","olOptGroup","liLabel","label","createLi","li","dataset","liData","selectedIndex","reBuild","option_selected","isSearch","inited","isSelectedOption","innerText","_class","elData","current","dropdown","insertAdjacentElement","search_container","input","select","previousSibling","MutationObserver","clearTimeout","observe","attributeFilter","childList","subtree","characterDataOldValue","changeSelector","isRebuild","selectList","optionsGroup","arrOptions","val","VGSidebar","EVENT_ACTIVATE","EVENT_CLICK","EVENT_LOAD_DATA_API","SELECTOR_TARGET_LINKS","SELECTOR_NAV_LINKS","SELECTOR_LINK_ITEMS","VGSpy","rootMargin","smoothScroll","threshold","_targetLinks","_observableSections","_rootElement","_activeTarget","_observer","_previousScrollData","visibleEntryTop","parentScrollTop","_configAfterMerge","_initializeTargetsAndObservables","_maybeEnableSmoothScroll","disconnect","_getNewObserver","section","param","jquery","observableSection","root","offsetTop","scrollTo","behavior","IntersectionObserver","_observerCallback","targetElement","entry","activate","_process","userScrollsDown","isIntersecting","_clearActiveClass","entryIsLowerThanPrevious","targetLinks","anchor","decodeURI","_activateParents","listGroup","activeNodes","node","spy","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_LOADED","EVENT_KEYDOWN","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","HOME_KEY","END_KEY","CLASS_NAME_HOVER","CLASS_SLIDER","SELECTOR_DROPDOWN_TOGGLE","NOT_SELECTOR_DROPDOWN_TOGGLE","SELECTOR_INNER_ELEM","SELECTOR_DATA_TOGGLE_ACTIVE","VGTabs","slide","_main_parent","TypeError","outerHTML","_setInitialAttributes","_getChildren","_setInitialSlider","_setTabHash","_keydown","innerElem","_elemIsActive","_getActiveElem","hideEvent","_deactivate","_activate","child","relatedElem","_toggleDropDown","blur","nextActiveElement","isNext","getNextActiveElement","activeElement","shouldGetNext","listLength","max","min","preventScroll","slider","link_active","offsetLeft","link_target","link_current_hover","_setAttributeIfNotExists","_setInitialAttributesOnChild","_getInnerElement","isActive","outerElem","_getOuterElement","_setInitialAttributesOnTargetPanel","attribute","VGToast","enableClickToast","enableButtonClose","theme","stack","_timeout","_clearTimeout","_scheduleHide","elms","_enableStack","isPlacementClassTop","isPlacementClassBottom","isPlacementClassLeft","isPlacementClassRight","isPlacementClassCenter","bottom","elmsShown"],"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/scrollbar.js","webpack://vg/./app/utils/js/components/overflow.js","webpack://vg/./app/utils/js/components/backdrop.js","webpack://vg/./app/modules/vgmodal/js/vgmodal.js","webpack://vg/./app/modules/vgalert/js/vgalert.js","webpack://vg/./app/modules/vgalert/index.js","webpack://vg/./app/modules/vgcollapse/js/vgcollapse.js","webpack://vg/./app/modules/vgcollapse/index.js","webpack://vg/./app/utils/js/components/placement.js","webpack://vg/./app/modules/vgdropdown/js/vgdropdown.js","webpack://vg/./app/modules/vgdropdown/index.js","webpack://vg/./app/utils/js/components/templater.js","webpack://vg/./app/modules/vgformsender/js/hideshowpass.js","webpack://vg/./app/modules/vgformsender/js/vgformsender.js","webpack://vg/./app/modules/vgformsender/index.js","webpack://vg/./app/utils/js/dom/cookie.js","webpack://vg/./app/modules/vglawcookie/js/vglawcookie.js","webpack://vg/./app/modules/vglawcookie/index.js","webpack://vg/./app/modules/vgloadmore/js/vgloadmore.js","webpack://vg/./app/modules/vgloadmore/index.js","webpack://vg/./app/modules/vgmodal/index.js","webpack://vg/./app/utils/js/components/responsive.js","webpack://vg/./app/modules/vgnav/js/vgnav.js","webpack://vg/./app/modules/vgnav/index.js","webpack://vg/./app/modules/vgrollup/js/vgrollup.js","webpack://vg/./app/modules/vgrollup/index.js","webpack://vg/./app/modules/vgselect/js/vgselect.js","webpack://vg/./app/modules/vgselect/index.js","webpack://vg/./app/modules/vgsidebar/js/vgsidebar.js","webpack://vg/./app/modules/vgsidebar/index.js","webpack://vg/./app/modules/vgspy/js/vgspy.js","webpack://vg/./app/modules/vgspy/index.js","webpack://vg/./app/modules/vgtabs/js/vgtabs.js","webpack://vg/./app/modules/vgtabs/index.js","webpack://vg/./app/modules/vgtoast/js/vgtoast.js","webpack://vg/./app/modules/vgtoast/index.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 {string} selector\r\n * @returns {string}\r\n */\r\nconst parseSelector = selector => {\r\n\tif (selector && window.CSS && window.CSS.escape) {\r\n\t\t// document.querySelector needs escaping to handle IDs (html5+) containing for instance /\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\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\nconst getElement = object => {\r\n\t// it's a jQuery object or a node element\r\n\tif (isElement(object)) {\r\n\t\treturn object.jquery ? object[0] : object\r\n\t}\r\n\r\n\tif (typeof object === 'string' && object.length > 0) {\r\n\t\treturn document.querySelector(parseSelector(object))\r\n\t}\r\n\r\n\treturn null\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\tif (!isObject) return;\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\n * @param {array} list The list of elements\r\n * @param activeElement The active element\r\n * @param shouldGetNext Choose to get next or previous element\r\n * @param isCycleAllowed\r\n * @return {Element|elem} The proper element\r\n */\r\nconst getNextActiveElement = (list, activeElement, shouldGetNext, isCycleAllowed) => {\r\n\tconst listLength = list.length\r\n\tlet index = list.indexOf(activeElement)\r\n\r\n\t// if the element does not exist in the list return an element\r\n\t// depending on the direction and if cycle is allowed\r\n\tif (index === -1) {\r\n\t\treturn !shouldGetNext && isCycleAllowed ? list[listLength - 1] : list[0]\r\n\t}\r\n\r\n\tindex += shouldGetNext ? 1 : -1\r\n\r\n\tif (isCycleAllowed) {\r\n\t\tindex = (index + listLength) % listLength\r\n\t}\r\n\r\n\treturn list[Math.max(0, Math.min(index, listLength - 1))]\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, getElement, getNextActiveElement}","/**\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\tparents(element, selector) {\r\n\t\tconst parents = []\r\n\t\tlet ancestor = element.parentNode.closest(selector)\r\n\r\n\t\twhile (ancestor) {\r\n\t\t\tparents.push(ancestor)\r\n\t\t\tancestor = ancestor.parentNode.closest(selector)\r\n\t\t}\r\n\r\n\t\treturn parents\r\n\t},\r\n\r\n\tnext(element, selector) {\r\n\t\tlet next = element.nextElementSibling\r\n\r\n\t\twhile (next) {\r\n\t\t\tif (next.matches(selector)) {\r\n\t\t\t\treturn [next]\r\n\t\t\t}\r\n\r\n\t\t\tnext = next.nextElementSibling;\r\n\t\t}\r\n\r\n\t\treturn []\r\n\t},\r\n\r\n\tprev(element, selector) {\r\n\t\tlet previous = element.previousElementSibling\r\n\r\n\t\twhile (previous) {\r\n\t\t\tif (previous.matches(selector)) {\r\n\t\t\t\treturn [previous]\r\n\t\t\t}\r\n\r\n\t\t\tprevious = previous.previousElementSibling\r\n\t\t}\r\n\r\n\t\treturn []\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'popstate',\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 in data) {\r\n\t\t\t\tquery.push(encodeURIComponent(key) + '=' + encodeURIComponent(data[key]));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tlet uri = '';\r\n\t\tif (query.length) {\r\n\t\t\turi += url.includes('?') ? '&' : '?';\r\n\t\t\turi += query.join('&');\r\n\t\t}\r\n\r\n\t\tAjax.send(url + uri, 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\tduration: 800,\r\n\t\t}, params);\r\n\r\n\t\tthis.classes = {\r\n\t\t\tanimated: 'animate__animated',\r\n\t\t\tduration: 'animate__duration-' + this._params.duration\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\tthis._element.classList.add(this.classes.duration);\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\tthis._isLoaded = false;\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\tif (_this._isLoaded) return;\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\tif ('output' in _this._params.ajax && _this._params.ajax.output) {\r\n\t\t\t\tsetData('<div class=\"vg-loader\"></div>');\r\n\t\t\t}\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\tif ('once' in _this._params.ajax && _this._params.ajax.once) {\r\n\t\t\t\t_this._isLoaded = true;\r\n\t\t\t}\r\n\r\n\t\t\tif ('output' in _this._params.ajax && _this._params.ajax.output) {\r\n\t\t\t\tsetData(data.response);\r\n\t\t\t}\r\n\r\n\t\t\texecute(callback, [status, data, $content]);\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;","/**\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 {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 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\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\nconst EVENT_KEY_DOM_LOADED_DATA_API = `DOMContentLoaded.${NAME_KEY}.data.api`;\r\nconst EVENT_KEY_POPSTATE_DATA_API = `popstate.${NAME_KEY}.data.api`;\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\thash: false,\r\n\t\t\tcentered: 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\tloader: false,\r\n\t\t\t\tonce: false,\r\n\t\t\t\toutput: true,\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: 100,\r\n\t\t\t\tduration: 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\tif ('centered' in params && params.centered) {\r\n\t\t\tdialog.classList.add('vg-modal-dialog-centered');\r\n\t\t}\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\r\n\t\treturn 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\tif (this._params.hash) {\r\n\t\t\twindow.history.pushState(null, \"vg-sidebar-open\", \"#\" + this._element.id);\r\n\r\n\t\t\tEventHandler.on(window, EVENT_KEY_POPSTATE_DATA_API, () => {\r\n\t\t\t\tthis.hide();\r\n\t\t\t});\r\n\t\t}\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\tif (this._params.hash) {\r\n\t\t\thistory.pushState(\"\", document.title, window.location.pathname + window.location.search);\r\n\t\t}\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(document, 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((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 + ']', this._element);\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\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\nEventHandler.on(document, EVENT_KEY_DOM_LOADED_DATA_API, function () {\r\n\tlet targetHash = window.location.hash.slice(1);\r\n\tif (targetHash) {\r\n\t\tlet target = Selectors.find('#' + targetHash);\r\n\t\tif (target && target.classList.contains('vg-modal')) {\r\n\t\t\tif (isDisabled(target)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst data = VGModal.getOrCreateInstance(target)\r\n\t\t\tdata.toggle();\r\n\t\t}\r\n\t}\r\n})\r\n\r\nexport default VGModal;","import BaseModule from \"../../base-module\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {isDisabled, makeRandomString, mergeDeepObject} from \"../../../utils/js/functions\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport VGModal from \"../../vgmodal/js/vgmodal\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'alert';\r\nconst NAME_KEY = 'vg.alert';\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"alert\"]';\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nlet IS_PROMISE = false;\r\n\r\nclass VGAlert 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\tmodal: {\r\n\t\t\t\tcentered: false,\r\n\t\t\t\tbackdrop: true,\r\n\t\t\t\toverflow: true,\r\n\t\t\t\tkeyboard: true,\r\n\t\t\t\tanimation: {\r\n\t\t\t\t\tenable: false,\r\n\t\t\t\t\tin: 'animate__rollIn',\r\n\t\t\t\t\tout: 'animate__rollOut',\r\n\t\t\t\t\tdelay: 0,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t\ttoast: {\r\n\r\n\t\t\t},\r\n\t\t\telements: {\r\n\t\t\t\tbutton: ''\r\n\t\t\t},\r\n\t\t\tdialog: 'modal',\r\n\t\t\tmode: 'alert',\r\n\t\t}, params));\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 run(... args) {\r\n\r\n\t}\r\n\r\n\ttoggle(event) {\r\n\r\n\t}\r\n\r\n\tpromise(event) {\r\n\r\n\t}\r\n\r\n\t_build() {\r\n\t\tif (this._params.dialog === 'modal') {\r\n\t\t\treturn this._buildModal();\r\n\t\t}\r\n\t\tif (this._params.dialog === 'toast') {\r\n\t\t\treturn this._buildToast();\r\n\t\t}\r\n\t}\r\n\r\n\t_buildModal() {\r\n\t\tlet id = 'vg-alert-' + makeRandomString(),\r\n\t\t\t$modal = Selectors.find('.vg-alert-modal');\r\n\r\n\t\tif ($modal) $modal.remove();\r\n\r\n\t\treturn VGModal.build(id, this._params.modal, (self) => {\r\n\t\t\tlet element = self._element;\r\n\t\t\telement.classList.add('vg-alert-modal');\r\n\r\n\t\t\tlet $body = Selectors.find('.vg-modal-body', element);\r\n\t\t\tif ($body) {\r\n\t\t\t\tlet html = '<div class=\"message\">' + this._params.message + '</div>';\r\n\r\n\t\t\t\thtml += '<div class=\"buttons\">';\r\n\t\t\t\tif (this._params.elements.button) {\r\n\t\t\t\t\thtml += '<a href=\"#\" data-vg-dismiss=\"modal\" class=\"btn btn-primary\">'+ this._params.elements.button +'</a>';\r\n\t\t\t\t}\r\n\t\t\t\thtml += '</div>';\r\n\r\n\t\t\t\t$body.innerHTML = html;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t_buildToast() {\r\n\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\r\n});\r\n\r\n/*window.alert = (message) => {\r\n\tVGAlert.run(message);\r\n}*/\r\n\r\nexport default VGAlert;","// alert\r\nimport \"./scss/vgalert.scss\";\r\nimport VGAlert from \"./js/vgalert\";\r\n\r\nexport default VGAlert;","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\tonce: false,\r\n\t\t\t\toutput: true,\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;","import VGCollapse from \"./js/vgcollapse\";\r\n\r\nexport default VGCollapse;","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\tloader: false,\r\n\t\t\t\tonce: false,\r\n\t\t\t\toutput: true,\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;","import './scss/vgdropdown.scss';\r\nimport VGDropdown from \"./js/vgdropdown\";\r\n\r\nexport default VGDropdown;","import {execute, mergeDeepObject} from \"../functions\";\r\n\r\nconst TEMPLATES = [\r\n\t{type: 'pass-open', template: '<span data-vg-toggle=\"pass\" class=\"[[classes]]\" title=\"Показать / Скрыть\" data-bs-toggle=\"tooltip\"><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 576 512\"><path d=\"M288 80c-65.2 0-118.8 29.6-159.9 67.7C89.6 183.5 63 226 49.4 256c13.6 30 40.2 72.5 78.6 108.3C169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256c-13.6-30-40.2-72.5-78.6-108.3C406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1c3.3 7.9 3.3 16.7 0 24.6c-14.9 35.7-46.2 87.7-93 131.1C433.5 443.2 368.8 480 288 480s-145.5-36.8-192.6-80.6C48.6 356 17.3 304 2.5 268.3c-3.3-7.9-3.3-16.7 0-24.6C17.3 208 48.6 156 95.4 112.6zM288 336c44.2 0 80-35.8 80-80s-35.8-80-80-80c-.7 0-1.3 0-2 0c1.3 5.1 2 10.5 2 16c0 35.3-28.7 64-64 64c-5.5 0-10.9-.7-16-2c0 .7 0 1.3 0 2c0 44.2 35.8 80 80 80zm0-208a128 128 0 1 1 0 256 128 128 0 1 1 0-256z\"/></svg></span>'},\r\n\t{type: 'pass-close', template: '<span data-vg-toggle=\"pass\" class=\"[[classes]]\" title=\"Показать / Скрыть\" data-bs-toggle=\"tooltip\"><svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 640 512\"><!--!Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2025 Fonticons, Inc.--><path d=\"M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zm151 118.3C226 97.7 269.5 80 320 80c65.2 0 118.8 29.6 159.9 67.7C518.4 183.5 545 226 558.6 256c-12.6 28-36.6 66.8-70.9 100.9l-53.8-42.2c9.1-17.6 14.2-37.5 14.2-58.7c0-70.7-57.3-128-128-128c-32.2 0-61.7 11.9-84.2 31.5l-46.1-36.1zM394.9 284.2l-81.5-63.9c4.2-8.5 6.6-18.2 6.6-28.3c0-5.5-.7-10.9-2-16c.7 0 1.3 0 2 0c44.2 0 80 35.8 80 80c0 9.9-1.8 19.4-5.1 28.2zm9.4 130.3C378.8 425.4 350.7 432 320 432c-65.2 0-118.8-29.6-159.9-67.7C121.6 328.5 95 286 81.4 256c8.3-18.4 21.5-41.5 39.4-64.8L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5l-41.9-33zM192 256c0 70.7 57.3 128 128 128c13.3 0 26.1-2 38.2-5.8L302 334c-23.5-5.4-43.1-21.2-53.7-42.3l-56.1-44.2c-.2 2.8-.3 5.6-.3 8.5z\"/></svg></span>'},\r\n\t{type: 'loader', template: '<div class=\"vg-loader\"></div>'}\r\n]\r\n\r\n\r\nclass Templater {\r\n\tconstructor(el, params = {}) {\r\n\t\tif (!el) {\r\n\t\t\tthrow new Error('Element is required');\r\n\t\t}\r\n\r\n\t\tthis._element = el;\r\n\t\tthis._params = mergeDeepObject({\r\n\t\t\tinsert: 'afterend',\r\n\t\t\tclasses: []\r\n\t\t}, params);\r\n\t}\r\n\r\n\trender(content, callback) {\r\n\t\tlet tmpl = this.toHTML(content, callback);\r\n\r\n\t\tswitch (this._params.insert) {\r\n\t\t\tcase 'afterend':\r\n\t\t\t\tthis._element.insertAdjacentHTML('afterend', tmpl);\r\n\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\ttoHTML(content = '' | null, callback) {\r\n\t\tlet tmpl = '';\r\n\r\n\t\tfor (const tmplElement of TEMPLATES) {\r\n\t\t\tif (tmplElement.type === this._params.template) {\r\n\t\t\t\ttmpl = tmplElement.template;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (!tmpl) return;\r\n\r\n\t\ttmpl = tmpl.replace('[[classes]]', this._params.classes.join(' '));\r\n\t\texecute(callback, [this._element, this._params, tmpl]);\r\n\r\n\t\treturn tmpl;\r\n\t}\r\n\r\n\tsetContent() {\r\n\r\n\t}\r\n}\r\n\r\nexport default Templater;","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} from \"../../../utils/js/functions\";\r\nimport Templater from \"../../../utils/js/components/templater\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'hideshowpass';\r\nconst NAME_KEY = 'vg.hideshowpass';\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"pass\"]';\r\n\r\nconst CLASS_NAME_SHOW = 'show';\r\n\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nclass VGHideShowPass extends BaseModule{\r\n\tconstructor(el, params = {}) {\r\n\t\tsuper(el, params);\r\n\r\n\t\tthis._params = this._getParams(el, mergeDeepObject({}, params));\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(relatedTarget);\r\n\t}\r\n\r\n\tshow(relatedTarget) {\r\n\t\tif (relatedTarget) this._params = this._getParams(relatedTarget, this._params);\r\n\r\n\t\tthis._element.classList.add(CLASS_NAME_SHOW);\r\n\t\trelatedTarget.remove();\r\n\t\tthis.build(true);\r\n\t\tManipulator.set(this._element, 'type', 'text');\r\n\t}\r\n\r\n\thide(relatedTarget) {\r\n\t\tthis._element.classList.remove(CLASS_NAME_SHOW);\r\n\t\trelatedTarget.remove();\r\n\t\tthis.build(false);\r\n\t\tManipulator.set(this._element, 'type', 'password');\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\tstatic init(el, params) {\r\n\t\tlet instance = VGHideShowPass.getOrCreateInstance(el, params);\r\n\t\tinstance.build(false);\r\n\t}\r\n\r\n\tbuild(isShow = false) {\r\n\t\tif (!isShow) {\r\n\t\t\tthis._params.template = 'pass-close';\r\n\t\t} else {\r\n\t\t\tthis._params.template = 'pass-open';\r\n\t\t}\r\n\r\n\t\tnew Templater(this._element, this._params).render();\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.prev(this, 'input');\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 instance = VGHideShowPass.getOrCreateInstance(target.shift())\r\n\tinstance.toggle(this);\r\n});\r\n\r\nexport default VGHideShowPass","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 {\r\n\texecute,\r\n\tisObject,\r\n\tisVisible,\r\n\tmakeRandomString,\r\n\tmergeDeepObject,\r\n\tnoop,\r\n\tnormalizeData\r\n} 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 VGHideShowPass from \"./hideshowpass\";\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\tresponse: {\r\n\t\t\t\tenabled: false,\r\n\t\t\t\terrors: false,\r\n\t\t\t\ttitle: '',\r\n\t\t\t\tmessage: '',\r\n\t\t\t},\r\n\t\t\tredirect: {\r\n\t\t\t\terror: '',\r\n\t\t\t\tsuccess: ''\r\n\t\t\t},\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\tpass: {\r\n\t\t\t\tenabled: true,\r\n\t\t\t\ttemplate: 'pass-open',\r\n\t\t\t\tclasses: ['vg-form-sender--hide-show-pass'],\r\n\t\t\t\tinsert: 'afterend'\r\n\t\t\t},\r\n\t\t\talert: {\r\n\t\t\t\tenabled: true,\r\n\t\t\t\ttype: 'modal',\r\n\t\t\t\terrors: true,\r\n\t\t\t\tdelay: 0\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\tcontent: 'vg-form-sender--content'\r\n\t\t\t},\r\n\t\t\tcallback: {\r\n\t\t\t\tafterInit: noop,\r\n\t\t\t\tafterSuccess: noop,\r\n\t\t\t\tafterError: noop,\r\n\t\t\t},\r\n\t\t\tinterceptors: {\r\n\t\t\t\tsuccess: false,\r\n\t\t\t\terror: false\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\t[... Selectors.findAll('input, textarea, select', this._element)].forEach((el) => {\r\n\t\t\tif (isVisible(el)) {\r\n\t\t\t\tel.parentElement.classList.add(this._params.classes.content)\r\n\t\t\t}\r\n\t\t});\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\tif (this._params.pass.enabled) {\r\n\t\t\t[... Selectors.findAll('input[type=\"password\"]', this._element)].forEach((el) => {\r\n\t\t\t\tVGHideShowPass.init(el, this._params.pass);\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\texecute(this._params.callback.afterInit, [this._element, this]);\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.response.enabled) {\r\n\t\t\t\tdata.response = _this._params.response;\r\n\t\t\t}\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\tif (_this._params.redirect.error) {\r\n\t\t\t\t\t\twindow.location.href = _this._params.redirect.error;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (!_this._params.interceptors.error) {\r\n\t\t\t\t\t\t\t_this._alertError(event, data);\r\n\t\t\t\t\t\t\texecute(_this._params.callback.afterError, [_this._element, _this, event, data]);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\texecute(_this._params.callback.afterError, [_this._element, _this, event, data]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (typeof status === 'string' && status === 'success') {\r\n\t\t\t\t\tif (_this._params.redirect.success) {\r\n\t\t\t\t\t\twindow.location.href = _this._params.redirect.success;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (!_this._params.interceptors.success) {\r\n\t\t\t\t\t\t\t_this._alertSuccess(event, data);\r\n\t\t\t\t\t\t\texecute(_this._params.callback.afterSuccess, [_this._element, _this, event, data]);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\texecute(_this._params.callback.afterSuccess, [_this._element, _this, event, data]);\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\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\r\n\t\t\t\tif (_this._params.alert.delay > 0) {\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tself.hide();\r\n\t\t\t\t\t}, _this._params.alert.delay)\r\n\t\t\t\t}\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\tlet collapse = VGCollapse.getOrCreateInstance($collapse, {toggle: false});\r\n\t\tcollapse.toggle();\r\n\r\n\t\tif (_this._params.alert.delay > 0) {\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tcollapse.hide();\r\n\t\t\t}, _this._params.alert.delay)\r\n\t\t}\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 && this._params.alert.errors) {\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\tif (!title) txt += '<h4 class=\"vg-alert-content--title\">' + code + '</h4>';\r\n\t\t\t\t\t\telse txt += '<h4 class=\"vg-alert-content--title\">' + title + '</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 && this._params.alert.errors) {\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 './scss/vgformsender.scss';\r\nimport VGFormSender from \"./js/vgformsender\";\r\n\r\nexport default VGFormSender;","/*! 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\tloader: false,\r\n\t\t\t\tonce: false,\r\n\t\t\t\toutput: true,\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 './scss/vglawcookie.scss';\r\nimport VGLawCookie from \"./js/vglawcookie\";\r\n\r\nexport default VGLawCookie;","import BaseModule from \"../../base-module\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {execute, isObject, mergeDeepObject, normalizeData} from \"../../../utils/js/functions\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport {Manipulator} from \"../../../utils/js/dom/manipulator\";\r\n\r\nconst NAME = 'loadmore';\r\nconst NAME_KEY = 'vg.loadmore';\r\n\r\nconst SELECTOR_DATA_TOGGLE = '[data-vg-toggle=\"loadmore\"]';\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 CLASS_NAME_HIDE = 'vg-collapse';\r\nconst CLASS_NAME_SHOW = 'show';\r\n\r\nconst EVENT_KEY_CLICK_DATA_API = `click.${NAME_KEY}.data.api`;\r\n\r\nclass VGLoadMore 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\tlimit: 0,\r\n\t\t\toffset: 0,\r\n\t\t\toutput: true,\r\n\t\t\tautohide: true,\r\n\t\t\tbutton: {\r\n\t\t\t\ttext: '',\r\n\t\t\t\tsend: 'Загружаем...',\r\n\t\t\t\tclasses: []\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\tonce: false,\r\n\t\t\t\toutput: false,\r\n\t\t\t},\r\n\t\t}, params));\r\n\r\n\t\tthis.fOffset = this._params.offset;\r\n\r\n\t\tif (!this._params.button.text) {\r\n\t\t\tthis._params.button.text = this._element.innerHTML;\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\tstatic init(el, callback) {\r\n\t\tlet id = el.id,\r\n\t\t\titems = normalizeData(el.dataset.elements),\r\n\t\t\tlimit = normalizeData(el.dataset.limit),\r\n\t\t\toffset = normalizeData(el.dataset.offset),\r\n\t\t\toutput = el.dataset.output || 'true',\r\n\t\t\tautohide = el.dataset.autohide || 'true',\r\n\t\t\tparams = el.dataset.params,\r\n\t\t\tbuttonParams = normalizeData(el.dataset.button);\r\n\r\n\t\tif (!isObject(buttonParams)) {\r\n\t\t\tconsole.log('Дата атрибут data-button должен быть в формате json и передавать объект');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (limit < offset) {\r\n\t\t\tconsole.log('Параметр offset должен быть меньше или равен параметру limit');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (!id && !items && !limit && !offset) return;\r\n\r\n\t\tlet itemsElements = [... Selectors.findAll('.' + items, el)];\r\n\r\n\t\tif (itemsElements.length <= limit) return;\r\n\r\n\t\titemsElements.forEach((item, i) => {\r\n\t\t\titem.classList.add(CLASS_NAME_HIDE)\r\n\t\t\tif ((i + 1) <= limit) item.classList.add(CLASS_NAME_SHOW)\r\n\t\t});\r\n\r\n\t\tlet button = document.createElement('button');\r\n\r\n\t\tbuttonParams.text = normalizeData(el.dataset.buttonText) || 'Показать еще';\r\n\r\n\t\tManipulator.set(button, 'data-limit', limit);\r\n\t\tManipulator.set(button, 'data-offset', offset);\r\n\t\tManipulator.set(button, 'data-output', output);\r\n\t\tManipulator.set(button, 'data-autohide', autohide);\r\n\t\tManipulator.set(button, 'data-elements', items);\r\n\t\tManipulator.set(button, 'data-vg-toggle', 'loadmore');\r\n\t\tManipulator.set(button, 'data-target', '#' + id);\r\n\r\n\t\tif (params) Manipulator.set(button, 'data-autohide', params);\r\n\r\n\t\tbutton.innerHTML = buttonParams.text\r\n\r\n\t\tif ('classes' in buttonParams && buttonParams.classes.length) {\r\n\t\t\tbuttonParams.classes.forEach(cl => button.classList.add(cl));\r\n\t\t}\r\n\r\n\t\tel.parentNode.insertBefore(button, el.nextSibling);\r\n\r\n\t\texecute(callback, [el, button]);\r\n\t}\r\n\r\n\ttoggle(callback) {\r\n\t\tif (this._params.ajax.route) {\r\n\t\t\tthis.ajax(callback);\r\n\t\t} else {\r\n\t\t\tthis.static(callback);\r\n\t\t}\r\n\t}\r\n\r\n\tajax(callback) {\r\n\t\tthis._params.ajax.data = {\r\n\t\t\tlimit: this._params.limit,\r\n\t\t\toffset: this._params.offset\r\n\t\t}\r\n\r\n\t\tif (this._params.button.send) {\r\n\t\t\tthis._element.innerHTML = this._params.button.send;\r\n\t\t}\r\n\r\n\t\tthis._route((status, data, target) => {\r\n\t\t\tif ('loader' in this._params.ajax && this._params.ajax.loader) {\r\n\t\t\t\tlet loader = Selectors.find('.vg-loader', target);\r\n\t\t\t\tif (loader) loader.remove();\r\n\t\t\t}\r\n\r\n\t\t\tif ('output' in this._params && this._params.output) {\r\n\t\t\t\ttarget.insertAdjacentHTML('beforeend', data.response);\r\n\t\t\t}\r\n\r\n\t\t\tthis._params.offset = this.counter();\r\n\t\t\tthis._element.innerHTML = this._params.button.text;\r\n\r\n\t\t\tif ('autohide' in this._params && this._params.autohide) {\r\n\t\t\t\tif (!data.response) this._element.remove();\r\n\t\t\t}\r\n\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_LOADED, {stats: status, data: data});\r\n\t\t\texecute(callback, [this, data, target, status]);\r\n\t\t});\r\n\t}\r\n\r\n\tstatic(callback) {\r\n\t\tif (!'elements' in this._params && !'target' in this._params) return;\r\n\r\n\t\tlet container = Selectors.find(this._params.target),\r\n\t\t\titems = Selectors.findAll('.' + this._params.elements, container);\r\n\r\n\t\tif (items) {\r\n\t\t\titems.slice(this._params.offset, this._params.offset + this._params.limit).forEach(item => item.classList.add(CLASS_NAME_SHOW));\r\n\t\t\tthis._params.offset = this.counter();\r\n\t\t}\r\n\r\n\t\tlet itemsHidden = Selectors.findAll('.' + this._params.elements + ':not(.show)', container);\r\n\r\n\t\tif (this.remainder(itemsHidden.length)) {\r\n\t\t\tif ('autohide' in this._params && this._params.autohide) {\r\n\t\t\t\tthis._element.remove();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\texecute(callback, [this, this._element]);\r\n\t}\r\n\r\n\tcounter() {\r\n\t\treturn this.fOffset + this._params.offset;\r\n\t}\r\n\r\n\tremainder(count) {\r\n\t\treturn count === 0\r\n\t}\r\n}\r\n\r\nEventHandler.on(document, 'DOMContentLoaded', function () {\r\n\t[... document.querySelectorAll('[data-vgloadmore]')].forEach(el => {\r\n\t\tVGLoadMore.init(el);\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 = this;\r\n\r\n\tif (['A', 'AREA'].includes(this.tagName)) event.preventDefault();\r\n\r\n\tconst instance = VGLoadMore.getOrCreateInstance(target);\r\n\tinstance.toggle();\r\n});\r\n\r\n\r\nexport default VGLoadMore;","import VGLoadMore from \"./js/vgloadmore\";\r\n\r\nexport default VGLoadMore","import './scss/vgmodal.scss';\r\nimport VGModal from \"./js/vgmodal\";\r\n\r\nexport default VGModal;","/**\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\tloader: false,\r\n\t\t\t\tonce: false,\r\n\t\t\t\toutput: true,\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 () {\r\n\tif (Selectors.find('.vg-nav')) {\r\n\t\tconst instance = VGNav.getOrCreateInstance('.vg-nav', {});\r\n\t\tinstance.build();\r\n\t}\r\n})\r\n\r\nexport default VGNav;","import './scss/vgnav.scss';\r\nimport VGNav from \"./js/vgnav\";\r\n\r\nexport default VGNav;","import BaseModule from \"../../base-module\";\r\nimport {execute, isDisabled, mergeDeepObject} from \"../../../utils/js/functions\";\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 = 'rollup';\r\nconst NAME_KEY = 'vg.rollup';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_NAME_HIDE = 'vg-rollup-display--none';\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"rollup\"]'\r\n\r\nconst EVENT_KEY_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_KEY_SHOW = `${NAME_KEY}.show`;\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\t\t\tcontent: 'text',\r\n\t\t\tcnt: 0,\r\n\t\t\tfade: true,\r\n\t\t\ttransition: false,\r\n\t\t\tnumber: false,\r\n\t\t\theight: 0,\r\n\t\t\tellipsis: {\r\n\t\t\t\tline: null\r\n\t\t\t},\r\n\t\t\tmore: ' еще ',\r\n\t\t\tbutton: {\r\n\t\t\t\tenable: true,\r\n\t\t\t\tmore: \"Показать\",\r\n\t\t\t\tless: \"Свернуть\"\r\n\t\t\t}\r\n\t\t}, params));\r\n\r\n\t\tthis.classes = {\r\n\t\t\tcontainer: 'vg-rollup',\r\n\t\t\thidden: \"vg-rollup-content--hidden\",\r\n\t\t\tfade: \"vg-rollup-content--fade\",\r\n\t\t\tellipsis: \"vg-rollup-content--ellipsis\",\r\n\t\t\tbutton: \"vg-rollup-content--button\",\r\n\t\t\ttransition: \"vg-rollup-content--transition\"\r\n\t\t};\r\n\r\n\t\tthis.total = 0;\r\n\t\tthis.count = 0;\r\n\r\n\t\tthis.build();\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 toggle(target, relatedTarget) {\r\n\t\tconst instance = VGRollup.getOrCreateInstance(target);\r\n\t\tlet isShown = instance.isShow();\r\n\r\n\t\tif (!isShown) {\r\n\t\t\tinstance._element.classList.add(CLASS_NAME_SHOW);\r\n\t\t\trelatedTarget.innerHTML = instance._params.button.less;\r\n\t\t\trelatedTarget.setAttribute(\"aria-expanded\", true);\r\n\r\n\t\t\tif (instance.offset > 0) {\r\n\t\t\t\tif (instance.isOffset) {\r\n\t\t\t\t\trelatedTarget.innerHTML = instance._params.button.more;\r\n\t\t\t\t\trelatedTarget.setAttribute(\"aria-expanded\", true);\r\n\t\t\t\t} else {\r\n\t\t\t\t\trelatedTarget.innerHTML = instance._params.button.less;\r\n\t\t\t\t\trelatedTarget.setAttribute(\"aria-expanded\", false);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tinstance.switch(instance._element, false);\r\n\t\t\tEventHandler.trigger(instance._element, EVENT_KEY_SHOW, { relatedTarget });\r\n\t\t} else {\r\n\t\t\tlet textShowNum = '',\r\n\t\t\t\tisShowNum = instance._params.number;\r\n\r\n\r\n\t\t\tif (isShowNum) {\r\n\t\t\t\tlet sum = (instance.total) - (instance.count);\r\n\r\n\t\t\t\tif (sum > 0) {\r\n\t\t\t\t\ttextShowNum = instance._params.more + sum;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (instance.isOffset) {\r\n\t\t\t\trelatedTarget.setAttribute(\"aria-expanded\", true);\r\n\t\t\t} else {\r\n\t\t\t\trelatedTarget.setAttribute(\"aria-expanded\", false);\r\n\t\t\t}\r\n\r\n\t\t\tinstance._element.classList.remove(CLASS_NAME_SHOW);\r\n\t\t\trelatedTarget.innerHTML = instance._params.button.more + textShowNum;\r\n\t\t\tinstance.switch(instance._element, true);\r\n\r\n\t\t\tEventHandler.trigger(instance._element, EVENT_KEY_HIDE, { relatedTarget });\r\n\t\t}\r\n\t}\r\n\r\n\tbuild(el = null, isButtonAppend = true) {\r\n\t\tlet _this = this,\r\n\t\t\telement = el || _this._element,\r\n\t\t\tself_height = element.clientHeight, set_height = _this._params.height || (self_height / 2);\r\n\r\n\t\telement.classList.add(_this.classes.container)\r\n\r\n\t\tlet isFade = _this._params.fade,\r\n\t\t\tisTransition = _this._params.transition,\r\n\t\t\tisEllipsis = _this._params.ellipsis.line !== null,\r\n\t\t\tisButton = _this._params.button.enable,\r\n\t\t\tisShowNum = _this._params.number;\r\n\r\n\t\tif (!isButtonAppend) _this.switch(element);\r\n\r\n\t\tif (self_height > set_height && _this._params.content === 'text') {\r\n\t\t\telement.classList.add(_this.classes.hidden);\r\n\t\t\telement.style.height = set_height + \"px\";\r\n\r\n\t\t\tellipsis();\r\n\t\t\ttransition();\r\n\t\t\tfade();\r\n\t\t\tbutton();\r\n\t\t} else if (_this._params.content === 'elements') {\r\n\t\t\tlet elementClass = _this._params.elements || 'item',\r\n\t\t\t\titems = element.querySelectorAll('.' + elementClass),\r\n\t\t\t\tcnt = _this._params.cnt || 5,\r\n\t\t\t\ti = 1;\r\n\r\n\t\t\t_this.total = items.length;\r\n\t\t\t_this.count = cnt;\r\n\r\n\t\t\tfor (const item of items) {\r\n\t\t\t\tif (i > cnt) {\r\n\t\t\t\t\titem.classList.add(CLASS_NAME_HIDE)\r\n\t\t\t\t}\r\n\r\n\t\t\t\ti++;\r\n\t\t\t}\r\n\r\n\t\t\tif (isButton === true) isButton = (i - 1) > cnt;\r\n\r\n\t\t\tellipsis();\r\n\t\t\ttransition();\r\n\t\t\tfade();\r\n\t\t\tbutton();\r\n\t\t}\r\n\r\n\t\tfunction ellipsis() {\r\n\t\t\tif (isEllipsis) {\r\n\t\t\t\tlet line = _this._params.ellipsis.line;\r\n\t\t\t\tisFade = false;\r\n\r\n\t\t\t\tif (line) {\r\n\t\t\t\t\telement.classList.add(_this.classes.ellipsis);\r\n\t\t\t\t\telement.style.webkitLineClamp = line;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.log(\"Переменная [data-line] или параметр[line] не должны быть пустыми\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// TODO no work\r\n\t\tfunction transition() {\r\n\t\t\tif (isTransition) {\r\n\t\t\t\telement.classList.add(_this.classes.transition);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction fade() {\r\n\t\t\tif (isFade) {\r\n\t\t\t\telement.classList.add(_this.classes.fade);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction button() {\r\n\t\t\tif (isButtonAppend) {\r\n\t\t\t\telement.setAttribute(\"id\", element.id);\r\n\r\n\t\t\t\tif (isButton) {\r\n\t\t\t\t\tlet textShowNum = '';\r\n\r\n\t\t\t\t\tif (isShowNum) {\r\n\t\t\t\t\t\tlet sum = (_this.total) - (_this.count);\r\n\r\n\t\t\t\t\t\tif (sum > 0) {\r\n\t\t\t\t\t\t\ttextShowNum = _this._params.more + sum;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet btnTextMore = _this._params.button.more;\r\n\t\t\t\t\telement.insertAdjacentHTML(\"afterend\", \"<div class=\\\"\" + _this.classes.button + \"\\\"><a href=\\\"#\\\" aria-expanded=\\\"false\\\" data-vg-toggle=\\\"rollup\\\" data-vg-target=\\\"#\" + element.id + \"\\\">\" + btnTextMore + textShowNum + \"</a></div>\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tswitch(el, switcher = false) {\r\n\t\tif (switcher && !this.isOffset) {\r\n\t\t\tthis.build(el, false);\r\n\r\n\t\t\tif (this._params.offset > 0) {\r\n\t\t\t\tthis.offset = this._params.offset;\r\n\t\t\t\tif (this.offset > 0) this.isOffset = true;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tel.classList.remove(this.classes.hidden);\r\n\t\t\tel.classList.remove(this.classes.ellipsis);\r\n\t\t\tel.classList.remove(this.classes.fade);\r\n\r\n\t\t\tel.removeAttribute(\"style\");\r\n\r\n\t\t\tif (this._params.content === 'elements') {\r\n\t\t\t\tlet className = this._params.elements;\r\n\r\n\t\t\t\tlet items = Selectors.findAll('.' + className, el);\r\n\r\n\t\t\t\tif (items.length) {\r\n\t\t\t\t\titems.forEach((item) => item.classList.remove(CLASS_NAME_HIDE))\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tisShow() {\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 * @param callback\r\n\t */\r\n\tstatic init(element, params = {}, callback) {\r\n\t\tconst instance = VGRollup.getOrCreateInstance(element, params);\r\n\t\texecute(callback, [instance]);\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\tVGRollup.toggle(target, this);\r\n});\r\n\r\nexport default VGRollup;","import './scss/vgrollup.scss';\r\nimport VGRollup from \"./js/vgrollup\";\r\n\r\nexport default VGRollup;","import BaseModule from \"../../base-module\";\r\nimport {\r\n\tisDisabled,\r\n\tisEmptyObj, isObject, isVisible,\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\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, isPlaceholder) {\r\n\t\tlet options = selector.options,\r\n\t\t\tlist = document.createElement('ul');\r\n\r\n\t\tif (isPlaceholder) {\r\n\t\t\tlet isSelectedOption = [...options].filter(el => Manipulator.has(el, 'selected')).length > 0;\r\n\r\n\t\t\tif (!isSelectedOption) {\r\n\t\t\t\tlet option = document.createElement('option');\r\n\t\t\t\tManipulator.set(option, 'hidden', '');\r\n\t\t\t\tManipulator.set(option, 'selected', '');\r\n\t\t\t\toptions.add(option, 0)\r\n\t\t\t}\r\n\t\t}\r\n\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 = false) {\r\n\t\tlet option_selected,\r\n\t\t\tplaceholder = selector.dataset.placeholder || '',\r\n\t\t\tisPlaceholder = !!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\tVGSelect.destroy(selector);\r\n\t\t}\r\n\r\n\t\tselector.parentElement.style.position = 'relative';\r\n\r\n\t\tlet isSelectedOption = [... selector.options].filter(el => {\r\n\t\t\treturn Manipulator.has(el, 'selected') && el.value !== ''\r\n\t\t}).length > 0;\r\n\r\n\t\tif (isPlaceholder && selector.selectedIndex === -1) {\r\n\t\t\toption_selected = '<span class=\"' + CLASS_NAME_PLACEHOLDER + '\">' + placeholder + '<span>';\r\n\t\t\tManipulator.set(selector, 'disabled', '');\r\n\t\t} else if (!isPlaceholder && selector.selectedIndex === -1) {\r\n\t\t\toption_selected = '<span class=\"' + CLASS_NAME_PLACEHOLDER + '\">-<span>';\r\n\t\t\tManipulator.set(selector, 'disabled', '');\r\n\t\t} else if (isPlaceholder) {\r\n\t\t\tif (isPlaceholder && isSelectedOption) {\r\n\t\t\t\toption_selected = selector.options[selector.selectedIndex].innerText;\r\n\t\t\t} else if (isPlaceholder && !isSelectedOption) {\r\n\t\t\t\toption_selected = '<span class=\"' + CLASS_NAME_PLACEHOLDER + '\">' + placeholder + '<span>';\r\n\t\t\t} else if(!isPlaceholder && !isSelectedOption) {\r\n\t\t\t\toption_selected = selector.options[selector.selectedIndex].innerText;\r\n\t\t\t} else {\r\n\t\t\t\toption_selected = '<span class=\"' + CLASS_NAME_PLACEHOLDER + '\">-<span>';\r\n\t\t\t}\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, isPlaceholder);\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\t\t\tManipulator.set(input, 'autocomplete', 'off');\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 = Selectors.next(select, '.' + CLASS_NAME_CONTAINER);\r\n\t\telement = element.shift();\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\r\n\t\t\tlet arrOptions = [];\r\n\r\n\t\t\t[\r\n\t\t\t\tvalue,\r\n\t\t\t\ttransliterate(value),\r\n\t\t\t\ttransliterate(value, true),\r\n\t\t\t].forEach(val => {\r\n\t\t\t\tfor (const option of options) {\r\n\t\t\t\t\tlet text = option.innerText.toLowerCase();\r\n\r\n\t\t\t\t\tManipulator.hide(option)\r\n\r\n\t\t\t\t\tif (text.includes(val)) {\r\n\t\t\t\t\t\tarrOptions.push(option)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tarrOptions.forEach(el => Manipulator.show(el))\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;","import './scss/vgselect.scss';\r\nimport VGSelect from \"./js/vgselect\";\r\n\r\nexport default VGSelect;","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\nconst EVENT_KEY_POPSTATE_DATA_API = `popstate.${NAME_KEY}.data.api`;\r\nconst EVENT_KEY_DOM_LOADED_DATA_API = `DOMContentLoaded.${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\thash: false,\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\tonce: false,\r\n\t\t\t\toutput: true,\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\tif (relatedTarget) _this._params = _this._getParams(relatedTarget, _this._params);\r\n\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\tif (this._params.hash) {\r\n\t\t\twindow.history.pushState(null, \"vg-sidebar-open\", \"#\" + this._element.id);\r\n\r\n\t\t\tEventHandler.on(window, EVENT_KEY_POPSTATE_DATA_API, () => {\r\n\t\t\t\tthis.hide();\r\n\t\t\t});\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\tif (_this._params.hash) {\r\n\t\t\t\t\thistory.pushState(\"\", document.title, window.location.pathname + window.location.search);\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\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\nEventHandler.on(document, EVENT_KEY_DOM_LOADED_DATA_API, function () {\r\n\tlet targetHash = window.location.hash.slice(1);\r\n\tif (targetHash) {\r\n\t\tlet target = Selectors.find('#' + targetHash);\r\n\t\tif (target && target.classList.contains('vg-sidebar')) {\r\n\t\t\tif (isDisabled(target)) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tconst data = VGSidebar.getOrCreateInstance(target)\r\n\t\t\tdata.toggle();\r\n\t\t}\r\n\t}\r\n})\r\n\r\nexport default VGSidebar;\r\n","import './scss/vgsidebar.scss';\r\nimport VGSidebar from \"./js/vgsidebar\";\r\n\r\nexport default VGSidebar;","import BaseModule from \"../../base-module\";\r\nimport {mergeDeepObject, getElement, isDisabled, isVisible} from \"../../../utils/js/functions\";\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 = 'spy';\r\nconst NAME_KEY = 'vg.spy';\r\nconst EVENT_KEY = `.${NAME_KEY}`\r\nconst DATA_API_KEY = '.data-api'\r\n\r\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\r\nconst EVENT_CLICK = `click${EVENT_KEY}`\r\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\r\n\r\nconst CLASS_NAME_DROPDOWN_ITEM = 'vg-dropdown-item'\r\nconst CLASS_NAME_ACTIVE = 'active'\r\n\r\nconst SELECTOR_DATA_SPY = '[data-vg-toggle=\"spy\"]'\r\nconst SELECTOR_TARGET_LINKS = '[href]'\r\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\r\nconst SELECTOR_NAV_LINKS = '.nav-link'\r\nconst SELECTOR_NAV_ITEMS = '.nav-item'\r\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\r\nconst SELECTOR_LINK_ITEMS = `${SELECTOR_NAV_LINKS}, ${SELECTOR_NAV_ITEMS} > ${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`\r\nconst SELECTOR_DROPDOWN = '.vg-dropdown'\r\nconst SELECTOR_DROPDOWN_TOGGLE = '[data-vg-toggle=\"dropdown\"]'\r\n\r\n\r\nclass VGSpy 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\toffset: null, // TODO: v6 @deprecated, keep it for backwards compatibility reasons\r\n\t\t\trootMargin: '0px 0px -25%',\r\n\t\t\tsmoothScroll: true,\r\n\t\t\ttarget: this._element,\r\n\t\t\tthreshold: [0.1, 0.5, 1]\r\n\t\t}, params));\r\n\r\n\t\tthis._targetLinks = new Map()\r\n\t\tthis._observableSections = new Map()\r\n\t\tthis._rootElement = getComputedStyle(this._element).overflowY === 'visible' ? null : this._element\r\n\t\tthis._activeTarget = null\r\n\t\tthis._observer = null\r\n\t\tthis._previousScrollData = {\r\n\t\t\tvisibleEntryTop: 0,\r\n\t\t\tparentScrollTop: 0\r\n\t\t}\r\n\t\tthis._params = this._configAfterMerge(this._params);\r\n\t\tconsole.log(this._params)\r\n\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\trefresh() {\r\n\t\tthis._initializeTargetsAndObservables()\r\n\t\tthis._maybeEnableSmoothScroll()\r\n\r\n\t\tif (this._observer) {\r\n\t\t\tthis._observer.disconnect()\r\n\t\t} else {\r\n\t\t\tthis._observer = this._getNewObserver()\r\n\t\t}\r\n\r\n\t\tfor (const section of this._observableSections.values()) {\r\n\t\t\tthis._observer.observe(section)\r\n\t\t}\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tthis._observer.disconnect()\r\n\t\tsuper.dispose()\r\n\t}\r\n\r\n\t_configAfterMerge(param) {\r\n\t\tparam.target = getElement(param.target) || document.body\r\n\t\tparam.rootMargin = param.offset ? `${param.offset}px 0px -30%` : param.rootMargin\r\n\r\n\t\tif (typeof param.threshold === 'string') {\r\n\t\t\tparam.threshold = param.threshold.split(',').map(value => Number.parseFloat(value))\r\n\t\t}\r\n\r\n\t\treturn param\r\n\t}\r\n\r\n\t_maybeEnableSmoothScroll() {\r\n\t\tif (!this._params.smoothScroll) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tEventHandler.off(this._params.target, EVENT_CLICK)\r\n\r\n\t\tEventHandler.on(this._params.target, EVENT_CLICK, SELECTOR_TARGET_LINKS, event => {\r\n\t\t\tconst observableSection = this._observableSections.get(event.target.hash)\r\n\t\t\tif (observableSection) {\r\n\t\t\t\tevent.preventDefault()\r\n\t\t\t\tconst root = this._rootElement || window\r\n\t\t\t\tconst height = observableSection.offsetTop - this._element.offsetTop\r\n\t\t\t\tif (root.scrollTo) {\r\n\t\t\t\t\troot.scrollTo({ top: height, behavior: 'smooth' })\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\t\t\t\troot.scrollTop = height\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n\r\n\t_getNewObserver() {\r\n\t\tconst options = {\r\n\t\t\troot: this._rootElement,\r\n\t\t\tthreshold: this._params.threshold,\r\n\t\t\trootMargin: this._params.rootMargin\r\n\t\t}\r\n\r\n\t\treturn new IntersectionObserver(entries => this._observerCallback(entries), options)\r\n\t}\r\n\r\n\t_observerCallback(entries) {\r\n\t\tconst targetElement = entry => this._targetLinks.get(`#${entry.target.id}`);\r\n\r\n\t\tconst activate = entry => {\r\n\t\t\tthis._previousScrollData.visibleEntryTop = entry.target.offsetTop;\r\n\t\t\tthis._process(targetElement(entry));\r\n\t\t}\r\n\r\n\t\tconst parentScrollTop = (this._rootElement || document.documentElement).scrollTop\r\n\t\tconst userScrollsDown = parentScrollTop >= this._previousScrollData.parentScrollTop\r\n\t\tthis._previousScrollData.parentScrollTop = parentScrollTop\r\n\r\n\t\tfor (const entry of entries) {\r\n\t\t\tif (!entry.isIntersecting) {\r\n\t\t\t\tthis._activeTarget = null\r\n\t\t\t\tthis._clearActiveClass(targetElement(entry))\r\n\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\tconst entryIsLowerThanPrevious = entry.target.offsetTop >= this._previousScrollData.visibleEntryTop\r\n\t\t\tif (userScrollsDown && entryIsLowerThanPrevious) {\r\n\t\t\t\tactivate(entry)\r\n\t\t\t\tif (!parentScrollTop) {\r\n\t\t\t\t\treturn\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\tif (!userScrollsDown && !entryIsLowerThanPrevious) {\r\n\t\t\t\tactivate(entry)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t_initializeTargetsAndObservables() {\r\n\t\tthis._targetLinks = new Map();\r\n\t\tthis._observableSections = new Map();\r\n\r\n\t\tconst targetLinks = Selectors.findAll(SELECTOR_TARGET_LINKS, this._params.target);\r\n\r\n\t\tfor (const anchor of targetLinks) {\r\n\t\t\tif (!anchor.hash || isDisabled(anchor)) {\r\n\t\t\t\tcontinue\r\n\t\t\t}\r\n\r\n\t\t\tconst observableSection = Selectors.find(decodeURI(anchor.hash));\r\n\r\n\t\t\tif (isVisible(observableSection)) {\r\n\t\t\t\tthis._targetLinks.set(decodeURI(anchor.hash), anchor)\r\n\t\t\t\tthis._observableSections.set(anchor.hash, observableSection)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t_process(target) {\r\n\t\tif (this._activeTarget === target) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis._clearActiveClass(this._params.target)\r\n\t\tthis._activeTarget = target\r\n\t\ttarget.classList.add(CLASS_NAME_ACTIVE)\r\n\t\tthis._activateParents(target)\r\n\r\n\t\tEventHandler.trigger(this._element, EVENT_ACTIVATE, { relatedTarget: target })\r\n\t}\r\n\r\n\t_activateParents(target) {\r\n\t\tif (target.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\r\n\t\t\tSelectors.find(SELECTOR_DROPDOWN_TOGGLE, target.closest(SELECTOR_DROPDOWN))\r\n\t\t\t\t.classList.add(CLASS_NAME_ACTIVE)\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tfor (const listGroup of Selectors.parents(target, SELECTOR_NAV_LIST_GROUP)) {\r\n\t\t\tfor (const item of Selectors.prev(listGroup, SELECTOR_LINK_ITEMS)) {\r\n\t\t\t\titem.classList.add(CLASS_NAME_ACTIVE)\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t_clearActiveClass(parent) {\r\n\t\tparent.classList.remove(CLASS_NAME_ACTIVE)\r\n\r\n\t\tconst activeNodes = Selectors.findAll(`${SELECTOR_TARGET_LINKS}.${CLASS_NAME_ACTIVE}`, parent);\r\n\t\tfor (const node of activeNodes) {\r\n\t\t\tnode.classList.remove(CLASS_NAME_ACTIVE)\r\n\t\t}\r\n\t}\r\n}\r\n\r\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\r\n\tfor (const spy of Selectors.findAll(SELECTOR_DATA_SPY)) {\r\n\t\tVGSpy.getOrCreateInstance(spy)\r\n\t}\r\n})\r\n\r\nexport default VGSpy;","import VGSpy from \"./js/vgspy\";\r\n\r\nexport default VGSpy;","import BaseModule from \"../../base-module\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {getNextActiveElement, isDisabled, mergeDeepObject} from \"../../../utils/js/functions\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'tabs';\r\nconst NAME_KEY = 'vg.tabs';\r\n\r\nconst EVENT_HIDE = `${NAME_KEY}.hide`;\r\nconst EVENT_HIDDEN = `${NAME_KEY}.hidden`;\r\nconst EVENT_SHOW = `${NAME_KEY}.show`;\r\nconst EVENT_SHOWN = `${NAME_KEY}.shown`;\r\nconst EVENT_LOADED = `${NAME_KEY}.loaded`;\r\n\r\nconst EVENT_KEYDOWN = `keydown.${NAME_KEY}`;\r\nconst EVENT_LOAD_DATA_API = `load.${NAME_KEY}`;\r\nconst EVENT_CLICK_DATA_API = `click.${NAME_KEY}`;\r\nconst EVENT_MOUSEOVER_DATA_API = `mouseover.${NAME_KEY}`;\r\nconst EVENT_MOUSEOUT_DATA_API = `mouseout.${NAME_KEY}`;\r\n\r\nconst ARROW_LEFT_KEY = 'ArrowLeft';\r\nconst ARROW_RIGHT_KEY = 'ArrowRight';\r\nconst ARROW_UP_KEY = 'ArrowUp';\r\nconst ARROW_DOWN_KEY = 'ArrowDown';\r\nconst HOME_KEY = 'Home';\r\nconst END_KEY = 'End';\r\n\r\nconst CLASS_NAME_ACTIVE = 'active';\r\nconst CLASS_NAME_HOVER = 'hover';\r\nconst CLASS_NAME_FADE = 'fade';\r\nconst CLASS_NAME_SHOW = 'show';\r\nconst CLASS_DROPDOWN = 'dropdown';\r\nconst CLASS_SLIDER = 'vg-tabs-slider';\r\nconst CLASS_WITH_SLIDER = 'vg-tabs-with-slider';\r\n\r\nconst SELECTOR_DROPDOWN_TOGGLE = '[data-vg-toggle=\"dropdown\"]';\r\nconst SELECTOR_DROPDOWN_MENU = '.dropdown-content';\r\nconst NOT_SELECTOR_DROPDOWN_TOGGLE = `:not(${SELECTOR_DROPDOWN_TOGGLE})`;\r\n\r\nconst SELECTOR_TAB_CLASS = '.vg-tabs';\r\nconst SELECTOR_TAB_PANEL = '.list-group, .vg-tabs-panel, [role=\"tablist\"]';\r\nconst SELECTOR_OUTER = '.vg-tabs-item, .list-group-item';\r\nconst SELECTOR_INNER = `.vg-tabs-link${NOT_SELECTOR_DROPDOWN_TOGGLE}, .list-group-item${NOT_SELECTOR_DROPDOWN_TOGGLE}, [role=\"tab\"]${NOT_SELECTOR_DROPDOWN_TOGGLE}`;\r\nconst SELECTOR_DATA_TOGGLE = '[data-vg-toggle=\"tab\"]';\r\nconst SELECTOR_INNER_ELEM = `${SELECTOR_INNER}, ${SELECTOR_DATA_TOGGLE}`;\r\n\r\nconst SELECTOR_DATA_TOGGLE_ACTIVE = `.${CLASS_NAME_ACTIVE}[data-vg-toggle=\"tab\"]`;\r\n\r\nclass VGTabs extends BaseModule {\r\n\r\n\tconstructor(element, params) {\r\n\t\tsuper(element, params);\r\n\r\n\t\tthis._params = mergeDeepObject({\r\n\t\t\tslide: false,\r\n\t\t\thash: 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\tloader: false,\r\n\t\t\t\tonce: true,\r\n\t\t\t\toutput: true,\r\n\t\t\t},\r\n\t\t}, this._params);\r\n\r\n\t\tthis._parent = this._element.closest(SELECTOR_TAB_PANEL);\r\n\t\tthis._main_parent = this._parent.closest(SELECTOR_TAB_CLASS);\r\n\t\tthis._params = this._getParams(this._main_parent, this._params);\r\n\t\tthis._params = this._getParams(this._element, this._params);\r\n\r\n\t\tif (!this._parent) {\r\n\t\t\tthrow new TypeError(`${element.outerHTML} не имеет родителя ${SELECTOR_INNER_ELEM}`)\r\n\t\t}\r\n\r\n\t\tthis._setInitialAttributes(this._parent, this._getChildren());\r\n\t\tthis._setInitialSlider();\r\n\t\tthis._setTabHash();\r\n\r\n\t\tEventHandler.on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\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\tshow() {\r\n\t\tconst innerElem = this._element\r\n\t\tif (this._elemIsActive(innerElem)) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst active = this._getActiveElem()\r\n\r\n\t\tconst hideEvent = active ?\r\n\t\t\tEventHandler.trigger(active, EVENT_HIDE, { relatedTarget: innerElem }) :\r\n\t\t\tnull\r\n\r\n\t\tconst showEvent = EventHandler.trigger(innerElem, EVENT_SHOW, { relatedTarget: active })\r\n\r\n\t\tif (showEvent.defaultPrevented || (hideEvent && hideEvent.defaultPrevented)) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis._deactivate(active, innerElem)\r\n\t\tthis._activate(innerElem, active)\r\n\t}\r\n\r\n\t_elemIsActive(elem) {\r\n\t\treturn elem.classList.contains(CLASS_NAME_ACTIVE)\r\n\t}\r\n\r\n\t_getActiveElem() {\r\n\t\treturn this._getChildren().find(child => this._elemIsActive(child)) || null\r\n\t}\r\n\r\n\t_activate(element, relatedElem) {\r\n\t\tif (!element) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\telement.classList.add(CLASS_NAME_ACTIVE);\r\n\r\n\t\tthis._activate(Selectors.getElementFromSelector(element));\r\n\r\n\t\tconst complete = () => {\r\n\t\t\tif (element.getAttribute('role') !== 'tab') {\r\n\t\t\t\telement.classList.add(CLASS_NAME_SHOW)\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tthis._route((status, data) => {\r\n\t\t\t\tEventHandler.trigger(this._element, EVENT_LOADED, {stats: status, data: data});\r\n\t\t\t});\r\n\r\n\t\t\telement.removeAttribute('tabindex')\r\n\t\t\telement.setAttribute('aria-selected', true);\r\n\r\n\t\t\tthis._toggleDropDown(element, true)\r\n\t\t\tEventHandler.trigger(element, EVENT_SHOWN, {\r\n\t\t\t\trelatedTarget: relatedElem\r\n\t\t\t})\r\n\t\t}\r\n\r\n\t\tthis._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE))\r\n\t}\r\n\r\n\t_deactivate(element, relatedElem) {\r\n\t\tif (!element) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\telement.classList.remove(CLASS_NAME_ACTIVE);\r\n\t\telement.blur();\r\n\r\n\t\tthis._deactivate(Selectors.getElementFromSelector(element));\r\n\r\n\t\tconst complete = () => {\r\n\t\t\tif (element.getAttribute('role') !== 'tab') {\r\n\t\t\t\telement.classList.remove(CLASS_NAME_SHOW);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\telement.setAttribute('aria-selected', false);\r\n\t\t\telement.setAttribute('tabindex', '-1');\r\n\t\t\tthis._toggleDropDown(element, false);\r\n\t\t\tEventHandler.trigger(element, EVENT_HIDDEN, { relatedTarget: relatedElem });\r\n\t\t}\r\n\r\n\t\tthis._queueCallback(complete, element, element.classList.contains(CLASS_NAME_FADE));\r\n\t}\r\n\r\n\t_keydown(event) {\r\n\t\tif (!([ARROW_LEFT_KEY, ARROW_RIGHT_KEY, ARROW_UP_KEY, ARROW_DOWN_KEY, HOME_KEY, END_KEY].includes(event.key))) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tevent.stopPropagation()// stopPropagation/preventDefault both added to support up/down keys without scrolling the page\r\n\t\tevent.preventDefault()\r\n\r\n\t\tconst children = this._getChildren().filter(element => !isDisabled(element))\r\n\t\tlet nextActiveElement\r\n\r\n\t\tif ([HOME_KEY, END_KEY].includes(event.key)) {\r\n\t\t\tnextActiveElement = children[event.key === HOME_KEY ? 0 : children.length - 1]\r\n\t\t} else {\r\n\t\t\tconst isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key)\r\n\t\t\tnextActiveElement = getNextActiveElement(children, event.target, isNext, true)\r\n\t\t}\r\n\r\n\t\tif (nextActiveElement) {\r\n\t\t\tnextActiveElement.focus({ preventScroll: true })\r\n\t\t\tVGTabs.getOrCreateInstance(nextActiveElement).show()\r\n\t\t}\r\n\t}\r\n\r\n\t_setTabHash() {\r\n\t\tif (!this._params.hash) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet url = document.location.toString();\r\n\r\n\t\tif (url.match('#')) {\r\n\t\t\tlet id = url.split('#')[1];\r\n\r\n\t\t\tlet element = Selectors.find('[href=\"#' + id +'\"]', this._parent) || Selectors.find('[data-vg-target=\"#' + id +'\"]', this._element) || null;\r\n\t\t\tif (element) {\r\n\t\t\t\tVGTabs.getOrCreateInstance(element).show();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t_setInitialSlider() {\r\n\t\tif (!this._params.slide) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet slider = Selectors.find('.' + CLASS_SLIDER, this._main_parent);\r\n\t\tif (!slider) {\r\n\t\t\tslider = document.createElement('span');\r\n\t\t\tslider.classList.add(CLASS_SLIDER);\r\n\t\t\tthis._main_parent.prepend(slider);\r\n\t\t}\r\n\r\n\t\tthis._main_parent.classList.add(CLASS_WITH_SLIDER);\r\n\r\n\t\tlet link_active = Selectors.find('.' + CLASS_NAME_ACTIVE, this._parent),\r\n\t\t\t{width, height} = window.getComputedStyle(link_active);\r\n\r\n\t\tlink_active.classList.add(CLASS_NAME_HOVER);\r\n\r\n\t\tslider.style.width = width;\r\n\t\tslider.style.height = height;\r\n\t\tslider.style.left = link_active.offsetLeft + 'px';\r\n\r\n\t\tEventHandler.on(this._main_parent, EVENT_MOUSEOVER_DATA_API, SELECTOR_DATA_TOGGLE, (event) => {\r\n\t\t\tlet link_target = event.target,\r\n\t\t\t\t{width, height} = window.getComputedStyle(link_target);\r\n\r\n\t\t\tif (['A', 'AREA'].includes(event.target.tagName)) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t}\r\n\r\n\t\t\tif (isDisabled(link_target)) return;\r\n\r\n\t\t\tlet link_current_hover = Selectors.find('.' + CLASS_NAME_HOVER, this._parent);\r\n\t\t\tif (link_current_hover) link_current_hover.classList.remove(CLASS_NAME_HOVER);\r\n\t\t\tlink_target.classList.add(CLASS_NAME_HOVER);\r\n\r\n\t\t\tslider.style.width = width;\r\n\t\t\tslider.style.height = height;\r\n\t\t\tslider.style.left = link_target.offsetLeft + 'px';\r\n\t\t});\r\n\r\n\t\tEventHandler.on(this._main_parent, EVENT_MOUSEOUT_DATA_API, SELECTOR_DATA_TOGGLE, (event) => {\r\n\t\t\tif (['A', 'AREA'].includes(event.target.tagName)) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t}\r\n\r\n\t\t\tlet active = Selectors.find('.' + CLASS_NAME_ACTIVE, this._parent),\r\n\t\t\t\t{width, height} = window.getComputedStyle(active);\r\n\r\n\t\t\t[... Selectors.findAll('.' + CLASS_NAME_HOVER, this._parent)].forEach(el => {\r\n\t\t\t\tel.classList.remove(CLASS_NAME_HOVER);\r\n\t\t\t});\r\n\r\n\t\t\tactive.classList.add(CLASS_NAME_HOVER);\r\n\r\n\t\t\tslider.style.width = width;\r\n\t\t\tslider.style.height = height;\r\n\t\t\tslider.style.left = active.offsetLeft + 'px';\r\n\t\t});\r\n\t}\r\n\r\n\t_setInitialAttributes(parent, children) {\r\n\t\tthis._setAttributeIfNotExists(parent, 'role', 'tablist')\r\n\r\n\t\tfor (const child of children) {\r\n\t\t\tthis._setInitialAttributesOnChild(child)\r\n\t\t}\r\n\t}\r\n\r\n\t_setInitialAttributesOnChild(child) {\r\n\t\tchild = this._getInnerElement(child)\r\n\t\tconst isActive = this._elemIsActive(child)\r\n\t\tconst outerElem = this._getOuterElement(child)\r\n\t\tchild.setAttribute('aria-selected', isActive)\r\n\r\n\t\tif (outerElem !== child) {\r\n\t\t\tthis._setAttributeIfNotExists(outerElem, 'role', 'presentation')\r\n\t\t}\r\n\r\n\t\tif (!isActive) {\r\n\t\t\tchild.setAttribute('tabindex', '-1')\r\n\t\t}\r\n\r\n\t\tthis._setAttributeIfNotExists(child, 'role', 'tab')\r\n\t\tthis._setInitialAttributesOnTargetPanel(child)\r\n\t}\r\n\r\n\t_setInitialAttributesOnTargetPanel(child) {\r\n\t\tconst target = Selectors.getElementFromSelector(child)\r\n\r\n\t\tif (!target) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tthis._setAttributeIfNotExists(target, 'role', 'tabpanel')\r\n\r\n\t\tif (child.id) {\r\n\t\t\tthis._setAttributeIfNotExists(target, 'aria-labelledby', `${child.id}`)\r\n\t\t}\r\n\t}\r\n\r\n\t_setAttributeIfNotExists(element, attribute, value) {\r\n\t\tif (!element.hasAttribute(attribute)) {\r\n\t\t\telement.setAttribute(attribute, value)\r\n\t\t}\r\n\t}\r\n\r\n\t_getChildren() {\r\n\t\treturn Selectors.findAll(SELECTOR_INNER_ELEM, this._parent)\r\n\t}\r\n\r\n\t_getInnerElement(elem) {\r\n\t\treturn elem.matches(SELECTOR_INNER_ELEM) ? elem : Selectors.find(SELECTOR_INNER_ELEM, elem)\r\n\t}\r\n\r\n\t_getOuterElement(elem) {\r\n\t\treturn elem.closest(SELECTOR_OUTER) || elem\r\n\t}\r\n\r\n\t_toggleDropDown(element, open) {\r\n\t\tconst outerElem = this._getOuterElement(element)\r\n\t\tif (!outerElem.classList.contains(CLASS_DROPDOWN)) {\r\n\t\t\treturn\r\n\t\t}\r\n\r\n\t\tconst toggle = (selector, className) => {\r\n\t\t\tconst element = Selectors.find(selector, outerElem)\r\n\t\t\tif (element) {\r\n\t\t\t\telement.classList.toggle(className, open)\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\ttoggle(SELECTOR_DROPDOWN_TOGGLE, CLASS_NAME_ACTIVE)\r\n\t\ttoggle(SELECTOR_DROPDOWN_MENU, CLASS_NAME_SHOW)\r\n\t\touterElem.setAttribute('aria-expanded', open)\r\n\t}\r\n}\r\n\r\n/**\r\n * Data API implementation\r\n */\r\nEventHandler.on(document, EVENT_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)) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tVGTabs.getOrCreateInstance(this).show();\r\n})\r\n\r\n/**\r\n * Initialize on focus\r\n */\r\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\r\n\tfor (const element of Selectors.findAll(SELECTOR_DATA_TOGGLE_ACTIVE)) {\r\n\t\tVGTabs.getOrCreateInstance(element);\r\n\t}\r\n});\r\n\r\n\r\nexport default VGTabs;\r\n","import './scss/vgtabs.scss'\r\nimport VGTabs from \"./js/vgtabs\";\r\n\r\nexport default VGTabs;","import BaseModule from \"../../base-module\";\r\nimport EventHandler from \"../../../utils/js/dom/event\";\r\nimport {dismissTrigger} from \"../../module-fn\";\r\nimport {execute, isDisabled, makeRandomString, mergeDeepObject} from \"../../../utils/js/functions\";\r\nimport Selectors from \"../../../utils/js/dom/selectors\";\r\n\r\n/**\r\n * Constants\r\n */\r\nconst NAME = 'toast';\r\nconst NAME_KEY = 'vg.toast';\r\nconst SELECTOR_DATA_TOGGLE= '[data-vg-toggle=\"toast\"]';\r\n\r\nconst CLASS_NAME_OPEN = 'vg-toast-open';\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\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 VGToast 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\tstatic: true,\r\n\t\t\tplacement: 'bottom center',\r\n\t\t\tautohide: false,\r\n\t\t\tdelay: 3000,\r\n\t\t\tenableClickToast: true,\r\n\t\t\tenableButtonClose: true,\r\n\t\t\tkeyboard: true,\r\n\t\t\ttheme: 'dark',\r\n\t\t\tstack: {\r\n\t\t\t\tenable: true,\r\n\t\t\t\tmax: 5\r\n\t\t\t},\r\n\t\t\tanimation: {\r\n\t\t\t\tenable: true,\r\n\t\t\t\tin: 'animate__fadeIn',\r\n\t\t\t\tout: 'animate__fadeOut',\r\n\t\t\t\tdelay: 400,\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\tonce: false,\r\n\t\t\t\toutput: true,\r\n\t\t\t}\r\n\t\t}, 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, VGToast.NAME_KEY, this._params.animation);\r\n\t\tthis._dismissElement();\r\n\t\tthis._addEventListeners();\r\n\r\n\t\tthis._timeout = null;\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 run(text, params = {}, callback) {\r\n\t\treturn VGToast.build(text, params, callback);\r\n\t}\r\n\r\n\tstatic build(text, params, callback) {\r\n\t\tparams = mergeDeepObject({\r\n\t\t\tplacement: 'bottom center',\r\n\t\t\tstatic: false,\r\n\t\t\ttheme: 'dark',\r\n\t\t\tstack: {\r\n\t\t\t\tenable: false\r\n\t\t\t}\r\n\t\t}, params);\r\n\r\n\t\tlet target = document.createElement('div');\r\n\t\ttarget.classList.add('vg-toast');\r\n\t\ttarget.id = 'vg-toast-' + makeRandomString();\r\n\r\n\t\tif ('theme' in params) {\r\n\t\t\ttarget.classList.add('vg-toast-' + params.theme);\r\n\t\t}\r\n\r\n\t\tif ('placement' in params) {\r\n\t\t\tparams.placement.split(' ').forEach(val => target.classList.add(val));\r\n\t\t}\r\n\r\n\t\tlet wrapper = document.createElement('div');\r\n\t\twrapper.classList.add('vg-toast-wrapper');\r\n\r\n\t\tif ('type' in params) {\r\n\t\t\tlet icon = document.createElement('div');\r\n\t\t\ticon.classList.add('vg-toast-icon');\r\n\r\n\t\t\twrapper.append(icon);\r\n\t\t}\r\n\r\n\t\tlet content = document.createElement('div');\r\n\t\tcontent.classList.add('vg-toast-content');\r\n\r\n\t\tlet body = document.createElement('div');\r\n\t\tbody.classList.add('vg-toast-body');\r\n\r\n\t\tif (typeof text === 'string') {\r\n\t\t\tbody.innerHTML = text;\r\n\t\t\tcontent.append(body);\r\n\t\t} else if (Array.isArray(text)) {\r\n\t\t\tif (text.length > 1) {\r\n\t\t\t\tlet header = document.createElement('div');\r\n\t\t\t\theader.classList.add('vg-toast-header');\r\n\t\t\t\theader.innerHTML = text[0];\r\n\t\t\t\tcontent.append(header);\r\n\r\n\t\t\t\tbody.innerHTML = text[1];\r\n\t\t\t\tcontent.append(body);\r\n\t\t\t} else {\r\n\t\t\t\tbody.innerHTML = text[0];\r\n\t\t\t\tcontent.append(body);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\twrapper.append(content);\r\n\r\n\t\tif ('enableButtonClose' in params && params.enableButtonClose) {\r\n\t\t\tlet button = document.createElement('div');\r\n\t\t\tbutton.classList.add('vg-toast-button');\r\n\t\t\tbutton.innerHTML = '<button class=\"vg-btn-close\" data-vg-dismiss=\"toast\"></button>';\r\n\t\t\twrapper.append(button);\r\n\t\t}\r\n\r\n\t\ttarget.append(wrapper);\r\n\t\tdocument.body.append(target);\r\n\r\n\t\tlet instance = VGToast.getOrCreateInstance(target, params);\r\n\t\texecute(callback, [instance]);\r\n\t\tinstance.show();\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\tthis._clearTimeout();\r\n\r\n\t\tthis._params = this._getParams(relatedTarget || {}, this._params);\r\n\t\tthis._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._element.classList.add(CLASS_NAME_SHOW);\r\n\t\tdocument.body.classList.add(CLASS_NAME_OPEN);\r\n\r\n\t\tthis._setPlacement();\r\n\r\n\t\tconst completeCallBack = () => {\r\n\t\t\tthis._element.classList.add(CLASS_NAME_SHOW);\r\n\t\t\tEventHandler.trigger(this._element, EVENT_KEY_SHOWN, { relatedTarget });\r\n\t\t\tthis._scheduleHide();\r\n\t\t}\r\n\t\tthis._queueCallback(completeCallBack, this._element, true, 0);\r\n\t}\r\n\r\n\thide() {\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\tthis._element?.classList.remove(CLASS_NAME_SHOW);\r\n\r\n\t\t\tconst completeCallback = () => {\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\r\n\t\t\t\tif (this._params.stack.enable) {\r\n\t\t\t\t\tthis._setPlacement();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!this._params.static) {\r\n\t\t\t\t\tthis.dispose();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tthis._queueCallback(completeCallback, this._element, false, this._params.animation.delay);\r\n\t\t}, this._params.animation.delay);\r\n\t}\r\n\r\n\tdispose() {\r\n\t\tthis._clearTimeout();\r\n\t\tif (this._isShown()) {\r\n\t\t\tthis._element.classList.remove(CLASS_NAME_SHOW);\r\n\t\t}\r\n\r\n\t\tif (!this._params.static) {\r\n\t\t\tthis._element.remove();\r\n\t\t}\r\n\r\n\t\tsuper.dispose();\r\n\t}\r\n\r\n\t_scheduleHide() {\r\n\t\tif (!this._params.autohide) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis._timeout = setTimeout(() => {\r\n\t\t\tthis.hide();\r\n\t\t}, this._params.delay);\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_setPlacement() {\r\n\t\tlet elms = this._enableStack();\r\n\r\n\t\tif (this._params.stack.enable) {\r\n\t\t\tif (elms.length > this._params.stack.max) {\r\n\t\t\t\tlet elm = elms.shift();\r\n\t\t\t\tVGToast.getInstance(elm.el).hide();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\telms.forEach(elm => {\r\n\t\t\tlet isPlacementClassTop = elm.el.classList.contains('top'),\r\n\t\t\t\tisPlacementClassBottom = elm.el.classList.contains('bottom'),\r\n\t\t\t\tisPlacementClassLeft = elm.el.classList.contains('left'),\r\n\t\t\t\tisPlacementClassRight = elm.el.classList.contains('right'),\r\n\t\t\t\tisPlacementClassCenter = elm.el.classList.contains('center');\r\n\r\n\t\t\tif (!isPlacementClassTop &&\r\n\t\t\t\t!isPlacementClassBottom &&\r\n\t\t\t\t!isPlacementClassCenter &&\r\n\t\t\t\t!isPlacementClassRight &&\r\n\t\t\t\t!isPlacementClassLeft\r\n\t\t\t) {\r\n\t\t\t\tisPlacementClassBottom = true;\r\n\t\t\t\tisPlacementClassCenter = true;\r\n\t\t\t}\r\n\r\n\t\t\tif (isPlacementClassCenter) {\r\n\t\t\t\tif (isPlacementClassLeft) {\r\n\t\t\t\t\telm.el.style.left = 0;\r\n\t\t\t\t\telm.el.style.bottom = 'calc(50% - ('+ elm.top +'px))';\r\n\t\t\t\t} else if (isPlacementClassRight) {\r\n\t\t\t\t\telm.el.style.right = 0;\r\n\t\t\t\t\telm.el.style.bottom = 'calc(50% - ('+ elm.top +'px))';\r\n\t\t\t\t} else if (isPlacementClassBottom) {\r\n\t\t\t\t\telm.el.style.left = 'calc(50% - ('+ elm.el.clientWidth +'px) / 2)';\r\n\t\t\t\t\telm.el.style.bottom = elm.top + 'px';\r\n\t\t\t\t} else if (isPlacementClassTop) {\r\n\t\t\t\t\telm.el.style.left = 'calc(50% - ('+ elm.el.clientWidth +'px) / 2)';\r\n\t\t\t\t\telm.el.style.top = elm.top + 'px';\r\n\t\t\t\t} else {\r\n\t\t\t\t\telm.el.style.left = 'calc(50% - ('+ elm.el.clientHeight +'px) / 2)';\r\n\t\t\t\t\telm.el.style.bottom = 'calc(50% - '+ elm.top +'px)';\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (isPlacementClassLeft) elm.el.style.left = 0;\r\n\t\t\t\tif (isPlacementClassBottom) elm.el.style.bottom = elm.top + 'px';\r\n\t\t\t\tif (isPlacementClassTop) elm.el.style.top = elm.top + 'px';\r\n\t\t\t\tif (isPlacementClassRight) elm.el.style.right = 0;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t_enableStack() {\r\n\t\tlet elmsShown = [... Selectors.findAll('.vg-toast.show')], top = 0;\r\n\r\n\t\tif (!this._params.stack.enable) {\r\n\t\t\telmsShown.forEach(el => {\r\n\t\t\t\tif (el !== this._element) {\r\n\t\t\t\t\tVGToast.getInstance(el).hide()\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\treturn [{\r\n\t\t\t\tel: this._element,\r\n\t\t\t\ttop: 0,\r\n\t\t\t}];\r\n\t\t}\r\n\r\n\t\telmsShown = elmsShown.map(el => {\r\n\t\t\treturn {\r\n\t\t\t\tel: el,\r\n\t\t\t\ttop: el.clientHeight\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn elmsShown.map(function (value, index) {\r\n\t\t\tif (index === 0) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tel: value.el,\r\n\t\t\t\t\ttop: 0\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\ttop += value.top\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tel: value.el,\r\n\t\t\t\t\ttop: top\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t_clearTimeout() {\r\n\t\tclearTimeout(this._timeout);\r\n\t\tthis._timeout = null;\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\r\n\t\tif (this._params.enableClickToast) {\r\n\t\t\tthis._element.classList.add('vg-toast-pointer');\r\n\r\n\t\t\tEventHandler.on(document, EVENT_KEY_CLICK_DATA_API, '#' + this._element.id, () => {\r\n\t\t\t\tthis.hide();\r\n\t\t\t})\r\n\t\t}\r\n\t}\r\n}\r\n\r\ndismissTrigger(VGToast);\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\tthis.setAttribute('aria-expanded', false);\r\n\t});\r\n\r\n\tconst data = VGToast.getOrCreateInstance(target);\r\n\tdata.toggle(this);\r\n});\r\n\r\nexport default VGToast;\r\n","import './scss/vgtoast.scss'\r\nimport VGToast from \"./js/vgtoast\";\r\n\r\nexport default VGToast;"],"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","isVisible","getClientRects","length","elementIsVisible","getComputedStyle","getPropertyValue","closedDetails","closest","summary","parentNode","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","result","counter","charAt","Math","floor","characters","random","transliterate","text","enToRu","x","ru","split","en","join","toUpperCase","isRTL","document","documentElement","dir","getSelector","selector","hrefAttribute","includes","startsWith","trim","map","sel","window","CSS","escape","replace","match","id","parseSelector","Selectors","find","Element","querySelector","findAll","container","querySelectorAll","getSelectorFromElement","getElementFromSelector","getMultipleElementsFromSelector","parents","ancestor","push","next","nextElementSibling","matches","previous","previousElementSibling","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","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","getOrCreateInstance","Ajax","XMLHttpRequest","xhr","versions","i","ActiveXObject","e","send","url","callback","data","async","undefined","open","setRequestHeader","onreadystatechange","readyState","status","statusText","response","responseText","code","query","encodeURIComponent","uri","post","enable","in","out","delay","duration","classes","animated","_element","_name_key","add","_triggers","Error","_isLoaded","Data","NAME_KEY","_getParams","Params","dispose","propertyName","getOwnPropertyNames","_route","_this","$content","setData","innerHTML","ajax","route","loader","output","once","_dismissElement","button","insertAdjacentHTML","_queueCallback","isAnimated","timeOutMs","transitionElement","waitForTransition","emulatedDuration","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","getTransitionDurationFromElement","called","setTimeout","triggerTransitionEnd","executeAfterTransition","_animation","Animation","getInstance","DATA_KEY","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","PROPERTY_PADDING","PROPERTY_MARGIN","body","getWidth","documentWidth","clientWidth","abs","innerWidth","width","_disableOverFlow","_setElementAttributes","calculatedValue","reset","_resetElementAttributes","isOverflowing","_saveInitialAttribute","overflow","styleProperty","scrollbarWidth","_applyManipulationCallback","setProperty","actualValue","removeProperty","callBack","append","paddingRight","destroy","CLASS_NAME","CLASS_NAME_FADE","Backdrop","_append","_destroy","backdrop","createElement","Overflow","CLASS_NAME_OPEN","CLASS_NAME_SHOW","CLASS_NAME_STATIC","EVENT_KEY_HIDE","EVENT_KEY_HIDDEN","EVENT_KEY_SHOW","EVENT_KEY_SHOWN","EVENT_KEY_RESIZE","EVENT_KEY_LOADED","EVENT_KEY_KEYDOWN_DISMISS","EVENT_KEY_HIDE_PREVENTED","EVENT_KEY_CLICK_DATA_API","EVENT_KEY_MOUSEDOWN_DISMISS","EVENT_KEY_CLICK_DISMISS","EVENT_KEY_DOM_LOADED_DATA_API","EVENT_KEY_POPSTATE_DATA_API","VGModal","BaseModule","super","focus","keyboard","fields","hash","centered","animation","general","dialog","content","header","title","footer","_button","_dialog","_isShown","_isTransitioning","_scrollBar","ScrollBarHelper","_addEventListeners","init","build","btnClose","modal","toggle","stats","defaultPrevented","history","pushState","_addFieldsInModal","_adjustDialog","_showElement","openedModals","_hideModal","_isAnimatedFade","location","pathname","search","_resetAdjustments","scrollTop","modalBody","transitionComplete","isModalOverflowing","scrollHeight","clientHeight","isBodyOverflowing","property","paddingLeft","_triggerBackdropTransition","event2","initialOverflowY","overflowY","item","elements","elm","showEvent","alreadyOpen","targetHash","toast","mode","run","promise","_build","_buildModal","_buildToast","$modal","self","$body","html","message","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_DEEPER_CHILDREN","SELECTOR_DATA_TOGGLE","VGCollapse","parent","_triggerArray","toggleList","elem","filterElement","foundElement","_initializeChildren","_addAriaAndCollapsedClass","activeChildren","_getFirstLevelChildren","activeInstance","height","complete","getBoundingClientRect","triggerArray","isOpen","_changeStateButton","children","selected","arg","drop","_getPlacement","_parent","top","left","isFixed","bounds","styles","TARGET_CONTAINER","EVENT_KEYUP_DATA_API","EVENT_KEYDOWN_DATA_API","EVENT_CLICK_DATA_API","EVENT_MOUSEOVER_DATA_API","EVENT_MOUSEOUT_DATA_API","VGDropdown","defaultParams","offset","placement","timeoutAnimation","hover","_drop","_isPlacement","_setPlacement","completeCallBack","_completeHide","completeCallback","Placement","position","transform","paddingTop","currentElem","hideOpenToggles","keydownHandler","clearDrops","openToggles","context","composedPath","isInput","isEscapeEvent","isUpOrDownEvent","getToggleButton","stopPropagation","TEMPLATES","template","insert","render","tmpl","toHTML","tmplElement","setContent","VGHideShowPass","isShow","Templater","shift","EVENT_SUBMIT_DATA_API","VGFormSender","enabled","errors","redirect","validate","submit","timeout","pass","alert","alertCollapse","alertModal","validation","wasValidate","afterInit","afterSuccess","afterError","interceptors","toLowerCase","isBtnText","isJsonParse","isShowPass","parentElement","request","_alertBefore","href","_alertError","_alertSuccess","getElementsByClassName","_statusButton","_jsonParse","btnSubmitText","btnText","$btnText","$btnTextSend","spinner","parserData","_alertModal","_alertCollapse","bootstrap","Modal","mVG","setDataRelationStatus","$collapse","prepend","collapse","$element","$alert","txt","t","view","icon","checkValidity","FormData","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","VGLoadMore","limit","autohide","fOffset","items","dataset","buttonParams","log","itemsElements","buttonText","cl","insertBefore","nextSibling","itemsHidden","remainder","count","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_RESIZE_DATA_API","VGNav","breakpoint","hamburgerActive","hamburgerAlways","hamburger","wrapper","active","expand","cloned","flip","always","_navigation","navigation","movedLinks","$links","Responsive","mTitle","$dropdown_a","width_navigation_responsive","width_all_links_responsive","$dots","_dots","$a","$linkStyle","$link","appendChild","splice","$d","$dropdown","link","setCollapse","firstElementChild","$drop","right","N_right","$ul","$el","setDropPosition","index","drops","hideOpenDrops","click","isFirst","vgNavSidebar","getElementById","CLASS_NAME_HIDE","VGRollup","cnt","fade","transition","number","ellipsis","line","more","less","hidden","total","textShowNum","sum","isOffset","switch","isButtonAppend","self_height","set_height","isFade","isTransition","isEllipsis","isButton","isShowNum","elementClass","webkitLineClamp","btnTextMore","switcher","className","CLASS_NAME_CONTAINER","CLASS_NAME_DROPDOWN","CLASS_NAME_LIST","CLASS_NAME_OPTION","CLASS_NAME_OPTGROUP","CLASS_NAME_CURRENT","CLASS_NAME_PLACEHOLDER","EVENT_KEY_UP_DATA_API","EVENT_RESET_DATA_API","EVENT_KEY_CHANGE","observerTimout","VGSelect","placeholder","refresh","buildListOptions","isPlaceholder","options","list","option","optGroup","isSelected","olOptGroup","liLabel","label","createLi","li","liData","selectedIndex","reBuild","option_selected","isSearch","inited","isSelectedOption","innerText","_class","elData","current","dropdown","insertAdjacentElement","search_container","input","select","previousSibling","MutationObserver","clearTimeout","observe","attributeFilter","childList","subtree","characterDataOldValue","changeSelector","isRebuild","selectList","optionsGroup","arrOptions","val","VGSidebar","EVENT_ACTIVATE","EVENT_CLICK","EVENT_LOAD_DATA_API","SELECTOR_TARGET_LINKS","SELECTOR_NAV_LINKS","SELECTOR_LINK_ITEMS","VGSpy","rootMargin","smoothScroll","threshold","_targetLinks","_observableSections","_rootElement","_activeTarget","_observer","_previousScrollData","visibleEntryTop","parentScrollTop","_configAfterMerge","_initializeTargetsAndObservables","_maybeEnableSmoothScroll","disconnect","_getNewObserver","section","param","jquery","observableSection","root","offsetTop","scrollTo","behavior","IntersectionObserver","_observerCallback","targetElement","entry","activate","_process","userScrollsDown","isIntersecting","_clearActiveClass","entryIsLowerThanPrevious","targetLinks","anchor","decodeURI","_activateParents","listGroup","activeNodes","node","spy","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_LOADED","EVENT_KEYDOWN","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","HOME_KEY","END_KEY","CLASS_NAME_HOVER","CLASS_SLIDER","SELECTOR_DROPDOWN_TOGGLE","NOT_SELECTOR_DROPDOWN_TOGGLE","SELECTOR_INNER_ELEM","SELECTOR_DATA_TOGGLE_ACTIVE","VGTabs","slide","_main_parent","TypeError","outerHTML","_setInitialAttributes","_getChildren","_setInitialSlider","_setTabHash","_keydown","innerElem","_elemIsActive","_getActiveElem","hideEvent","_deactivate","_activate","child","relatedElem","_toggleDropDown","blur","nextActiveElement","isNext","getNextActiveElement","activeElement","shouldGetNext","listLength","max","min","preventScroll","slider","link_active","offsetLeft","link_target","link_current_hover","_setAttributeIfNotExists","_setInitialAttributesOnChild","_getInnerElement","isActive","outerElem","_getOuterElement","_setInitialAttributesOnTargetPanel","attribute","VGToast","enableClickToast","enableButtonClose","theme","stack","_timeout","_clearTimeout","_scheduleHide","elms","_enableStack","isPlacementClassTop","isPlacementClassBottom","isPlacementClassLeft","isPlacementClassRight","isPlacementClassCenter","bottom","elmsShown"],"sourceRoot":""}
|