versoly-ui 1.0.7 → 2.0.1

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/README.md CHANGED
@@ -12,8 +12,8 @@
12
12
  <a href="https://bundlephobia.com/result?p=versoly-ui">
13
13
  <img src="https://flat.badgen.net/bundlephobia/minzip/versoly-ui?icon=packagephobia&label&color=blue&cache=10800" alt="gzip bundle size">
14
14
  </a>
15
- <a href="https://unpkg.com/versoly-ui@1.0.7/dist/versoly-ui.js">
16
- <img src="https://flat.badgen.net/badgesize/brotli/https://unpkg.com/versoly-ui@1.0.7/dist/versoly-ui.js?icon=jsdelivr&label&color=blue&cache=10800" alt="brotli bundle size">
15
+ <a href="https://unpkg.com/versoly-ui@2.0.1/dist/versoly-ui.js">
16
+ <img src="https://flat.badgen.net/badgesize/brotli/https://unpkg.com/versoly-ui@2.0.1/dist/versoly-ui.js?icon=jsdelivr&label&color=blue&cache=10800" alt="brotli bundle size">
17
17
  </a>
18
18
  </p>
19
19
  </div>
@@ -56,5 +56,3 @@ If you need help or just want to discuss about the library join the community on
56
56
  For casual chatting with others using the library:
57
57
 
58
58
  [Join the Versoly Discord Server](https://discord.versoly.com)
59
-
60
-
@@ -1,2 +1,2 @@
1
- var e=function(e){return e.getAttribute("data-target")&&document.getElementById(e.getAttribute("data-target").replace("#",""))},t=function(e){return 1e3*window.getComputedStyle(e).getPropertyValue("transition-duration").replace("s","")+1},o=function(e,t,o){t.forEach((function(t){e.addEventListener(t,o)}))},n=function(e,t,o){return function(){return document.querySelectorAll(e).forEach((function(e){e.addEventListener(t,(function(){return o(e)}))}))}};const i=n('[data-toggle="accordion"]',"click",(function(e){var o=e.closest(".accordion-item").querySelector(".accordion-collapse"),n=t(o);if(o.style.overflow="hidden",o.style.height=0,"true"===e.getAttribute("aria-expanded"))return e.setAttribute("aria-expanded","false"),o.classList.remove("show"),void window.setTimeout((function(){o.classList.remove("block"),o.classList.add("hidden")}),n);e.setAttribute("aria-expanded","true"),o.classList.add("block"),o.classList.add("show"),o.classList.remove("hidden"),window.setTimeout((function(){o.style.height=o.scrollHeight+"px"}),33),window.setTimeout((function(){o.style.overflow=""}),n)}));const r=n("[data-dismiss]","click",(function(o){var n=e(o);n||(n=o.closest(".".concat(o.getAttribute("data-dismiss")))),n.classList.add("opacity-0"),setTimeout((function(){return n.remove()}),t(n))}));const a=n('[data-toggle="collapse"]',"click",(function(o){var n=e(o);if(n){var i=t(n);if(n.style.overflow="hidden",n.style.height=0,"true"===o.getAttribute("aria-expanded"))return o.setAttribute("aria-expanded","false"),n.classList.remove("show"),void window.setTimeout((function(){return n.classList.remove("block")}),i);o.setAttribute("aria-expanded","true"),n.classList.add("block"),n.classList.add("show"),window.setTimeout((function(){n.querySelectorAll(".dropdown-menu").forEach((function(e){return e.classList.add("hidden")}));var e=n.scrollHeight;n.querySelectorAll(".dropdown-menu").forEach((function(e){return e.classList.remove("hidden")})),n.style.height=e+"px"}),32),window.setTimeout((function(){return n.style.overflow=""}),i)}})),c=function(){return document.querySelectorAll('[data-toggle="dropdown"]').forEach((function(e){var t,n=e.nextSibling.nextSibling;function i(){n.classList.remove("show"),window.setTimeout((function(){n.classList.remove("block")}),300)}o(e,["click"],(function(){n.className.includes("show")?i():(n.classList.add("block"),window.setTimeout((function(){n.classList.toggle("show")}),50))})),o(e,["focus","mouseenter"],(function(){var t=Popper.createPopper(e,n,{placement:"bottom-start",modifiers:[{name:"offset",options:{offset:[0,10]}}]});n.classList.add("block"),t.forceUpdate(),t.update(),window.setTimeout((function(){n.getAttribute("class").includes("show")||n.classList.remove("block")}),50)})),o(e,["blur","mouseleave"],(function(){n.getAttribute("class").includes("show")||n.classList.remove("block")})),t=i,document.addEventListener("keydown",(function(e){"Escape"===e.key&&t()}));document.body.addEventListener("click",(function(t){var o=t.target;o===n||o===e||e.contains(o)||i()}))}))};var s="fixed right-0 top-0 z-50 text-white px-5 close";window.removeModal=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"v-modal",t=document.getElementById(e);t.classList.remove("opacity-100"),window.setTimeout((function(){t.remove(),document.body.style.overflow=""}),500)};const l=n('[data-toggle="modal"]',"click",(function(e){var t=function(e){var t=e.dataset.options;return t?JSON.parse(t.replaceAll("'",'"')):{}}(e),o=t.size,n=t.beforeShown,i=t.id||"v-modal",r=e.dataset.html||"";t.imgSrc&&(r='<img src="'.concat(t.imgSrc,'">')),t.iframeSrc&&(r='<iframe allow="autoplay" class="aspect-video w-full" src="'.concat(t.iframeSrc,'" allowfullscreen="" autoplay=""></iframe>'));var a,c,l='<div class="modal" id="'.concat(i,'">\n <div class="modal-content ').concat(o?"modal-".concat(o):"",'">\n ').concat(r,"\n </div>\n\n <button onclick=\"removeModal('").concat(i,'\')" type="button" class="').concat(s,'" data-dismiss="modal" aria-label="Close">\n <span class="text-4xl" aria-hidden="true">&times;</span>\n </button>\n\n <div class="modal-bg" onclick="removeModal(\'').concat(i,"')\"></div>\n</div>\n");document.addEventListener("keydown",(function(e){return 27==e.keyCode&&window.removeModal(i)})),document.body.style.overflow="hidden",document.body.insertAdjacentHTML("beforeend",l),(a="#"+i,c=document,new Promise((function(e){if(c.querySelector(a))return e(c.querySelector(a));var t=new MutationObserver((function(o){c.querySelector(a)&&(e(c.querySelector(a)),t.disconnect())}));t.observe(c.body,{childList:!0,subtree:!0})}))).then((function(e){n&&window[n](),window.setTimeout((function(){return e.classList.add("opacity-100")}),32)}))}));function d(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,n=new Array(t);o<t;o++)n[o]=e[o];return n}function u(e){return function(e){if(Array.isArray(e))return d(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return d(e,t);var o=Object.prototype.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?d(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}const f=n('[role="tab"]',"click",(function(e){if("true"===e.getAttribute("aria-selected"))return null;var t=document.querySelector('[aria-labelledby="'.concat(e.getAttribute("aria-controls"),'"]'));if(!t)return null;for(var o=e.classList.value,n=e.parentNode;n&&"tablist"!==n.getAttribute("role");)n=n.parentNode;var i=n.querySelectorAll('[aria-selected="true"]');if(!i||0===i.length)return null;var r=i[0].classList.value;n.querySelectorAll('[role="tab"]').forEach((function(e){e.classList=o,e.setAttribute("aria-selected","false")})),e.classList=r,e.setAttribute("aria-selected","true"),"tabcontent"!==t.getAttribute("role")?(u(t.parentNode.children).forEach((function(e){"tabpanel"===e.getAttribute("role")&&e.classList.add("hidden")})),t.classList.remove("hidden")):u(t.children).forEach((function(e){"tabpanel"===e.getAttribute("role")&&e.classList.remove("hidden")}))}));window.vInitialized=!1,window.initializeVUI=function(){window.vInitialized||(window.vInitialized=!0,i(),a(),r(),c(),l(),f(),window.addEventListener("resize",(function(){document.querySelectorAll('[data-toggle="collapse"]').forEach((function(t){var o=e(t);o&&(t.setAttribute("aria-expanded","false"),o.classList.remove("show"),o.classList.remove("block"),o.style.height="auto",o.style.overflow="")}))})))},document.addEventListener("DOMContentLoaded",initializeVUI),"loading"!==document.readyState&&initializeVUI();
1
+ var __webpack_modules__={515:(__unused_webpack_module,__webpack_exports__,__webpack_require__)=>{__webpack_require__.d(__webpack_exports__,{Z:()=>__WEBPACK_DEFAULT_EXPORT__});var _utils__WEBPACK_IMPORTED_MODULE_0__=__webpack_require__(279);const __WEBPACK_DEFAULT_EXPORT__=function(){return document.querySelectorAll('[data-toggle="dropdown"]').forEach((function(trigger){var _window$FloatingUIDOM=window.FloatingUIDOM,computePosition=_window$FloatingUIDOM.computePosition,shift=_window$FloatingUIDOM.shift,offset=_window$FloatingUIDOM.offset,target=trigger.nextElementSibling,parent=trigger.parentElement,options=eval("("+trigger.dataset.options+")"||0)||{},middleware=[offset(6),shift({padding:5})];function update(){computePosition(trigger,target,{placement:options.placement||"bottom",middleware}).then((function(e){var t=e.x,o=e.y;Object.assign(target.style,{left:"".concat(t,"px"),top:"".concat(o,"px")})}))}var show=function(){target.style.display="block",requestAnimationFrame((function(){target.classList.add("opacity-100","visible")})),update()},hide=function(){target.style.display="",target.classList.remove("opacity-100","visible")},toggle=function(){"block"!==target.style.display?show():hide()};parent.addEventListener("focusout",(function(e){!parent.contains(e.relatedTarget)&&document.hasFocus()&&hide()})),(0,_utils__WEBPACK_IMPORTED_MODULE_0__.yw)(trigger,["click"],toggle),(0,_utils__WEBPACK_IMPORTED_MODULE_0__.VM)(hide)}))}},279:(e,t,o)=>{o.d(t,{U9:()=>r,g9:()=>n,yw:()=>i,VM:()=>a,vj:()=>c,wI:()=>l,br:()=>s,Di:()=>d});var r=function(e){return e.getAttribute("data-target")&&document.getElementById(e.getAttribute("data-target").replace("#",""))},n=function(e){return 1e3*window.getComputedStyle(e).getPropertyValue("transition-duration").replace("s","")+1},i=function(e,t,o){t.forEach((function(t){e.addEventListener(t,o)}))},a=function(e){document.addEventListener("keydown",(function(t){"Escape"===t.key&&e()}))},c=function(e,t,o){return function(){return document.querySelectorAll(e).forEach((function(e){e.addEventListener(t,(function(){return o(e)}))}))}},l=function(){return window.addEventListener("resize",(function(){document.querySelectorAll('[data-toggle="collapse"]').forEach((function(e){var t=r(e);t&&(e.setAttribute("aria-expanded","false"),t.classList.remove("show"),t.classList.remove("block"),t.style.height="auto",t.style.overflow="")}))}))},s=function(e){var t=document;return new Promise((function(o){if(t.querySelector(e))return o(t.querySelector(e));var r=new MutationObserver((function(n){t.querySelector(e)&&(o(t.querySelector(e)),r.disconnect())}));r.observe(t.body,{childList:!0,subtree:!0})}))},d=function(e){var t=e.dataset.options;return t?JSON.parse(t.replaceAll("'",'"')):{}}}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var o=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](o,o.exports,__webpack_require__),o.exports}__webpack_require__.d=(e,t)=>{for(var o in t)__webpack_require__.o(t,o)&&!__webpack_require__.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var __webpack_exports__={};(()=>{var e=__webpack_require__(279);const t=(0,e.vj)('[data-toggle="accordion"]',"click",(function(t){var o=t.closest(".accordion-item").querySelector(".accordion-collapse"),r=(0,e.g9)(o);if(o.style.overflow="hidden",o.style.height=0,"true"===t.getAttribute("aria-expanded"))return t.setAttribute("aria-expanded","false"),o.classList.remove("show"),void window.setTimeout((function(){o.classList.remove("block"),o.classList.add("hidden")}),r);t.setAttribute("aria-expanded","true"),o.classList.add("block"),o.classList.add("show"),o.classList.remove("hidden"),window.setTimeout((function(){o.style.height=o.scrollHeight+"px"}),33),window.setTimeout((function(){o.style.overflow=""}),r)}));const o=(0,e.vj)("[data-dismiss]","click",(function(t){var o=(0,e.U9)(t);o||(o=t.closest(".".concat(t.getAttribute("data-dismiss")))),o.classList.add("opacity-0"),setTimeout((function(){return o.remove()}),(0,e.g9)(o))}));const r=(0,e.vj)('[data-toggle="collapse"]',"click",(function(t){var o=(0,e.U9)(t);if(o){var r=(0,e.g9)(o);if(o.style.overflow="hidden",o.style.height=0,"true"===t.getAttribute("aria-expanded"))return t.setAttribute("aria-expanded","false"),o.classList.remove("show"),void window.setTimeout((function(){return o.classList.remove("block")}),r);t.setAttribute("aria-expanded","true"),o.classList.add("block"),o.classList.add("show"),window.setTimeout((function(){o.querySelectorAll(".dropdown-menu").forEach((function(e){return e.classList.add("hidden")}));var e=o.scrollHeight;o.querySelectorAll(".dropdown-menu").forEach((function(e){return e.classList.remove("hidden")})),o.style.height=e+"px"}),32),window.setTimeout((function(){return o.style.overflow=""}),r)}}));var n=__webpack_require__(515),i="fixed right-0 top-0 z-50 text-white px-5 close";window.removeModal=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"v-modal",t=document.getElementById(e);t.classList.remove("opacity-100"),window.setTimeout((function(){t.remove(),document.body.style.overflow=""}),500)};const a=(0,e.vj)('[data-toggle="modal"]',"click",(function(t){var o=(0,e.Di)(t),r=o.size,n=o.beforeShown,a=o.id||"v-modal",c=t.dataset.html||"";o.imgSrc&&(c='<img src="'.concat(o.imgSrc,'">')),o.iframeSrc&&(c='<iframe allow="autoplay" class="aspect-video w-full" src="'.concat(o.iframeSrc,'" allowfullscreen="" autoplay=""></iframe>'));var l='<div class="modal" id="'.concat(a,'">\n <div class="modal-content ').concat(r?"modal-".concat(r):"",'">\n ').concat(c,"\n </div>\n\n <button onclick=\"removeModal('").concat(a,'\')" type="button" class="').concat(i,'" data-dismiss="modal" aria-label="Close">\n <span class="text-4xl" aria-hidden="true">&times;</span>\n </button>\n\n <div class="modal-bg" onclick="removeModal(\'').concat(a,"')\"></div>\n</div>\n");document.addEventListener("keydown",(function(e){return 27==e.keyCode&&window.removeModal(a)})),document.body.style.overflow="hidden",document.body.insertAdjacentHTML("beforeend",l),(0,e.br)("#"+a).then((function(e){n&&window[n](),window.setTimeout((function(){return e.classList.add("opacity-100")}),32)}))}));function c(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,r=new Array(t);o<t;o++)r[o]=e[o];return r}function l(e){return function(e){if(Array.isArray(e))return c(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return c(e,t);var o=Object.prototype.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?c(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}const s=(0,e.vj)('[role="tab"]',"click",(function(e){if("true"===e.getAttribute("aria-selected"))return null;var t=document.querySelector('[aria-labelledby="'.concat(e.getAttribute("aria-controls"),'"]'));if(!t)return null;for(var o=e.classList.value,r=e.parentNode;r&&"tablist"!==r.getAttribute("role");)r=r.parentNode;var n=r.querySelectorAll('[aria-selected="true"]');if(!n||0===n.length)return null;var i=n[0].classList.value;r.querySelectorAll('[role="tab"]').forEach((function(e){e.classList=o,e.setAttribute("aria-selected","false")})),e.classList=i,e.setAttribute("aria-selected","true"),"tabcontent"!==t.getAttribute("role")?(l(t.parentNode.children).forEach((function(e){"tabpanel"===e.getAttribute("role")&&e.classList.add("hidden")})),t.classList.remove("hidden")):l(t.children).forEach((function(e){"tabpanel"===e.getAttribute("role")&&e.classList.remove("hidden")}))}));window.vInitialized=!1,window.initializeVUI=function(){window.vInitialized||(window.vInitialized=!0,t(),r(),o(),(0,n.Z)(),a(),s(),(0,e.wI)())},document.addEventListener("DOMContentLoaded",initializeVUI),"loading"!==document.readyState&&initializeVUI()})();
2
2
  //# sourceMappingURL=versoly-ui.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"versoly-ui.js","mappings":"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","sources":["webpack:///./src/js/utils/index.js","webpack:///./src/js/components/accordion.js","webpack:///./src/js/components/dismiss.js","webpack:///./src/js/components/collapse.js","webpack:///./src/js/components/dropdown.js","webpack:///./src/js/components/modal.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./src/js/components/tabs.js","webpack:///./src/js/components/common.js"],"sourcesContent":["export const getTarget = element => element.getAttribute('data-target') && document.getElementById(element.getAttribute('data-target').replace('#', ''))\n\nexport const getDuration = element => window.getComputedStyle(element).getPropertyValue('transition-duration').replace('s', '') * 1000 + 1\n\nexport const addEventListeners = (element, events, listenerFunction) => {\n events.forEach(event => {\n element.addEventListener(event, listenerFunction);\n });\n}\n\nexport const addEscapeListener = listenerFunction => {\n document.addEventListener('keydown', e => {\n if (e.key === \"Escape\") {\n listenerFunction()\n }\n })\n}\n\nexport const addEventListenerToSelector = (selector, eventListener, listenerFunction) => {\n return () => document.querySelectorAll(selector).forEach(element => {\n element.addEventListener(eventListener, () => listenerFunction(element))\n })\n}\n\nexport const handleResize = () => window.addEventListener('resize', () => {\n document.querySelectorAll('[data-toggle=\"collapse\"]').forEach(element => {\n let target = getTarget(element)\n\n if (!target) {\n return\n }\n\n element.setAttribute('aria-expanded', 'false');\n target.classList.remove('show');\n target.classList.remove('block');\n target.style.height = 'auto'\n target.style.overflow = ''\n })\n})\n\n\nexport const waitForElement = (s) => {\n let d = document\n return new Promise(resolve => {\n if (d.querySelector(s)) {\n return resolve(d.querySelector(s));\n }\n const observer = new MutationObserver(mutations => {\n if (d.querySelector(s)) {\n resolve(d.querySelector(s));\n observer.disconnect();\n }\n });\n observer.observe(d.body, {childList: true,subtree: true});\n });\n}\n\nexport const parseElementOptions = element => {\n let t = element.dataset.options\n return t ? JSON.parse(t.replaceAll(\"'\", '\"')) : {};\n}\n\nexport const triggerEvent = (element, eventName) => {\n let event = document.createEvent(\"HTMLEvents\");\n event.initEvent(eventName, true, true);\n event.eventName = eventName;\n element.dispatchEvent(event);\n}\n","import { getTarget, getDuration, addEventListeners, addEscapeListener, addEventListenerToSelector } from '../utils'\n\nconst accordion = (element) => {\n let target = element.closest('.accordion-item').querySelector('.accordion-collapse')\n const duration = getDuration(target)\n\n target.style.overflow = 'hidden'\n target.style.height = 0\n\n if (element.getAttribute('aria-expanded') === 'true') {\n element.setAttribute('aria-expanded', 'false');\n target.classList.remove('show');\n\n window.setTimeout(() => {\n target.classList.remove('block');\n target.classList.add('hidden');\n }, duration)\n return\n }\n element.setAttribute('aria-expanded', 'true');\n target.classList.add('block');\n target.classList.add('show');\n target.classList.remove('hidden');\n\n window.setTimeout(() => {\n target.style.height = target.scrollHeight + 'px'\n }, 33)\n\n window.setTimeout(() => {\n target.style.overflow = ''\n }, duration)\n}\n\nconst Accordion = addEventListenerToSelector('[data-toggle=\"accordion\"]', 'click', accordion)\nexport default Accordion\n","import { getDuration, getTarget, addEventListenerToSelector } from '../utils'\n\nconst dismiss = element => {\n let target = getTarget(element)\n if (!target) {\n target = element.closest(`.${element.getAttribute('data-dismiss')}`)\n }\n target.classList.add('opacity-0')\n setTimeout(() => target.remove(), getDuration(target))\n}\n\nconst Dismiss = addEventListenerToSelector('[data-dismiss]', 'click', dismiss)\nexport default Dismiss\n","import { getDuration, getTarget, addEventListenerToSelector } from '../utils'\n\nconst collapse = (element) => {\n let target = getTarget(element)\n if (!target) {\n return\n }\n\n const duration = getDuration(target)\n target.style.overflow = 'hidden'\n target.style.height = 0\n\n if (element.getAttribute('aria-expanded') === 'true') {\n element.setAttribute('aria-expanded', 'false');\n target.classList.remove('show');\n\n window.setTimeout(() => target.classList.remove('block'), duration)\n return\n }\n\n element.setAttribute('aria-expanded', 'true');\n target.classList.add('block');\n target.classList.add('show');\n\n window.setTimeout(() => {\n target.querySelectorAll('.dropdown-menu').forEach(m => m.classList.add('hidden'));\n let navHeight = target.scrollHeight\n target.querySelectorAll('.dropdown-menu').forEach(m => m.classList.remove('hidden'));\n target.style.height = navHeight + 'px'\n }, 32)\n\n window.setTimeout(() => target.style.overflow = '', duration)\n}\n\nconst Collapse = addEventListenerToSelector('[data-toggle=\"collapse\"]', 'click', collapse)\nexport default Collapse\n","import { addEventListeners, addEscapeListener } from '../utils'\n\nexport default () => document.querySelectorAll('[data-toggle=\"dropdown\"]').forEach(element => {\n let dropdown = element.nextSibling.nextSibling\n // let dropdownHeight = dropdown && dropdown.offsetHeight\n // console.log(dropdown)\n\n function toggle() {\n if (dropdown.className.includes('show')) {\n hide()\n return\n }\n dropdown.classList.add('block')\n // dropdown.classList.remove('hidden')\n\n window.setTimeout(() => {\n dropdown.classList.toggle('show')\n }, 50)\n\n // if (dropdown.getAttribute('class').includes('show')) {\n // document.getElementById('nav').style.height = document.getElementById('nav').offsetHeight + dropdownHeight + 'px'\n // dropdown.style.height = dropdownHeight + 'px'\n // }\n // else {\n // dropdown.style.height = '0px'\n // }\n // setTimeout(() => dropdown.classList.toggle('block'), 1000)\n // dropdown.style.position = 'absolute';\n }\n\n function hide() {\n dropdown.classList.remove('show');\n\n window.setTimeout(() => {\n // dropdown.classList.add('hidden');\n dropdown.classList.remove('block')\n }, 300)\n\n // if (dropdown.getAttribute('class').includes('show')) {\n // document.getElementById('nav').style.height = document.getElementById('nav').offsetHeight - dropdownHeight + 'px'\n // dropdown.style.height = '0px'\n // dropdown.style.padding = 0\n // dropdown.style.width = '0px'\n // }\n }\n\n addEventListeners(element, ['click'], toggle);\n // addEventListeners(element, ['blur'], hide);\n\n addEventListeners(element, ['focus', 'mouseenter'], () => {\n let popperInstance = Popper.createPopper(element, dropdown, {\n placement: 'bottom-start',\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 10],\n },\n },\n ]\n });\n dropdown.classList.add('block')\n popperInstance.forceUpdate()\n popperInstance.update()\n\n window.setTimeout(() => {\n if (!dropdown.getAttribute('class').includes('show')) {\n dropdown.classList.remove('block')\n }\n }, 50)\n });\n\n addEventListeners(element, ['blur', 'mouseleave'], () => {\n if (!dropdown.getAttribute('class').includes('show')) {\n dropdown.classList.remove('block')\n }\n });\n addEscapeListener(hide)\n\n const handleDropdownOutsideClick = (event) => {\n const targetElement = event.target; // clicked element\n if (targetElement !== dropdown && targetElement !== element && !element.contains(targetElement)) {\n hide()\n }\n }\n\n document.body.addEventListener('click', handleDropdownOutsideClick);\n})\n","import { waitForElement, parseElementOptions, addEventListenerToSelector } from '../utils'\n\n\nconst defaults = {\n closeButton: 'fixed right-0 top-0 z-50 text-white px-5 close'\n}\n\n // if (element.getAttribute('aria-label')) {\n // return\n // }\n // element.setAttribute('aria-label', 'modal')\n\nconst addModal = (element) => {\n const options = parseElementOptions(element)\n const {size, beforeShown} = options\n const id = options.id || 'v-modal'\n let content = element.dataset.html || ''\n\n if (options.imgSrc) {\n content = `<img src=\"${options.imgSrc}\">`\n }\n if (options.iframeSrc) {\n content = `<iframe allow=\"autoplay\" class=\"aspect-video w-full\" src=\"${options.iframeSrc}\" allowfullscreen=\"\" autoplay=\"\"></iframe>`\n }\n\n let modalHTML = `<div class=\"modal\" id=\"${id}\">\n <div class=\"modal-content ${size ? `modal-${size}` : ''}\">\n ${content}\n </div>\n\n <button onclick=\"removeModal('${id}')\" type=\"button\" class=\"${defaults.closeButton}\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span class=\"text-4xl\" aria-hidden=\"true\">&times;</span>\n </button>\n\n <div class=\"modal-bg\" onclick=\"removeModal('${id}')\"></div>\n</div>\n`;\n\n document.addEventListener('keydown', e => e.keyCode == 27 && window.removeModal(id))\n document.body.style.overflow = 'hidden'\n document.body.insertAdjacentHTML('beforeend', modalHTML)\n\n waitForElement('#' + id).then(ele => {\n beforeShown && window[beforeShown]()\n window.setTimeout(() => ele.classList.add('opacity-100'), 32)\n })\n}\n\nconst removeModal = (id='v-modal') => {\n let modal = document.getElementById(id)\n modal.classList.remove('opacity-100')\n window.setTimeout(() => {\n modal.remove()\n document.body.style.overflow = ''\n }, 500)\n}\n\nwindow.removeModal = removeModal\nconst Modals = addEventListenerToSelector('[data-toggle=\"modal\"]', 'click', addModal)\nexport default Modals\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import { addEventListenerToSelector } from '../utils'\n\nconst tabs = element => {\n if (element.getAttribute(\"aria-selected\") === 'true') {\n return null\n }\n\n let target = document.querySelector(`[aria-labelledby=\"${element.getAttribute('aria-controls')}\"]`)\n if (!target) {\n return null\n }\n\n let inactiveClass = element.classList.value\n\n let tablist = element.parentNode\n while (tablist && tablist.getAttribute('role') !== 'tablist') {\n tablist = tablist.parentNode\n }\n\n let activeTabs = tablist.querySelectorAll('[aria-selected=\"true\"]')\n if (!activeTabs || activeTabs.length === 0) {\n return null\n }\n let activeClass = activeTabs[0].classList.value;\n\n tablist.querySelectorAll('[role=\"tab\"]').forEach(tab => {\n tab.classList = inactiveClass\n tab.setAttribute('aria-selected', 'false')\n });\n\n element.classList = activeClass;\n element.setAttribute('aria-selected', 'true');\n\n if (target.getAttribute('role') === 'tabcontent') {\n [...target.children].forEach(n => {\n if (n.getAttribute('role') === 'tabpanel') {\n n.classList.remove('hidden')\n }\n })\n return\n }\n\n [...target.parentNode.children].forEach(n => {\n if (n.getAttribute('role') === 'tabpanel') {\n n.classList.add('hidden')\n }\n })\n\n target.classList.remove('hidden')\n}\n\nconst Tabs = addEventListenerToSelector('[role=\"tab\"]', 'click', tabs)\nexport default Tabs\n","import accordion from './accordion'\nimport dismiss from './dismiss'\nimport collapse from './collapse'\nimport dropdown from './dropdown'\nimport modal from './modal'\nimport tabs from './tabs'\nimport { handleResize } from '../utils'\n\n(function() {\nwindow.vInitialized = false\nwindow.initializeVUI = () => {\n if (window.vInitialized) {\n return\n }\n window.vInitialized = true\n accordion()\n collapse()\n dismiss()\n dropdown()\n modal()\n tabs()\n\n handleResize()\n}\n\ndocument.addEventListener('DOMContentLoaded', initializeVUI)\nif (document.readyState !== \"loading\") {\n initializeVUI()\n}\n})();"],"names":["getTarget","element","getAttribute","document","getElementById","replace","getDuration","window","getComputedStyle","getPropertyValue","addEventListeners","events","listenerFunction","forEach","event","addEventListener","addEventListenerToSelector","selector","eventListener","querySelectorAll","target","closest","querySelector","duration","style","overflow","height","setAttribute","classList","remove","setTimeout","add","scrollHeight","m","navHeight","dropdown","nextSibling","hide","className","includes","toggle","popperInstance","Popper","createPopper","placement","modifiers","name","options","offset","forceUpdate","update","e","key","body","targetElement","contains","defaults","removeModal","id","modal","t","dataset","JSON","parse","replaceAll","parseElementOptions","size","beforeShown","content","html","imgSrc","iframeSrc","s","d","modalHTML","keyCode","insertAdjacentHTML","Promise","resolve","observer","MutationObserver","mutations","disconnect","observe","childList","subtree","then","ele","_arrayLikeToArray","arr","len","length","i","arr2","Array","_toConsumableArray","isArray","iter","Symbol","iterator","from","o","minLen","n","Object","prototype","toString","call","slice","constructor","test","TypeError","inactiveClass","value","tablist","parentNode","activeTabs","activeClass","tab","children","vInitialized","initializeVUI","accordion","collapse","dismiss","tabs","readyState"],"sourceRoot":""}
1
+ {"version":3,"file":"versoly-ui.js","mappings":"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","sources":["webpack:///./src/js/components/dropdown.js","webpack:///./src/js/utils/index.js","webpack:///webpack/bootstrap","webpack:///webpack/runtime/define property getters","webpack:///webpack/runtime/hasOwnProperty shorthand","webpack:///./src/js/components/accordion.js","webpack:///./src/js/components/dismiss.js","webpack:///./src/js/components/collapse.js","webpack:///./src/js/components/modal.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./src/js/components/tabs.js","webpack:///./src/js/components/common.js"],"sourcesContent":["import { addEventListeners, addEscapeListener } from '../utils'\n\nexport default () => document.querySelectorAll('[data-toggle=\"dropdown\"]').forEach(trigger => {\n\n const {computePosition, shift, offset} = window.FloatingUIDOM;\n const target = trigger.nextElementSibling;\n const parent = trigger.parentElement;\n const options = eval('(' + trigger.dataset.options + ')' || '') || {};\n\n let middleware = [\n offset(6),\n shift({\n padding: 5,\n }),\n ];\n\n function update() {\n computePosition(trigger, target, {\n placement: options.placement || 'bottom',\n middleware,\n }).then(({ x, y }) => {\n Object.assign(target.style, {\n left: `${x}px`,\n top: `${y}px`,\n });\n });\n }\n\n const show = () => {\n target.style.display = 'block';\n requestAnimationFrame(() => {\n target.classList.add('opacity-100', 'visible');\n });\n update();\n };\n\n const hide = () => {\n target.style.display = '';\n target.classList.remove('opacity-100', 'visible');\n };\n\n const toggle = () => {\n if (target.style.display === 'block') {\n hide();\n return;\n }\n show();\n };\n\n parent.addEventListener('focusout', (e) => {\n if (parent.contains(e.relatedTarget) || !document.hasFocus()) {\n return\n };\n hide()\n });\n addEventListeners(trigger, ['click'], toggle)\n addEscapeListener(hide)\n})\n","export const getTarget = element => element.getAttribute('data-target') && document.getElementById(element.getAttribute('data-target').replace('#', ''))\n\nexport const getDuration = element => window.getComputedStyle(element).getPropertyValue('transition-duration').replace('s', '') * 1000 + 1\n\nexport const addEventListeners = (element, events, listenerFunction) => {\n events.forEach(event => {\n element.addEventListener(event, listenerFunction);\n });\n}\n\nexport const addEscapeListener = listenerFunction => {\n document.addEventListener('keydown', e => {\n if (e.key === \"Escape\") {\n listenerFunction()\n }\n })\n}\n\nexport const addEventListenerToSelector = (selector, eventListener, listenerFunction) => {\n return () => document.querySelectorAll(selector).forEach(element => {\n element.addEventListener(eventListener, () => listenerFunction(element))\n })\n}\n\nexport const handleResize = () => window.addEventListener('resize', () => {\n document.querySelectorAll('[data-toggle=\"collapse\"]').forEach(element => {\n let target = getTarget(element)\n\n if (!target) {\n return\n }\n\n element.setAttribute('aria-expanded', 'false');\n target.classList.remove('show');\n target.classList.remove('block');\n target.style.height = 'auto'\n target.style.overflow = ''\n })\n})\n\n\nexport const waitForElement = (s) => {\n let d = document\n return new Promise(resolve => {\n if (d.querySelector(s)) {\n return resolve(d.querySelector(s));\n }\n const observer = new MutationObserver(mutations => {\n if (d.querySelector(s)) {\n resolve(d.querySelector(s));\n observer.disconnect();\n }\n });\n observer.observe(d.body, {childList: true,subtree: true});\n });\n}\n\nexport const parseElementOptions = element => {\n let t = element.dataset.options\n return t ? JSON.parse(t.replaceAll(\"'\", '\"')) : {};\n}\n\nexport const triggerEvent = (element, eventName) => {\n let event = document.createEvent(\"HTMLEvents\");\n event.initEvent(eventName, true, true);\n event.eventName = eventName;\n element.dispatchEvent(event);\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\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))","import { getTarget, getDuration, addEventListeners, addEscapeListener, addEventListenerToSelector } from '../utils'\n\nconst accordion = (element) => {\n let target = element.closest('.accordion-item').querySelector('.accordion-collapse')\n const duration = getDuration(target)\n\n target.style.overflow = 'hidden'\n target.style.height = 0\n\n if (element.getAttribute('aria-expanded') === 'true') {\n element.setAttribute('aria-expanded', 'false');\n target.classList.remove('show');\n\n window.setTimeout(() => {\n target.classList.remove('block');\n target.classList.add('hidden');\n }, duration)\n return\n }\n element.setAttribute('aria-expanded', 'true');\n target.classList.add('block');\n target.classList.add('show');\n target.classList.remove('hidden');\n\n window.setTimeout(() => {\n target.style.height = target.scrollHeight + 'px'\n }, 33)\n\n window.setTimeout(() => {\n target.style.overflow = ''\n }, duration)\n}\n\nconst Accordion = addEventListenerToSelector('[data-toggle=\"accordion\"]', 'click', accordion)\nexport default Accordion\n","import { getDuration, getTarget, addEventListenerToSelector } from '../utils'\n\nconst dismiss = element => {\n let target = getTarget(element)\n if (!target) {\n target = element.closest(`.${element.getAttribute('data-dismiss')}`)\n }\n target.classList.add('opacity-0')\n setTimeout(() => target.remove(), getDuration(target))\n}\n\nconst Dismiss = addEventListenerToSelector('[data-dismiss]', 'click', dismiss)\nexport default Dismiss\n","import { getDuration, getTarget, addEventListenerToSelector } from '../utils'\n\nconst collapse = (element) => {\n let target = getTarget(element)\n if (!target) {\n return\n }\n\n const duration = getDuration(target)\n target.style.overflow = 'hidden'\n target.style.height = 0\n\n if (element.getAttribute('aria-expanded') === 'true') {\n element.setAttribute('aria-expanded', 'false');\n target.classList.remove('show');\n\n window.setTimeout(() => target.classList.remove('block'), duration)\n return\n }\n\n element.setAttribute('aria-expanded', 'true');\n target.classList.add('block');\n target.classList.add('show');\n\n window.setTimeout(() => {\n target.querySelectorAll('.dropdown-menu').forEach(m => m.classList.add('hidden'));\n let navHeight = target.scrollHeight\n target.querySelectorAll('.dropdown-menu').forEach(m => m.classList.remove('hidden'));\n target.style.height = navHeight + 'px'\n }, 32)\n\n window.setTimeout(() => target.style.overflow = '', duration)\n}\n\nconst Collapse = addEventListenerToSelector('[data-toggle=\"collapse\"]', 'click', collapse)\nexport default Collapse\n","import { waitForElement, parseElementOptions, addEventListenerToSelector } from '../utils'\n\n\nconst defaults = {\n closeButton: 'fixed right-0 top-0 z-50 text-white px-5 close'\n}\n\n // if (element.getAttribute('aria-label')) {\n // return\n // }\n // element.setAttribute('aria-label', 'modal')\n\nconst addModal = (element) => {\n const options = parseElementOptions(element)\n const {size, beforeShown} = options\n const id = options.id || 'v-modal'\n let content = element.dataset.html || ''\n\n if (options.imgSrc) {\n content = `<img src=\"${options.imgSrc}\">`\n }\n if (options.iframeSrc) {\n content = `<iframe allow=\"autoplay\" class=\"aspect-video w-full\" src=\"${options.iframeSrc}\" allowfullscreen=\"\" autoplay=\"\"></iframe>`\n }\n\n let modalHTML = `<div class=\"modal\" id=\"${id}\">\n <div class=\"modal-content ${size ? `modal-${size}` : ''}\">\n ${content}\n </div>\n\n <button onclick=\"removeModal('${id}')\" type=\"button\" class=\"${defaults.closeButton}\" data-dismiss=\"modal\" aria-label=\"Close\">\n <span class=\"text-4xl\" aria-hidden=\"true\">&times;</span>\n </button>\n\n <div class=\"modal-bg\" onclick=\"removeModal('${id}')\"></div>\n</div>\n`;\n\n document.addEventListener('keydown', e => e.keyCode == 27 && window.removeModal(id))\n document.body.style.overflow = 'hidden'\n document.body.insertAdjacentHTML('beforeend', modalHTML)\n\n waitForElement('#' + id).then(ele => {\n beforeShown && window[beforeShown]()\n window.setTimeout(() => ele.classList.add('opacity-100'), 32)\n })\n}\n\nconst removeModal = (id='v-modal') => {\n let modal = document.getElementById(id)\n modal.classList.remove('opacity-100')\n window.setTimeout(() => {\n modal.remove()\n document.body.style.overflow = ''\n }, 500)\n}\n\nwindow.removeModal = removeModal\nconst Modals = addEventListenerToSelector('[data-toggle=\"modal\"]', 'click', addModal)\nexport default Modals\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import { addEventListenerToSelector } from '../utils'\n\nconst tabs = element => {\n if (element.getAttribute(\"aria-selected\") === 'true') {\n return null\n }\n\n let target = document.querySelector(`[aria-labelledby=\"${element.getAttribute('aria-controls')}\"]`)\n if (!target) {\n return null\n }\n\n let inactiveClass = element.classList.value\n\n let tablist = element.parentNode\n while (tablist && tablist.getAttribute('role') !== 'tablist') {\n tablist = tablist.parentNode\n }\n\n let activeTabs = tablist.querySelectorAll('[aria-selected=\"true\"]')\n if (!activeTabs || activeTabs.length === 0) {\n return null\n }\n let activeClass = activeTabs[0].classList.value;\n\n tablist.querySelectorAll('[role=\"tab\"]').forEach(tab => {\n tab.classList = inactiveClass\n tab.setAttribute('aria-selected', 'false')\n });\n\n element.classList = activeClass;\n element.setAttribute('aria-selected', 'true');\n\n if (target.getAttribute('role') === 'tabcontent') {\n [...target.children].forEach(n => {\n if (n.getAttribute('role') === 'tabpanel') {\n n.classList.remove('hidden')\n }\n })\n return\n }\n\n [...target.parentNode.children].forEach(n => {\n if (n.getAttribute('role') === 'tabpanel') {\n n.classList.add('hidden')\n }\n })\n\n target.classList.remove('hidden')\n}\n\nconst Tabs = addEventListenerToSelector('[role=\"tab\"]', 'click', tabs)\nexport default Tabs\n","import accordion from './accordion'\nimport dismiss from './dismiss'\nimport collapse from './collapse'\nimport dropdown from './dropdown'\nimport modal from './modal'\nimport tabs from './tabs'\nimport { handleResize } from '../utils'\n\n(function() {\nwindow.vInitialized = false\nwindow.initializeVUI = () => {\n if (window.vInitialized) {\n return\n }\n window.vInitialized = true\n accordion()\n collapse()\n dismiss()\n dropdown()\n modal()\n tabs()\n\n handleResize()\n}\n\ndocument.addEventListener('DOMContentLoaded', initializeVUI)\nif (document.readyState !== \"loading\") {\n initializeVUI()\n}\n})();"],"names":["document","querySelectorAll","forEach","trigger","window","FloatingUIDOM","computePosition","shift","offset","target","nextElementSibling","parent","parentElement","options","eval","dataset","middleware","padding","update","placement","then","x","y","Object","assign","style","left","top","show","display","requestAnimationFrame","classList","add","hide","remove","toggle","addEventListener","e","contains","relatedTarget","hasFocus","addEventListeners","addEscapeListener","getTarget","element","getAttribute","getElementById","replace","getDuration","getComputedStyle","getPropertyValue","events","listenerFunction","event","key","addEventListenerToSelector","selector","eventListener","handleResize","setAttribute","height","overflow","waitForElement","s","d","Promise","resolve","querySelector","observer","MutationObserver","mutations","disconnect","observe","body","childList","subtree","parseElementOptions","t","JSON","parse","replaceAll","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","definition","o","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","closest","duration","setTimeout","scrollHeight","m","navHeight","defaults","removeModal","id","modal","size","beforeShown","content","html","imgSrc","iframeSrc","modalHTML","keyCode","insertAdjacentHTML","ele","_arrayLikeToArray","arr","len","length","i","arr2","Array","_toConsumableArray","isArray","iter","Symbol","iterator","from","minLen","n","toString","slice","constructor","name","test","TypeError","inactiveClass","value","tablist","parentNode","activeTabs","activeClass","tab","children","vInitialized","initializeVUI","accordion","collapse","dismiss","dropdown","tabs","readyState"],"sourceRoot":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "versoly-ui",
3
- "version": "1.0.7",
3
+ "version": "2.0.1",
4
4
  "description": "Versoly UI - Tailwind CSS framework based on Bootstrap",
5
5
  "keywords": [
6
6
  "versoly",
@@ -16,7 +16,8 @@
16
16
  "bootstrap to tailwind",
17
17
  "html",
18
18
  "css",
19
- "javascript"
19
+ "javascript",
20
+ "dropdown Floating UI"
20
21
  ],
21
22
  "license": "MIT",
22
23
  "main": "dist/versoly-ui.js",
@@ -50,10 +51,13 @@
50
51
  "file-loader": "^6.2.0",
51
52
  "npm-run-all": "^4.1.5",
52
53
  "source-map-loader": "^2.0.0",
54
+ "terser-webpack-plugin": "^5.3.1",
53
55
  "webpack": "^5.47.0",
54
56
  "webpack-cli": "^4.7.2",
55
- "webpack-dev-server": "^3.11.2",
56
- "terser-webpack-plugin": "^5.3.1"
57
+ "webpack-dev-server": "^3.11.2"
57
58
  },
58
- "author": "Versoly"
59
+ "author": "Versoly",
60
+ "dependencies": {
61
+ "@floating-ui/dom": "^1.0.1"
62
+ }
59
63
  }
@@ -1,88 +1,58 @@
1
1
  import { addEventListeners, addEscapeListener } from '../utils'
2
2
 
3
- export default () => document.querySelectorAll('[data-toggle="dropdown"]').forEach(element => {
4
- let dropdown = element.nextSibling.nextSibling
5
- // let dropdownHeight = dropdown && dropdown.offsetHeight
6
- // console.log(dropdown)
7
-
8
- function toggle() {
9
- if (dropdown.className.includes('show')) {
10
- hide()
11
- return
12
- }
13
- dropdown.classList.add('block')
14
- // dropdown.classList.remove('hidden')
15
-
16
- window.setTimeout(() => {
17
- dropdown.classList.toggle('show')
18
- }, 50)
19
-
20
- // if (dropdown.getAttribute('class').includes('show')) {
21
- // document.getElementById('nav').style.height = document.getElementById('nav').offsetHeight + dropdownHeight + 'px'
22
- // dropdown.style.height = dropdownHeight + 'px'
23
- // }
24
- // else {
25
- // dropdown.style.height = '0px'
26
- // }
27
- // setTimeout(() => dropdown.classList.toggle('block'), 1000)
28
- // dropdown.style.position = 'absolute';
29
- }
30
-
31
- function hide() {
32
- dropdown.classList.remove('show');
33
-
34
- window.setTimeout(() => {
35
- // dropdown.classList.add('hidden');
36
- dropdown.classList.remove('block')
37
- }, 300)
38
-
39
- // if (dropdown.getAttribute('class').includes('show')) {
40
- // document.getElementById('nav').style.height = document.getElementById('nav').offsetHeight - dropdownHeight + 'px'
41
- // dropdown.style.height = '0px'
42
- // dropdown.style.padding = 0
43
- // dropdown.style.width = '0px'
44
- // }
3
+ export default () => document.querySelectorAll('[data-toggle="dropdown"]').forEach(trigger => {
4
+
5
+ const {computePosition, shift, offset} = window.FloatingUIDOM;
6
+ const target = trigger.nextElementSibling;
7
+ const parent = trigger.parentElement;
8
+ const options = eval('(' + trigger.dataset.options + ')' || '') || {};
9
+
10
+ let middleware = [
11
+ offset(6),
12
+ shift({
13
+ padding: 5,
14
+ }),
15
+ ];
16
+
17
+ function update() {
18
+ computePosition(trigger, target, {
19
+ placement: options.placement || 'bottom',
20
+ middleware,
21
+ }).then(({ x, y }) => {
22
+ Object.assign(target.style, {
23
+ left: `${x}px`,
24
+ top: `${y}px`,
25
+ });
26
+ });
45
27
  }
46
28
 
47
- addEventListeners(element, ['click'], toggle);
48
- // addEventListeners(element, ['blur'], hide);
49
-
50
- addEventListeners(element, ['focus', 'mouseenter'], () => {
51
- let popperInstance = Popper.createPopper(element, dropdown, {
52
- placement: 'bottom-start',
53
- modifiers: [
54
- {
55
- name: 'offset',
56
- options: {
57
- offset: [0, 10],
58
- },
59
- },
60
- ]
29
+ const show = () => {
30
+ target.style.display = 'block';
31
+ requestAnimationFrame(() => {
32
+ target.classList.add('opacity-100', 'visible');
61
33
  });
62
- dropdown.classList.add('block')
63
- popperInstance.forceUpdate()
64
- popperInstance.update()
65
-
66
- window.setTimeout(() => {
67
- if (!dropdown.getAttribute('class').includes('show')) {
68
- dropdown.classList.remove('block')
69
- }
70
- }, 50)
71
- });
72
-
73
- addEventListeners(element, ['blur', 'mouseleave'], () => {
74
- if (!dropdown.getAttribute('class').includes('show')) {
75
- dropdown.classList.remove('block')
34
+ update();
35
+ };
36
+
37
+ const hide = () => {
38
+ target.style.display = '';
39
+ target.classList.remove('opacity-100', 'visible');
40
+ };
41
+
42
+ const toggle = () => {
43
+ if (target.style.display === 'block') {
44
+ hide();
45
+ return;
76
46
  }
47
+ show();
48
+ };
49
+
50
+ parent.addEventListener('focusout', (e) => {
51
+ if (parent.contains(e.relatedTarget) || !document.hasFocus()) {
52
+ return
53
+ };
54
+ hide()
77
55
  });
56
+ addEventListeners(trigger, ['click'], toggle)
78
57
  addEscapeListener(hide)
79
-
80
- const handleDropdownOutsideClick = (event) => {
81
- const targetElement = event.target; // clicked element
82
- if (targetElement !== dropdown && targetElement !== element && !element.contains(targetElement)) {
83
- hide()
84
- }
85
- }
86
-
87
- document.body.addEventListener('click', handleDropdownOutsideClick);
88
58
  })