").addClass("text").css({width:width, overflowY:"auto"});
+ c.wrapInner(container);
+ extruder.setExtruderVoicesAction();
+ }
+
+ flap.on("click",function(){
+ if (!extruder.attr("isOpened")){
+ extruder.openMbExtruder();
+ }else{
+ extruder.closeMbExtruder();
+ }
+ }).on("mouseenter",function(){
+ if(extruder.get(0).options.autoOpenTime>0){
+ openTimer=setTimeout(function(){
+ extruder.openMbExtruder();
+ $(document).one("click.extruder"+extruder.get(0).idx,function(){extruder.closeMbExtruder();});
+ },extruder.get(0).options.autoOpenTime);
+ }
+ }).on("mouseleave",function(){
+ clearTimeout(openTimer);
+ });
+ c.on("mouseleave", function(e){
+ if(extruder.get(0).options.closeOnExternalClick){
+
+ //Chrome bug: FORMELEMENT fire mouseleave event.
+ if(!$(e.target).parents().is(".text") && !$(e.target).is("select"))
+ $(document).one("click.extruder"+extruder.get(0).idx,function(){extruder.closeMbExtruder();});
+ }
+ closeTimer=setTimeout(function(){
+
+ if(extruder.get(0).options.autoCloseTime > 0){
+ extruder.closeMbExtruder();
+ }
+ },extruder.get(0).options.autoCloseTime);
+ }).on("mouseenter", function(){
+ clearTimeout(closeTimer);
+ $(document).off("click.extruder"+extruder.get(0).idx);
+ });
+
+ if (isVertical){
+ c.css({ height:"100%"});
+ if(this.options.topFlap=="auto") {
+ flap.css({top:100+(this.options.position=="left"?document.extruder.left:document.extruder.right)});
+ //this.options.position=="left"?document.extruder.left+=labelH+this.options.flapMargin:document.extruder.right+= labelH+this.options.flapMargin;
+ }else{
+ flap.css({top:this.options.topFlap});
+ }
+ var clicDiv=$("
").css({position:"absolute",top:0,left:0,width:"100%",height:"100%",background:"transparent"});
+ flap.append(clicDiv);
+ }
+
+ this.originalWidth = this.options.width;
+
+ $(window).on("resize",function(){ // Perhaps this can be removed?
+ extruder.adjustSize();
+ })
+/*+*/
+ // Tracking menu scrolling
+ if (this.options.bindToButtonByHeight) {
+ document.querySelectorAll('.sidebar-layout, .sidebar-content').forEach(function(el) {
+ el.addEventListener('scroll', function () {
+ extruder.adjustSize();
+ });
+ });
+ // Tracking the resizing (collapse/expand) of the menu
+ const observerLeftSidebar = new window.ResizeObserver(entries => {
+ extruder.adjustSize();
+ })
+ if (this.options.extruderParentElement) {
+ observerLeftSidebar.observe(this.options.extruderParentElement);
+ }
+ }
+/*-*/
+ });
+ },
+
+ adjustSize:function(){
+
+ var $extruder = this;
+ var extruder = $extruder.get(0);
+
+ var isHorizontal = extruder.options.position=="top" || extruder.options.position=="bottom";
+
+ if(isHorizontal){
+
+ if( $(window).width() < extruder.options.width){
+ $extruder.css({width:$(window).width(), marginLeft:0, left:0});
+ $extruder.find(".extruder-wrapper, .extruder-content, .extruder-container").css({width:"100%"});
+ }else{
+ $extruder.css({width:extruder.options.width, left:"50%",marginLeft:-extruder.options.width/2});
+ $extruder.find(".extruder-wrapper, .extruder-content, .extruder-container").css({width:"100%"});
+ }
+
+ } else{
+/*+*/
+ if (extruder.options.bindToButtonByHeight) {
+ const anchorElement = $j(extruder.options.bindToButtonByHeight);
+ const extWrapper = extruder.querySelector('.extruder-wrapper');
+ const responsiveBlock = extWrapper.querySelector(extruder.options.selectorResponsiveBlock);
+ const responsiveBlockHeight = (responsiveBlock) ? $(responsiveBlock)[0].clientHeight : 0;
+ let topPointBlock = 0;
+
+ const anchorOffsetTop = anchorElement.offset().top;
+ const bottom = (anchorOffsetTop > 0 ? anchorOffsetTop : 0) + $(extWrapper)[0].clientHeight; // BOTTOM of the extruder block
+
+ if (anchorOffsetTop > 0) { // verything is fine, we move our extruder block up
+ topPointBlock = anchorOffsetTop;
+ }
+ if (bottom > window.innerHeight) { // We've hit bottom
+ topPointBlock = window.innerHeight - responsiveBlockHeight;
+ }
+ if (responsiveBlock) {
+ const deltaH = $(extWrapper)[0].clientHeight - responsiveBlockHeight;
+ if ($(responsiveBlock)[0].scrollHeight > window.innerHeight - deltaH) { // Doesn't fit vertically into the window
+ topPointBlock = 0;
+ responsiveBlock.style.height = window.innerHeight - deltaH +'px';
+ responsiveBlock.style.overflow = 'auto';
+ } else {
+ responsiveBlock.style.height = 'auto';
+ responsiveBlock.style.overflow = 'visible'; // Otherwise, the Select dropdown elements will not extend beyond the block.
+ }
+ }
+ extruder.options.topBlock = topPointBlock;
+ $extruder.css({top:extruder.options.topBlock});
+ }
+ if (extruder.options.attachToParentSide == 'right') {
+ extruder.options.left = (extruder.options.extruderParentElement) ? $j(extruder.options.extruderParentElement)[0].clientWidth : 0;
+ $extruder.css({left:extruder.options.left});
+ }
+/*-*/
+ if(window.innerWidth-20 < extruder.originalWidth){
+ extruder.options.width = window.innerWidth-20;
+ }else{
+ extruder.options.width = extruder.originalWidth;
+ }
+
+ if($extruder.attr("isOpened")){
+ $extruder.find('.extruder-content').css({width: extruder.options.width});
+ $extruder.find(".extruder-wrapper, .extruder-content, .extruder-container").css({width:extruder.options.width});
+ }
+ }
+
+ },
+
+ setMbExtruderContent: function(options){
+ this.options = {
+ url:false,
+ data:"",
+ callback:function(){}
+ };
+ $.extend (this.options, options);
+ if (!this.options.url || this.options.url.length==0){
+ alert("internal error: no URL to call");
+ return;
+ }
+ var url=this.options.url;
+ var data=this.options.data;
+ var where=$(this), voice;
+ var cb= this.options.callback;
+ var container=$("
").addClass("extruder-container");
+ container.css({width:$(this).get(0).options.width});
+ where.find(".extruder-content").wrapInner(container);
+ $.ajax({
+ type: "GET",
+ url: url,
+ data: data,
+ async:true,
+ dataType:"html",
+ success: function(html){
+ where.find(".extruder-container").html(html);
+ voice=where.find(".voice");
+ voice.hover(function(){$(this).addClass("hover");},function(){$(this).removeClass("hover");});
+ where.setExtruderVoicesAction();
+ if (cb) {
+ setTimeout(function(){cb();},100);
+ }
+ }
+ });
+ },
+
+ openMbExtruder:function(c){
+ var extruder= $(this);
+ extruder.adjustSize();
+ extruder.attr("isOpened",true);
+ $(document).off("click.extruder"+extruder.get(0).idx);
+ var opt= extruder.get(0).options;
+ extruder.addClass("isOpened");
+ var position = opt.position;
+ extruder.mb_bringToFront(opt.zIndex);
+ if (position=="top" || position=="bottom"){
+/*+*/ extruder.css("left",opt.left);
+ extruder.find('.extruder-content').slideDown( opt.slideTimer);
+ if(opt.onExtOpen) opt.onExtOpen();
+ }else{
+/*+*/ extruder.css("top",opt.topBlock);
+ extruder.find('.extruder-wrapper').css({width:""});
+ extruder.find('.extruder-content').css({display:"block"});
+ extruder.find('.extruder-content').animate({ width: opt.width}, opt.slideTimer,function(){
+ // There may be a negative impact, but it hasn't shown up yet...
+ extruder.find(".extruder-container").css({width: opt.width});
+ });
+ if(opt.onExtOpen) opt.onExtOpen();
+ }
+
+ if (c) {
+ setTimeout(function(){
+ $(document).one("click.extruder"+extruder.get(0).idx,function(){extruder.closeMbExtruder();});
+ },100);
+ }
+ if (opt.bindToButtonByHeight) {
+ setTimeout(function(){
+ extruder.adjustSize();
+ },100);
+ }
+ },
+
+ closeMbExtruder:function(){
+ var extruder= $(this);
+ extruder.removeAttr("isOpened");
+ var opt= extruder.get(0).options;
+ if (!opt) return;
+ extruder.removeClass("isOpened");
+ $(document).off("click.extruder"+extruder.get(0).idx);
+ extruder.css("opacity",opt.extruderOpacity);
+ if(opt.hidePanelsOnClose) extruder.hidePanelsOnClose();
+ if (opt.position=="top" || opt.position=="bottom"){
+ extruder.find('.extruder-content').slideUp(opt.slideTimer);
+ if(opt.onExtClose) opt.onExtClose();
+ }else if (opt.position=="left" || opt.position=="right"){
+ extruder.find('.extruder-content').animate({ width: 1 }, opt.slideTimer,function(){
+ // There may be a negative impact, but it hasn't shown up yet...
+ extruder.find('.extruder-wrapper').css({width:1});
+ extruder.find('.extruder-content').css({display:"none"});
+ if(opt.onExtClose) opt.onExtClose();
+ });
+ }
+ }
+ };
+
+ jQuery.fn.mb_bringToFront = function(zIndex){
+ if (zIndex == 'max') {
+ var zi=10;
+ $('*').each(function() {
+ if($(this).css("position")=="absolute" || $(this).css("position")=="fixed"){
+ const cur = parseInt($(this).css('zIndex'));
+ zi = cur > zi ? cur : zi;
+ }
+ });
+ $(this).css('zIndex',zi+=1);
+ return zi;
+ } else {
+ $(this).css('zIndex',zIndex);
+ return zIndex;
+ }
+ };
+
+ /*
+ * EXTRUDER CONTENT
+ */
+
+ $.fn.setExtruderVoicesAction=function(){
+ var extruder=$(this);
+ var opt=extruder.get(0).options;
+ var voices= $(this).find(".voice");
+ voices.each(function(){
+ var voice=$(this);
+ if ($.metadata){
+ $.metadata.setType("class");
+ if (voice.metadata().panel) voice.attr("panel",voice.metadata().panel);
+ if (voice.metadata().data) voice.attr("data",voice.metadata().data);
+ if (voice.metadata().disabled) voice.attr("setDisabled", voice.metadata().disabled);
+ }
+
+ if (voice.attr("setDisabled"))
+ voice.disableExtruderVoice();
+
+ if (voice.attr("panel") && voice.attr("panel")!="false"){
+ voice.append("
");
+ voice.find(".settingsBtn").css({opacity:.5});
+ voice.find(".settingsBtn").hover(
+ function(){
+ $(this).css({opacity:1});
+ },
+ function(){
+ $(this).not(".sel").css({opacity:.5});
+ }).click(function(){
+ if ($(this).parents().hasClass("sel")){
+ if(opt.accordionPanels)
+ extruder.hidePanelsOnClose();
+ else
+ $(this).closePanel();
+ return;
+ }
+
+ if(opt.accordionPanels){
+ extruder.find(".optionsPanel").slideUp(400,function(){$(this).remove();});
+ voices.removeClass("sel");
+ voices.find(".settingsBtn").removeClass("sel").css({opacity:.5});
+ }
+ var content=$("
");
+ voice.after(content);
+ $.ajax({
+ type: "GET",
+ url: voice.attr("panel"),
+ data: voice.attr("data"),
+ async:true,
+ dataType:"html",
+ success: function(html){
+ var c= $(html);
+ content.html(c);
+ content.children().not(".text")
+ .addClass("panelVoice")
+ .click(function(){
+ if(opt.closeOnClick)
+ extruder.closeMbExtruder();
+ });
+ content.slideDown(400);
+ }
+ });
+ voice.addClass("sel");
+ voice.find(".settingsBtn").addClass("sel").css({opacity:1});
+ });
+ }
+
+ if (voice.find("a").length==0 && voice.attr("panel")){
+ voice.find(".label").not(".disabled").css("cursor","pointer").click(function(){
+ voice.find(".settingsBtn").click();
+ });
+ }
+
+ if ((!voice.attr("panel") || voice.attr("panel")=="false" ) && (!voice.attr("setDisabled") || voice.attr("setDisabled")!="true")){
+ voice.find(".label").click(function(){
+ extruder.hidePanelsOnClose();
+ if(opt.closeOnClick)
+ extruder.closeMbExtruder();
+ });
+ }
+ });
+ };
+
+ $.fn.disableExtruderVoice=function(){
+ var voice=$(this);
+ var label = voice.find(".label");
+ voice.removeClass("sel");
+ voice.next(".optionsPanel").slideUp(400,function(){$(this).remove();});
+ voice.attr("setDisabled",true);
+ label.css("opacity",.4);
+ voice.hover(function(){$(this).removeClass("hover");},function(){$(this).removeClass("hover");});
+ label.addClass("disabled").css("cursor","default");
+ voice.find(".settingsBtn").hide();
+ voice.on("click",function(event){
+ event.stopPropagation();
+ return false;
+ });
+ };
+
+ $.fn.enableExtruderVoice=function(){
+ var voice=$(this);
+ voice.attr("setDisabled",false);
+ voice.find(".label").css("opacity",1);
+ voice.find(".label").removeClass("disabled").css("cursor","pointer");
+ voice.off("click");
+ voice.find(".settingsBtn").show();
+ };
+
+ $.fn.hidePanelsOnClose=function(){
+ var voices= $(this).find(".voice");
+ $(this).find(".optionsPanel").slideUp(400,function(){$(this).remove();});
+ voices.removeClass("sel");
+ voices.find(".settingsBtn").removeClass("sel").css("opacity",.5);
+ };
+
+ $.fn.openPanel=function(){
+ var voice=$(this).hasClass("voice") ? $(this) : $(this).find(".voice");
+ voice.each(function(){
+ if($(this).hasClass("sel")) return;
+ $(this).find(".settingsBtn").click();
+ })
+ };
+
+ $.fn.closePanel=function(){
+ var voice=$(this).hasClass("voice") ? $(this) : $(this).parent(".voice");
+ voice.next(".optionsPanel").slideUp(400,function(){$(this).remove();});
+ voice.removeClass("sel");
+ $(this).removeClass("sel").css("opacity",.5);
+ };
+
+ $.fn.buildMbExtruder=$.mbExtruder.buildMbExtruder;
+ $.fn.setMbExtruderContent=$.mbExtruder.setMbExtruderContent;
+ $.fn.closeMbExtruder=$.mbExtruder.closeMbExtruder;
+ $.fn.openMbExtruder=$.mbExtruder.openMbExtruder;
+ $.fn.adjustSize=$.mbExtruder.adjustSize;
+
+})(jQuery);
diff --git a/web/skins/classic/assets/pro-sidebar-template/LICENSE b/web/skins/classic/assets/pro-sidebar-template/LICENSE
new file mode 100644
index 00000000000..9829e4f6067
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017 Mohamed AZOUAOUI
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/web/skins/classic/assets/pro-sidebar-template/README.md b/web/skins/classic/assets/pro-sidebar-template/README.md
new file mode 100644
index 00000000000..bbb661575d6
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/README.md
@@ -0,0 +1,246 @@
+# Pro sidebar template
+
+Responsive layout with advanced sidebar menu built with SCSS and vanilla Javascript
+
+## Demo
+
+[See it live](https://azouaoui-med.github.io/pro-sidebar-template)
+
+## Screenshot
+
+
+
+## Installation
+
+```
+# clone the repo
+$ git clone https://github.com/azouaoui-med/pro-sidebar-template.git my-project
+
+# go into app's directory
+$ cd my-project
+
+# install app's dependencies
+$ yarn install
+
+```
+
+## Usage
+
+```
+# serve with hot reload at localhost:8080
+$ yarn start
+
+# build app for production
+$ yarn build
+
+```
+
+## Documentation
+
+### Layout
+
+The layout for this template is based on [css pro layout](https://github.com/azouaoui-med/css-pro-layout) package, please refer to the [docs](https://azouaoui-med.github.io/css-pro-layout/) for more information
+
+### Sidebar
+
+Responsive navigation element for building vertical menu items
+
+**Sidebar Image**
+
+Adding background image requires adding `.has-bg-image` class to sidebar component, and the image needs to be inside `.image-wrapper` component
+
+```html
+
+```
+
+### Sidebar Layout
+
+Sidebar comes with layout support for better organization of the inner structure
+
+```html
+
+```
+
+More on the sidebar [here](https://azouaoui-med.github.io/css-pro-layout/docs/reference/sidebar)
+
+### Menu
+
+Wrapper component that groups all menu items
+
+```html
+
+```
+
+**Open current submenu**
+
+Use `.open-current-submenu` to enable opening only one submenu component at a time
+
+```html
+
+```
+
+**Icon shape**
+
+A set of classes are provided to restyle menu icons
+
+- `.icon-shape-square`
+- `.icon-shape-rounded`
+- `.icon-shape-circle`
+
+```html
+
+```
+
+### Menu Item
+
+Building menu item requires having `.menu-item` class in the wrapper and `.menu-title` for the text
+
+```html
+
+```
+
+**Menu Icon**
+
+Use `.menu-icon` to add an icon to menu items
+
+```html
+
+```
+
+**Prefix & Suffix**
+
+Menu item also supports having prefix and suffix components
+
+```html
+
+```
+
+### Sub Menu
+
+Add `.sub-menu` class to menu item and create a wrapper component with `sub-menu-list` class to group sub menu items
+
+> Its possible to have unlimited nesting menu items
+
+```html
+
+```
+
+**Open default**
+
+Use `.open` class to have sub menu expanded by default
+
+```html
+
+```
+
+### Customization
+
+Update SCSS variables in `src/styles/_variables.scss` to customize the template
+
+```scss
+$text-color: #b3b8d4;
+$secondary-text-color: #dee2ec;
+$bg-color: #0c1e35;
+$secondary-bg-color: #0b1a2c;
+$border-color: rgba(#535d7d, 0.3);
+$sidebar-header-height: 64px;
+$sidebar-footer-height: 64px;
+```
+
+## License
+
+This code is released under the [MIT](https://github.com/azouaoui-med/pro-sidebar-template/blob/gh-pages/LICENSE) license.
diff --git a/web/skins/classic/assets/pro-sidebar-template/READ_ME_BEFORE_EDIT b/web/skins/classic/assets/pro-sidebar-template/READ_ME_BEFORE_EDIT
new file mode 100644
index 00000000000..f5aa91fc27a
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/READ_ME_BEFORE_EDIT
@@ -0,0 +1,6 @@
+Source: https://github.com/azouaoui-med/pro-sidebar-template
+Since the source has not changed since the beginning of 2023, IgorA100 decided to make small local changes to the code.
+Make all changes ONLY to files in the ./src folder
+Then build with the ./build.sh command
+The ./dist folder will contain the minimized files for PRODUCT mode
+The ./dist_dev folder will contain the files for DEVELOP mode
\ No newline at end of file
diff --git a/web/skins/classic/assets/pro-sidebar-template/assets/images/sidebar-bg.jpg b/web/skins/classic/assets/pro-sidebar-template/assets/images/sidebar-bg.jpg
new file mode 100644
index 00000000000..9afe6b4d2bf
Binary files /dev/null and b/web/skins/classic/assets/pro-sidebar-template/assets/images/sidebar-bg.jpg differ
diff --git a/web/skins/classic/assets/pro-sidebar-template/build.sh b/web/skins/classic/assets/pro-sidebar-template/build.sh
new file mode 100644
index 00000000000..c4f2ef3968a
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/build.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+
+yarn install
+yarn build
+yarn build:dev
\ No newline at end of file
diff --git a/web/skins/classic/assets/pro-sidebar-template/dist/main.css b/web/skins/classic/assets/pro-sidebar-template/dist/main.css
new file mode 100644
index 00000000000..e32bacd9e82
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/dist/main.css
@@ -0,0 +1,4 @@
+@import url(https://fonts.googleapis.com/css2?family=Poppins:wght@100;200;300;400;500;600;700;800;900&display=swap);
+.layout-main{min-height:100%;display:flex;flex-direction:column;position:relative;flex-grow:1}.layout-main.has-sidebar{flex-direction:row}.layout-main .header{transition:width,.3s;height:64px;min-height:64px;position:relative}.layout-main .sidebar-main{width:250px;min-width:250px;transition:width,left,right,.3s}.layout-main .sidebar-main.collapsed{width:80px;min-width:80px}@media(max-width: 480px){.layout-main .sidebar-main.break-point-xs{position:fixed;left:-250px;height:100%;top:0;z-index:100}.layout-main .sidebar-main.break-point-xs.collapsed{left:-80px}.layout-main .sidebar-main.break-point-xs.toggled{left:0}.layout-main .sidebar-main.break-point-xs.toggled~.overlay{display:block}.layout-main .sidebar-main.break-point-xs~.layout-main .header{width:100% !important;transition:none}}@media(max-width: 576px){.layout-main .sidebar-main.break-point-sm{position:fixed;left:-250px;height:100%;top:0;z-index:100}.layout-main .sidebar-main.break-point-sm.collapsed{left:-80px}.layout-main .sidebar-main.break-point-sm.toggled{left:0}.layout-main .sidebar-main.break-point-sm.toggled~.overlay{display:block}.layout-main .sidebar-main.break-point-sm~.layout-main .header{width:100% !important;transition:none}}@media(max-width: 768px){.layout-main .sidebar-main.break-point-md{position:fixed;left:-250px;height:100%;top:0;z-index:100}.layout-main .sidebar-main.break-point-md.collapsed{left:-80px}.layout-main .sidebar-main.break-point-md.toggled{left:0}.layout-main .sidebar-main.break-point-md.toggled~.overlay{display:block}.layout-main .sidebar-main.break-point-md~.layout-main .header{width:100% !important;transition:none}}@media(max-width: 992px){.layout-main .sidebar-main.break-point-lg{position:fixed;left:-250px;height:100%;top:0;z-index:100}.layout-main .sidebar-main.break-point-lg.collapsed{left:-80px}.layout-main .sidebar-main.break-point-lg.toggled{left:0}.layout-main .sidebar-main.break-point-lg.toggled~.overlay{display:block}.layout-main .sidebar-main.break-point-lg~.layout-main .header{width:100% !important;transition:none}}@media(max-width: 1200px){.layout-main .sidebar-main.break-point-xl{position:fixed;left:-250px;height:100%;top:0;z-index:100}.layout-main .sidebar-main.break-point-xl.collapsed{left:-80px}.layout-main .sidebar-main.break-point-xl.toggled{left:0}.layout-main .sidebar-main.break-point-xl.toggled~.overlay{display:block}.layout-main .sidebar-main.break-point-xl~.layout-main .header{width:100% !important;transition:none}}@media(max-width: 1600px){.layout-main .sidebar-main.break-point-xxl{position:fixed;left:-250px;height:100%;top:0;z-index:100}.layout-main .sidebar-main.break-point-xxl.collapsed{left:-80px}.layout-main .sidebar-main.break-point-xxl.toggled{left:0}.layout-main .sidebar-main.break-point-xxl.toggled~.overlay{display:block}.layout-main .sidebar-main.break-point-xxl~.layout-main .header{width:100% !important;transition:none}}.layout-main .footer{height:64px;min-height:64px}.layout-main .content{flex-grow:1}.layout-main .overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.3);z-index:99;display:none}.layout-main .sidebar-toggler{display:none}@media(max-width: 480px){.layout-main .sidebar-toggler.break-point-xs{display:initial}}@media(max-width: 576px){.layout-main .sidebar-toggler.break-point-sm{display:initial}}@media(max-width: 768px){.layout-main .sidebar-toggler.break-point-md{display:initial}}@media(max-width: 992px){.layout-main .sidebar-toggler.break-point-lg{display:initial}}@media(max-width: 1200px){.layout-main .sidebar-toggler.break-point-xl{display:initial}}@media(max-width: 1600px){.layout-main .sidebar-toggler.break-point-xxl{display:initial}}.layout-main.fixed-sidebar{height:100%}.layout-main.fixed-sidebar .sidebar{height:100%;overflow:auto}.layout-main.fixed-sidebar .sidebar~.layout-main{height:100%;overflow:auto}.layout-main.fixed-header .header{position:fixed;width:100%;z-index:2}.layout-main.fixed-header .header~.layout-main,.layout-main.fixed-header .header~.content{margin-top:64px}.layout-main.fixed-header.fixed-sidebar .header{width:calc(100% - 250px)}.layout-main.fixed-header.fixed-sidebar .sidebar.collapsed~.layout-main .header{width:calc(100% - 80px)}.layout-main.rtl{direction:rtl}@media(max-width: 480px){.layout-main.rtl .sidebar.break-point-xs{left:auto;right:-250px}.layout-main.rtl .sidebar.break-point-xs.collapsed{left:auto;right:-80px}.layout-main.rtl .sidebar.break-point-xs.toggled{left:auto;right:0}}@media(max-width: 576px){.layout-main.rtl .sidebar.break-point-sm{left:auto;right:-250px}.layout-main.rtl .sidebar.break-point-sm.collapsed{left:auto;right:-80px}.layout-main.rtl .sidebar.break-point-sm.toggled{left:auto;right:0}}@media(max-width: 768px){.layout-main.rtl .sidebar.break-point-md{left:auto;right:-250px}.layout-main.rtl .sidebar.break-point-md.collapsed{left:auto;right:-80px}.layout-main.rtl .sidebar.break-point-md.toggled{left:auto;right:0}}@media(max-width: 992px){.layout-main.rtl .sidebar.break-point-lg{left:auto;right:-250px}.layout-main.rtl .sidebar.break-point-lg.collapsed{left:auto;right:-80px}.layout-main.rtl .sidebar.break-point-lg.toggled{left:auto;right:0}}@media(max-width: 1200px){.layout-main.rtl .sidebar.break-point-xl{left:auto;right:-250px}.layout-main.rtl .sidebar.break-point-xl.collapsed{left:auto;right:-80px}.layout-main.rtl .sidebar.break-point-xl.toggled{left:auto;right:0}}@media(max-width: 1600px){.layout-main.rtl .sidebar.break-point-xxl{left:auto;right:-250px}.layout-main.rtl .sidebar.break-point-xxl.collapsed{left:auto;right:-80px}.layout-main.rtl .sidebar.break-point-xxl.toggled{left:auto;right:0}}.sidebar-main{color:#44b8eb;position:relative;height:100%;max-height:100%;overflow:hidden !important}.sidebar-main .image-wrapper{overflow:hidden;position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:none}.sidebar-main .image-wrapper>img{width:100%;height:100%;object-fit:cover;object-position:center}.sidebar-main.has-bg-image .sidebar-layout{background-color:rgba(12,30,53,.85)}.sidebar-main.has-bg-image .image-wrapper{display:block;opacity:.8}.sidebar-main .sidebar-layout{height:100%;max-height:100%;min-height:100%;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;position:relative;background-color:#0c1e35;z-index:2;opacity:.85}.sidebar-main .sidebar-layout::-webkit-scrollbar-thumb{border-radius:4px}.sidebar-main .sidebar-layout:hover::-webkit-scrollbar-thumb{background-color:rgb(26.1230769231,65.3076923077,115.3769230769)}.sidebar-main .sidebar-layout::-webkit-scrollbar{width:6px;background-color:#0c1e35}.sidebar-main .sidebar-layout .sidebar-header{height:40px;min-height:40px;display:flex;align-items:center;padding:8px 22px}.sidebar-main .sidebar-layout .sidebar-header>span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.sidebar-main .sidebar-layout .sidebar-content{flex-grow:1;padding:10px 0}.sidebar-main .sidebar-layout .sidebar-footer{height:230px;min-height:230px;display:flex;align-items:center;padding:0 20px}.sidebar-main .sidebar-layout .sidebar-footer>span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@keyframes swing{0%,30%,50%,70%,100%{transform:rotate(0deg)}10%{transform:rotate(10deg)}40%{transform:rotate(-10deg)}60%{transform:rotate(5deg)}80%{transform:rotate(-5deg)}}.layout-main .sidebar-main .sidebar-main-menu ul{list-style-type:none;padding:0;margin:0}.layout-main .sidebar-main .sidebar-main-menu .menu-header{font-weight:600;padding:10px 25px;font-size:.8em;letter-spacing:2px;transition:opacity .3s;opacity:.5}.layout-main .sidebar-main .sidebar-main-menu .menu-item a{display:flex;align-items:center;height:38px;padding:0 20px;color:#44b8eb}.layout-main .sidebar-main .sidebar-main-menu .menu-item a .menu-icon{font-size:1.2rem;width:35px;min-width:35px;height:35px;line-height:35px;text-align:center;display:inline-block;margin-right:10px;border-radius:2px;transition:color .3s}.layout-main .sidebar-main .sidebar-main-menu .menu-item a .menu-title{font-size:.9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-grow:1;transition:color .3s}.layout-main .sidebar-main .sidebar-main-menu .menu-item a .menu-prefix,.layout-main .sidebar-main .sidebar-main-menu .menu-item a .menu-suffix{display:inline-block;padding:5px;opacity:1;transition:opacity .3s}.layout-main .sidebar-main .sidebar-main-menu .menu-item a:hover .menu-title{color:#dee2ec}.layout-main .sidebar-main .sidebar-main-menu .menu-item a:hover .menu-icon{color:#dee2ec}.layout-main .sidebar-main .sidebar-main-menu .menu-item a:hover .menu-icon i{animation:swing ease-in-out .5s 1 alternate}.layout-main .sidebar-main .sidebar-main-menu .menu-item a:hover::after{border-color:#dee2ec !important}.layout-main .sidebar-main .sidebar-main-menu .menu-item.sub-menu{position:relative}.layout-main .sidebar-main .sidebar-main-menu .menu-item.sub-menu>a::after{content:"";transition:transform .3s;border-right:2px solid currentcolor;border-bottom:2px solid currentcolor;width:5px;height:5px;transform:rotate(-45deg)}.layout-main .sidebar-main .sidebar-main-menu .menu-item.sub-menu>.sub-menu-list{padding-left:20px;display:none;overflow:hidden;z-index:999}.layout-main .sidebar-main .sidebar-main-menu .menu-item.sub-menu.open>a{color:#dee2ec}.layout-main .sidebar-main .sidebar-main-menu .menu-item.sub-menu.open>a::after{transform:rotate(45deg)}.layout-main .sidebar-main .sidebar-main-menu .menu-item.active>a .menu-title{color:#dee2ec}.layout-main .sidebar-main .sidebar-main-menu .menu-item.active>a::after{border-color:#dee2ec}.layout-main .sidebar-main .sidebar-main-menu .menu-item.active>a .menu-icon{color:#dee2ec}.layout-main .sidebar-main .sidebar-main-menu>ul>.sub-menu>.sub-menu-list{background-color:#0b1a2c}.layout-main .sidebar-main .sidebar-main-menu.icon-shape-circle .menu-item a .menu-icon,.layout-main .sidebar-main .sidebar-main-menu.icon-shape-rounded .menu-item a .menu-icon,.layout-main .sidebar-main .sidebar-main-menu.icon-shape-square .menu-item a .menu-icon{background-color:#0b1a2c}.layout-main .sidebar-main .sidebar-main-menu.icon-shape-circle .menu-item a .menu-icon{border-radius:50%}.layout-main .sidebar-main .sidebar-main-menu.icon-shape-rounded .menu-item a .menu-icon{border-radius:4px}.layout-main .sidebar-main .sidebar-main-menu.icon-shape-square .menu-item a .menu-icon{border-radius:0}.layout-main .sidebar-main:not(.collapsed) .sidebar-main-menu>ul>.menu-item.sub-menu>.sub-menu-list{visibility:visible !important;position:static !important;transform:translate(0, 0) !important}.layout-main .sidebar-main.collapsed .sidebar-main-menu>ul>.menu-header{opacity:0}.layout-main .sidebar-main.collapsed .sidebar-main-menu>ul>.menu-item>a .menu-prefix,.layout-main .sidebar-main.collapsed .sidebar-main-menu>ul>.menu-item>a .menu-suffix{opacity:0}.layout-main .sidebar-main.collapsed .sidebar-main-menu>ul>.menu-item.sub-menu>a::after{content:"";width:5px;height:5px;background-color:currentcolor;border-radius:50%;display:inline-block;position:absolute;right:10px;top:50%;border:none;transform:translateY(-50%)}.layout-main .sidebar-main.collapsed .sidebar-main-menu>ul>.menu-item.sub-menu>a:hover::after{background-color:#dee2ec}.layout-main .sidebar-main.collapsed .sidebar-main-menu>ul>.menu-item.sub-menu>.sub-menu-list{transition:none !important;width:200px;margin-left:3px !important;border-radius:4px;display:block !important}.layout-main .sidebar-main.collapsed .sidebar-main-menu>ul>.menu-item.active>a::after{background-color:#dee2ec}.layout-main .sidebar-main.has-bg-image .sidebar-main-menu.icon-shape-circle .menu-item a .menu-icon,.layout-main .sidebar-main.has-bg-image .sidebar-main-menu.icon-shape-rounded .menu-item a .menu-icon,.layout-main .sidebar-main.has-bg-image .sidebar-main-menu.icon-shape-square .menu-item a .menu-icon{background-color:rgba(11,26,44,.6)}.layout-main .sidebar-main.has-bg-image:not(.collapsed) .sidebar-main-menu>ul>.sub-menu>.sub-menu-list{background-color:rgba(11,26,44,.6)}.layout-main.rtl .sidebar-main .sidebar-main-menu .menu-item a .menu-icon{margin-left:10px;margin-right:0}.layout-main.rtl .sidebar-main .sidebar-main-menu .menu-item.sub-menu>a::after{transform:rotate(135deg)}.layout-main.rtl .sidebar-main .sidebar-main-menu .menu-item.sub-menu>.sub-menu-list{padding-left:0;padding-right:20px}.layout-main.rtl .sidebar-main .sidebar-main-menu .menu-item.sub-menu.open>a::after{transform:rotate(45deg)}.layout-main.rtl .sidebar-main.collapsed .sidebar-main-menu>ul>.menu-item.sub-menu a::after{right:auto;left:10px}.layout-main.rtl .sidebar-main.collapsed .sidebar-main-menu>ul>.menu-item.sub-menu>.sub-menu-list{margin-left:-3px !important}a{text-decoration:none}@media(max-width: 992px){#btn-collapse{display:none}}.layout-main .sidebar-main .pro-sidebar-logo{color:#ffa801;display:flex;align-items:center}.layout-main .sidebar-main .pro-sidebar-logo>div{width:45px;min-width:45px;height:25px;min-height:25px;display:flex;align-items:center;justify-content:center;border-radius:8px;color:#fff;font-size:22px;font-weight:700;background-color:#ffa801;margin-right:10px;margin-left:-10px}.layout-main .sidebar-main .pro-sidebar-logo>h5{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:22px;line-height:25px;transition:opacity .3s;opacity:1;margin:0 17px}.layout-main .sidebar-main .footer-box{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px 0;border-radius:8px;width:180px;min-width:190px;margin:0 auto;background-color:#162d4a}.layout-main .sidebar-main .footer-box img.react-logo{width:40px;height:40px;margin-bottom:10px}.layout-main .sidebar-main .footer-box a{color:#fff;font-weight:600;margin-bottom:10px}.layout-main .sidebar-main .sidebar-collapser{transition:left,right,.3s;position:fixed;left:calc(250px - 20px);top:40px;width:20px;height:20px;border-radius:50%;background-color:#00829f;display:flex;align-items:center;justify-content:center;font-size:1.2em;transform:translateX(50%);z-index:111;cursor:pointer;color:#fff;box-shadow:1px 1px 4px #0c1e35}.layout-main .sidebar-main.has-bg-image .footer-box{background-color:#34495e}.layout-main .sidebar-main.collapsed .pro-sidebar-logo>h5{opacity:0}.layout-main .sidebar-main.collapsed .footer-box{display:none}.layout-main .sidebar-main.collapsed .sidebar-collapser{left:calc(80px - 20px)}.layout-main .sidebar-main.collapsed .sidebar-collapser i{transform:rotate(180deg)}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;color:#fff;background-color:#6c757d}.badge.primary{background-color:#ab2dff}.badge.secondary{background-color:#079b0b}.sidebar-toggler{position:fixed;right:20px;top:20px}.social-links a{margin:0 10px;color:#3f4750}
+
+/*# sourceMappingURL=main.css.map*/
\ No newline at end of file
diff --git a/web/skins/classic/assets/pro-sidebar-template/dist/main.css.map b/web/skins/classic/assets/pro-sidebar-template/dist/main.css.map
new file mode 100644
index 00000000000..6e23d85eaf3
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/dist/main.css.map
@@ -0,0 +1 @@
+{"version":3,"file":"main.css","mappings":";AAwDA,aACE,gBACA,aACA,sBACA,kBACA,YAEA,yBACE,mBAEF,qBACE,qBACA,WClEY,CDmEZ,eCnEY,CDoEZ,kBAEF,2BACE,WEzEY,CF0EZ,eE1EY,CF2EZ,gCACA,qCACE,UE5EoB,CF6EpB,cE7EoB,CFiDtB,yBADF,0CA9CA,eACA,YACA,YACA,MACA,YACA,oDACE,WAEF,kDACE,OACA,2DACE,cAKF,+DACE,sBACA,iBA6BF,yBADF,0CA9CA,eACA,YACA,YACA,MACA,YACA,oDACE,WAEF,kDACE,OACA,2DACE,cAKF,+DACE,sBACA,iBA6BF,yBADF,0CA9CA,eACA,YACA,YACA,MACA,YACA,oDACE,WAEF,kDACE,OACA,2DACE,cAKF,+DACE,sBACA,iBA6BF,yBADF,0CA9CA,eACA,YACA,YACA,MACA,YACA,oDACE,WAEF,kDACE,OACA,2DACE,cAKF,+DACE,sBACA,iBA6BF,0BADF,0CA9CA,eACA,YACA,YACA,MACA,YACA,oDACE,WAEF,kDACE,OACA,2DACE,cAKF,+DACE,sBACA,iBA6BF,0BADF,2CA9CA,eACA,YACA,YACA,MACA,YACA,qDACE,WAEF,mDACE,OACA,4DACE,cAKF,gEACE,sBACA,iBAgEJ,qBACE,WCnFY,CDoFZ,eCpFY,CDsFd,sBACE,YAGF,sBACE,eACA,MACA,QACA,SACA,OACA,gCACA,WACA,aAGF,8BACE,aAII,yBADF,6CAEI,iBADF,yBADF,6CAEI,iBADF,yBADF,6CAEI,iBADF,yBADF,6CAEI,iBADF,0BADF,6CAEI,iBADF,0BADF,8CAEI,iBAMR,2BACE,YACA,oCACE,YACA,cACA,iDACE,YACA,cAMJ,kCACE,eACA,WACA,UACA,0FAEE,eCrIQ,CDyIV,gDACE,yBAIE,gFACE,wBAOV,iBACE,cAIM,yBADF,yCAxHN,UACA,aACA,mDACE,UACA,YAEF,iDACE,UACA,SAiHM,yBADF,yCAxHN,UACA,aACA,mDACE,UACA,YAEF,iDACE,UACA,SAiHM,yBADF,yCAxHN,UACA,aACA,mDACE,UACA,YAEF,iDACE,UACA,SAiHM,yBADF,yCAxHN,UACA,aACA,mDACE,UACA,YAEF,iDACE,UACA,SAiHM,0BADF,yCAxHN,UACA,aACA,mDACE,UACA,YAEF,iDACE,UACA,SAiHM,0BADF,0CAxHN,UACA,aACA,oDACE,UACA,YAEF,kDACE,UACA,SG5CJ,cACE,aCDW,CDEX,kBACA,YACA,gBACA,2BAEA,6BACE,gBACA,kBACA,MACA,QACA,SACA,OACA,UACA,aACA,iCACE,WACA,YACA,iBACA,uBAIF,2CACE,oCAEF,0CACE,cACA,WAKJ,8BACE,YACA,gBACA,gBACA,kBACA,gBACA,aACA,sBACA,kBACA,wBCxCO,CDyCP,UACA,YAEA,uDACE,kBAIA,6DACE,iEAIJ,iDACE,UACA,wBCxDK,CD2DP,8CACE,WCvDkB,CDwDlB,eCxDkB,CDyDlB,aACA,mBACA,iBACA,mDACE,gBACA,mBACA,uBAGJ,+CACE,YACA,eAEF,8CACE,YCtEkB,CDuElB,gBCvEkB,CDwElB,aACA,mBACA,eACA,mDACE,gBACA,mBACA,uBEvFR,iBACE,oBAKE,uBAGF,IACE,wBAGF,IACE,yBAGF,IACE,uBAGF,IACE,yBAOE,iDACE,qBACA,UACA,SAEF,2DACE,gBACA,kBACA,eACA,mBACA,uBACA,WAGA,2DACE,aACA,mBACA,YACA,eACA,aDhDG,CCkDH,sEACE,iBACA,WACA,eACA,YACA,iBACA,kBACA,qBACA,kBACA,kBACA,qBAMF,uEACE,eACA,gBACA,uBACA,mBACA,YACA,qBAEF,gJAEE,qBACA,YACA,UACA,uBAGA,6EACE,aDlFS,CCoFX,4EACE,aDrFS,CCsFT,8EACE,4CAGJ,wEACE,gCAKN,kEACE,kBAEE,2EACE,WACA,yBACA,oCACA,qCACA,UACA,WACA,yBAIJ,iFACE,kBACA,aACA,gBACA,YAGA,yEACE,aDtHS,CCuHT,gFACE,wBAQJ,8EACE,aDjIS,CCmIX,yEACE,oBDpIS,CCsIX,6EACE,aDvIS,CC4IjB,0EACE,wBD1Ia,CCgJb,yQACE,wBDjJW,CCqJf,wFACE,kBAEF,yFACE,kBAEF,wFACE,gBAQI,oGACE,8BACA,2BACA,qCASN,wEACE,UAIE,0KAEE,UAKA,wFACE,WACA,UACA,WACA,8BACA,kBACA,qBACA,kBACA,WACA,QACA,YACA,2BAGA,8FACE,wBD9MK,CCkNX,8FACE,2BACA,YACA,2BACA,kBACA,yBAKA,sFACE,wBD7NO,CCyOb,gTACE,mCAMF,uGACE,mCAYA,0EACE,iBACA,eAMA,+EACE,yBAIJ,qFACE,eACA,mBAIE,oFACE,wBAYJ,4FACE,WACA,UAGF,kGACE,4BH3QhB,EACE,qBAGF,yBACE,cACE,cAMA,6CACE,cACA,aACA,mBAEA,iDACE,WACA,eACA,YACA,gBACA,aACA,mBACA,uBACA,kBACA,WACA,eACA,gBACA,yBACA,kBACA,kBAGF,gDACE,gBACA,mBACA,uBACA,eACA,iBACA,uBACA,UACA,cAIJ,uCACE,aACA,sBACA,mBACA,uBACA,kBAEA,eACA,kBACA,YACA,gBACA,cACA,yBACA,sDACE,WACA,YACA,mBAEF,yCACE,WACA,gBACA,mBAIJ,8CACE,0BACA,eACA,wBACA,SACA,WACA,YACA,kBACA,yBACA,aACA,mBACA,uBACA,gBACA,0BACA,YACA,eACA,WACA,+BAIA,oDAEE,yBAMA,0DACE,UAGJ,iDACE,aAEF,wDACE,uBACA,0DACE,yBAOV,OACE,qBACA,mBACA,cACA,gBACA,cACA,kBACA,mBACA,wBACA,qBACA,WACA,yBAEA,eACE,yBAGF,iBACE,yBAIJ,iBACE,eACA,WACA,SAIA,gBACE,cACA,c","sources":["webpack://pro-sidebar-template/./src/styles/css-pro-layout.scss","webpack://pro-sidebar-template/./src/styles/variables_css-pro-layout.scss","webpack://pro-sidebar-template/./src/styles/styles.scss","webpack://pro-sidebar-template/./src/styles/_sidebar.scss","webpack://pro-sidebar-template/./src/styles/_variables.scss","webpack://pro-sidebar-template/./src/styles/_menu.scss"],"sourcesContent":["@import './variables_css-pro-layout.scss';\n\n@mixin break-point {\n position: fixed;\n left: -$sidebar-width;\n height: 100%;\n top: 0;\n z-index: 100;\n &.collapsed {\n left: -$sidebar-collapsed-width;\n }\n &.toggled {\n left: 0;\n ~ .overlay {\n display: block;\n }\n }\n\n ~ .layout-main {\n .header {\n width: 100% !important;\n transition: none;\n }\n }\n}\n\n$breakpoints: (\n 'break-point-xs': $breakpoint-xs,\n 'break-point-sm': $breakpoint-sm,\n 'break-point-md': $breakpoint-md,\n 'break-point-lg': $breakpoint-lg,\n 'break-point-xl': $breakpoint-xl,\n 'break-point-xxl': $breakpoint-xxl,\n);\n\n@mixin break-point-rtl {\n left: auto;\n right: -$sidebar-width;\n &.collapsed {\n left: auto;\n right: -$sidebar-collapsed-width;\n }\n &.toggled {\n left: auto;\n right: 0;\n }\n}\n\n@mixin setBreakPoint($name, $value) {\n &.#{$name} {\n @media (max-width: $value) {\n @include break-point;\n }\n }\n}\n\n.layout-main {\n min-height: 100%;\n display: flex;\n flex-direction: column;\n position: relative;\n flex-grow: 1;\n\n &.has-sidebar {\n flex-direction: row;\n }\n .header {\n transition: width, 0.3s;\n height: $header-height;\n min-height: $header-height;\n position: relative;\n }\n .sidebar-main {\n width: $sidebar-width;\n min-width: $sidebar-width;\n transition: width, left, right, 0.3s;\n &.collapsed {\n width: $sidebar-collapsed-width;\n min-width: $sidebar-collapsed-width;\n }\n\n @each $key, $value in $breakpoints {\n @include setBreakPoint($key, $value);\n }\n }\n .footer {\n height: $footer-height;\n min-height: $footer-height;\n }\n .content {\n flex-grow: 1;\n }\n\n .overlay {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: rgba(#000, 0.3);\n z-index: 99;\n display: none;\n }\n\n .sidebar-toggler {\n display: none;\n\n @each $key, $value in $breakpoints {\n &.#{$key} {\n @media (max-width: $value) {\n display: initial;\n }\n }\n }\n }\n\n &.fixed-sidebar {\n height: 100%;\n .sidebar {\n height: 100%;\n overflow: auto;\n ~ .layout-main {\n height: 100%;\n overflow: auto;\n }\n }\n }\n\n &.fixed-header {\n .header {\n position: fixed;\n width: 100%;\n z-index: 2;\n ~ .layout-main,\n ~ .content {\n margin-top: $header-height;\n }\n }\n &.fixed-sidebar {\n .header {\n width: calc(100% - #{$sidebar-width});\n }\n .sidebar.collapsed {\n ~ .layout-main {\n .header {\n width: calc(100% - #{$sidebar-collapsed-width});\n }\n }\n }\n }\n }\n\n &.rtl {\n direction: rtl;\n .sidebar {\n @each $key, $value in $breakpoints {\n &.#{$key} {\n @media (max-width: $value) {\n @include break-point-rtl;\n }\n }\n }\n }\n }\n}\n","$sidebar-width: 280px !default;\n$sidebar-collapsed-width: 80px !default;\n$header-height: 64px !default;\n$footer-height: 64px !default;\n\n$breakpoint-xs: 480px !default;\n$breakpoint-sm: 576px !default;\n$breakpoint-md: 768px !default;\n$breakpoint-lg: 992px !default;\n$breakpoint-xl: 1200px !default;\n$breakpoint-xxl: 1600px !default;\n","$sidebar-width: 250px;\n$sidebar-collapsed-width: 80px;\n\n/*@import 'css-pro-layout/dist/scss/css-pro-layout.scss';*/\n@import './css-pro-layout.scss';\n@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@100;200;300;400;500;600;700;800;900&display=swap');\n/*@import '../../public//assets//remixicon/remixicon.css';*/\n@import './variables';\n@import './layout';\n@import './sidebar';\n@import './menu';\n\n/*\n* {\n box-sizing: border-box;\n}\n\nbody {\n margin: 0;\n height: 100vh;\n font-family: 'Poppins', sans-serif;\n color: #3f4750;\n font-size: 0.9rem;\n}\n*/\na {\n text-decoration: none;\n}\n\n@media (max-width: $breakpoint-lg) {\n #btn-collapse {\n display: none;\n }\n}\n\n.layout-main {\n .sidebar-main {\n .pro-sidebar-logo {\n color: #ffa801;\n display: flex;\n align-items: center;\n\n > div {\n width: 45px;\n min-width: 45px;\n height: 25px;\n min-height: 25px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n color: white;\n font-size: 22px;\n font-weight: 700;\n background-color: #ffa801;\n margin-right: 10px;\n margin-left: -10px;\n }\n\n > h5 {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n font-size: 22px;\n line-height: 25px;\n transition: opacity 0.3s;\n opacity: 1;\n margin: 0 17px;\n }\n }\n\n .footer-box {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n /* font-size: 0.8em; */\n padding: 20px 0;\n border-radius: 8px;\n width: 180px;\n min-width: 190px;\n margin: 0 auto;\n background-color: #162d4a;\n img.react-logo {\n width: 40px;\n height: 40px;\n margin-bottom: 10px;\n }\n a {\n color: #fff;\n font-weight: 600;\n margin-bottom: 10px;\n }\n }\n\n .sidebar-collapser {\n transition: left, right, 0.3s;\n position: fixed;\n left: calc(#{$sidebar-width} - 20px);\n top: 40px;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background-color: #00829f;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.2em;\n transform: translateX(50%);\n z-index: 111;\n cursor: pointer;\n color: white;\n box-shadow: 1px 1px 4px $bg-color;\n }\n\n &.has-bg-image {\n .footer-box {\n /* background-color: rgba(#162d4a, 0.7); */\n background-color: #34495e;\n }\n }\n\n &.collapsed {\n .pro-sidebar-logo {\n > h5 {\n opacity: 0;\n }\n }\n .footer-box {\n display: none;\n }\n .sidebar-collapser {\n left: calc(#{$sidebar-collapsed-width} - 20px);\n i {\n transform: rotate(180deg);\n }\n }\n }\n }\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n color: #fff;\n background-color: #6c757d;\n\n &.primary {\n background-color: #ab2dff;\n }\n\n &.secondary {\n background-color: #079b0b;\n }\n}\n\n.sidebar-toggler {\n position: fixed;\n right: 20px;\n top: 20px;\n}\n\n.social-links {\n a {\n margin: 0 10px;\n color: #3f4750;\n }\n}\n",".sidebar-main {\n color: $text-color;\n position: relative;\n height: 100%;\n max-height: 100%;\n overflow: hidden !important;\n\n .image-wrapper {\n overflow: hidden;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n display: none;\n > img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n }\n }\n &.has-bg-image {\n .sidebar-layout {\n background-color: rgba($bg-color, 0.85);\n }\n .image-wrapper {\n display: block;\n opacity: 0.8;\n // filter: blur(3px);\n }\n }\n\n .sidebar-layout {\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n overflow-x: hidden;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n position: relative;\n background-color: $bg-color;\n z-index: 2;\n opacity: 0.85;\n\n &::-webkit-scrollbar-thumb {\n border-radius: 4px;\n }\n\n &:hover {\n &::-webkit-scrollbar-thumb {\n background-color: lighten($bg-color, 15);\n }\n }\n\n &::-webkit-scrollbar {\n width: 6px;\n background-color: $bg-color;\n }\n\n .sidebar-header {\n height: $sidebar-header-height;\n min-height: $sidebar-header-height;\n display: flex;\n align-items: center;\n padding: 8px 22px;\n > span {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n }\n .sidebar-content {\n flex-grow: 1;\n padding: 10px 0;\n }\n .sidebar-footer {\n height: $sidebar-footer-height;\n min-height: $sidebar-footer-height;\n display: flex;\n align-items: center;\n padding: 0 20px;\n > span {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n }\n }\n}\n","$text-color: #44b8eb;\n$secondary-text-color: #dee2ec;\n\n$bg-color: #0c1e35;\n$secondary-bg-color: #0b1a2c;\n\n$border-color: rgba(#535d7d, 0.3);\n\n$sidebar-header-height: 40px;\n$sidebar-footer-height: 230px;\n","@keyframes swing {\n 0%,\n 30%,\n 50%,\n 70%,\n 100% {\n transform: rotate(0deg);\n }\n\n 10% {\n transform: rotate(10deg);\n }\n\n 40% {\n transform: rotate(-10deg);\n }\n\n 60% {\n transform: rotate(5deg);\n }\n\n 80% {\n transform: rotate(-5deg);\n }\n}\n\n.layout-main {\n .sidebar-main {\n .sidebar-main-menu {\n ul {\n list-style-type: none;\n padding: 0;\n margin: 0;\n }\n .menu-header {\n font-weight: 600;\n padding: 10px 25px;\n font-size: 0.8em;\n letter-spacing: 2px;\n transition: opacity 0.3s;\n opacity: 0.5;\n }\n .menu-item {\n a {\n display: flex;\n align-items: center;\n height: 38px;\n padding: 0 20px;\n color: $text-color;\n\n .menu-icon {\n font-size: 1.2rem;\n width: 35px;\n min-width: 35px;\n height: 35px;\n line-height: 35px;\n text-align: center;\n display: inline-block;\n margin-right: 10px;\n border-radius: 2px;\n transition: color 0.3s;\n i {\n // display: inline-block;\n }\n }\n\n .menu-title {\n font-size: 0.9em;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex-grow: 1;\n transition: color 0.3s;\n }\n .menu-prefix,\n .menu-suffix {\n display: inline-block;\n padding: 5px;\n opacity: 1;\n transition: opacity 0.3s;\n }\n &:hover {\n .menu-title {\n color: $secondary-text-color;\n }\n .menu-icon {\n color: $secondary-text-color;\n i {\n animation: swing ease-in-out 0.5s 1 alternate;\n }\n }\n &::after {\n border-color: $secondary-text-color !important;\n }\n }\n }\n\n &.sub-menu {\n position: relative;\n > a {\n &::after {\n content: '';\n transition: transform 0.3s;\n border-right: 2px solid currentcolor;\n border-bottom: 2px solid currentcolor;\n width: 5px;\n height: 5px;\n transform: rotate(-45deg);\n }\n }\n\n > .sub-menu-list {\n padding-left: 20px;\n display: none;\n overflow: hidden;\n z-index: 999;\n }\n &.open {\n > a {\n color: $secondary-text-color;\n &::after {\n transform: rotate(45deg);\n }\n }\n }\n }\n\n &.active {\n > a {\n .menu-title {\n color: $secondary-text-color;\n }\n &::after {\n border-color: $secondary-text-color;\n }\n .menu-icon {\n color: $secondary-text-color;\n }\n }\n }\n }\n > ul > .sub-menu > .sub-menu-list {\n background-color: $secondary-bg-color;\n }\n\n &.icon-shape-circle,\n &.icon-shape-rounded,\n &.icon-shape-square {\n .menu-item a .menu-icon {\n background-color: $secondary-bg-color;\n }\n }\n\n &.icon-shape-circle .menu-item a .menu-icon {\n border-radius: 50%;\n }\n &.icon-shape-rounded .menu-item a .menu-icon {\n border-radius: 4px;\n }\n &.icon-shape-square .menu-item a .menu-icon {\n border-radius: 0;\n }\n }\n\n &:not(.collapsed) {\n .sidebar-main-menu > ul {\n > .menu-item {\n &.sub-menu {\n > .sub-menu-list {\n visibility: visible !important;\n position: static !important;\n transform: translate(0, 0) !important;\n }\n }\n }\n }\n }\n\n &.collapsed {\n .sidebar-main-menu > ul {\n > .menu-header {\n opacity: 0;\n }\n > .menu-item {\n > a {\n .menu-prefix,\n .menu-suffix {\n opacity: 0;\n }\n }\n &.sub-menu {\n > a {\n &::after {\n content: '';\n width: 5px;\n height: 5px;\n background-color: currentcolor;\n border-radius: 50%;\n display: inline-block;\n position: absolute;\n right: 10px;\n top: 50%;\n border: none;\n transform: translateY(-50%);\n }\n &:hover {\n &::after {\n background-color: $secondary-text-color;\n }\n }\n }\n > .sub-menu-list {\n transition: none !important;\n width: 200px;\n margin-left: 3px !important;\n border-radius: 4px;\n display: block !important;\n }\n }\n &.active {\n > a {\n &::after {\n background-color: $secondary-text-color;\n }\n }\n }\n }\n }\n }\n &.has-bg-image {\n .sidebar-main-menu {\n &.icon-shape-circle,\n &.icon-shape-rounded,\n &.icon-shape-square {\n .menu-item a .menu-icon {\n background-color: rgba($secondary-bg-color, 0.6);\n }\n }\n }\n &:not(.collapsed) {\n .sidebar-main-menu {\n > ul > .sub-menu > .sub-menu-list {\n background-color: rgba($secondary-bg-color, 0.6);\n }\n }\n }\n }\n }\n\n &.rtl {\n .sidebar-main {\n .sidebar-main-menu {\n .menu-item {\n a {\n .menu-icon {\n margin-left: 10px;\n margin-right: 0;\n }\n }\n\n &.sub-menu {\n > a {\n &::after {\n transform: rotate(135deg);\n }\n }\n\n > .sub-menu-list {\n padding-left: 0;\n padding-right: 20px;\n }\n &.open {\n > a {\n &::after {\n transform: rotate(45deg);\n }\n }\n }\n }\n }\n }\n\n &.collapsed {\n .sidebar-main-menu > ul {\n > .menu-item {\n &.sub-menu {\n a::after {\n right: auto;\n left: 10px;\n }\n\n > .sub-menu-list {\n margin-left: -3px !important;\n }\n }\n }\n }\n }\n }\n }\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/web/skins/classic/assets/pro-sidebar-template/dist/main.js b/web/skins/classic/assets/pro-sidebar-template/dist/main.js
new file mode 100644
index 00000000000..2cd75835c27
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/dist/main.js
@@ -0,0 +1,2 @@
+(()=>{"use strict";const e=document.getElementById("sidebarMain"),t=document.querySelectorAll(".sidebar-main-menu > ul > .menu-item.sub-menu"),n=document.querySelectorAll(".sidebar-main-menu > ul > .menu-item.sub-menu > a"),r=document.querySelectorAll(".sidebar-main-menu > ul > .menu-item.sub-menu .menu-item.sub-menu > a"),o=(e,t=300)=>{const{parentElement:n}=e;n.classList.remove("open"),e.style.transitionProperty="height, margin, padding",e.style.transitionDuration=`${t}ms`,e.style.boxSizing="border-box",e.style.height=`${e.offsetHeight}px`,e.offsetHeight,e.style.overflow="hidden",e.style.height=0,e.style.paddingTop=0,e.style.paddingBottom=0,e.style.marginTop=0,e.style.marginBottom=0,window.setTimeout((()=>{e.style.display="none",e.style.removeProperty("height"),e.style.removeProperty("padding-top"),e.style.removeProperty("padding-bottom"),e.style.removeProperty("margin-top"),e.style.removeProperty("margin-bottom"),e.style.removeProperty("overflow"),e.style.removeProperty("transition-duration"),e.style.removeProperty("transition-property")}),t)},i=(e,t=300)=>"none"===window.getComputedStyle(e).display?((e,t=300)=>{const{parentElement:n}=e;n.classList.add("open"),e.style.removeProperty("display");let{display:r}=window.getComputedStyle(e);"none"===r&&(r="block"),e.style.display=r;const o=e.offsetHeight;e.style.overflow="hidden",e.style.height=0,e.style.paddingTop=0,e.style.paddingBottom=0,e.style.marginTop=0,e.style.marginBottom=0,e.offsetHeight,e.style.boxSizing="border-box",e.style.transitionProperty="height, margin, padding",e.style.transitionDuration=`${t}ms`,e.style.height=`${o}px`,e.style.removeProperty("padding-top"),e.style.removeProperty("padding-bottom"),e.style.removeProperty("margin-top"),e.style.removeProperty("margin-bottom"),window.setTimeout((()=>{e.style.removeProperty("height"),e.style.removeProperty("overflow"),e.style.removeProperty("transition-duration"),e.style.removeProperty("transition-property")}),t)})(e,t):o(e,t);function s(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function a(e){return e instanceof s(e).Element||e instanceof Element}function l(e){return e instanceof s(e).HTMLElement||e instanceof HTMLElement}function c(e){return"undefined"!=typeof ShadowRoot&&(e instanceof s(e).ShadowRoot||e instanceof ShadowRoot)}var f=Math.max,p=Math.min,u=Math.round;function d(){var e=navigator.userAgentData;return null!=e&&e.brands&&Array.isArray(e.brands)?e.brands.map((function(e){return e.brand+"/"+e.version})).join(" "):navigator.userAgent}function m(){return!/^((?!chrome|android).)*safari/i.test(d())}function h(e,t,n){void 0===t&&(t=!1),void 0===n&&(n=!1);var r=e.getBoundingClientRect(),o=1,i=1;t&&l(e)&&(o=e.offsetWidth>0&&u(r.width)/e.offsetWidth||1,i=e.offsetHeight>0&&u(r.height)/e.offsetHeight||1);var c=(a(e)?s(e):window).visualViewport,f=!m()&&n,p=(r.left+(f&&c?c.offsetLeft:0))/o,d=(r.top+(f&&c?c.offsetTop:0))/i,h=r.width/o,y=r.height/i;return{width:h,height:y,top:d,right:p+h,bottom:d+y,left:p,x:p,y:d}}function y(e){var t=s(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function g(e){return e?(e.nodeName||"").toLowerCase():null}function v(e){return((a(e)?e.ownerDocument:e.document)||window.document).documentElement}function b(e){return h(v(e)).left+y(e).scrollLeft}function w(e){return s(e).getComputedStyle(e)}function x(e){var t=w(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function O(e,t,n){void 0===n&&(n=!1);var r,o,i=l(t),a=l(t)&&function(e){var t=e.getBoundingClientRect(),n=u(t.width)/e.offsetWidth||1,r=u(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(t),c=v(t),f=h(e,a,n),p={scrollLeft:0,scrollTop:0},d={x:0,y:0};return(i||!i&&!n)&&(("body"!==g(t)||x(c))&&(p=(r=t)!==s(r)&&l(r)?{scrollLeft:(o=r).scrollLeft,scrollTop:o.scrollTop}:y(r)),l(t)?((d=h(t,!0)).x+=t.clientLeft,d.y+=t.clientTop):c&&(d.x=b(c))),{x:f.left+p.scrollLeft-d.x,y:f.top+p.scrollTop-d.y,width:f.width,height:f.height}}function E(e){var t=h(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function P(e){return"html"===g(e)?e:e.assignedSlot||e.parentNode||(c(e)?e.host:null)||v(e)}function L(e){return["html","body","#document"].indexOf(g(e))>=0?e.ownerDocument.body:l(e)&&x(e)?e:L(P(e))}function j(e,t){var n;void 0===t&&(t=[]);var r=L(e),o=r===(null==(n=e.ownerDocument)?void 0:n.body),i=s(r),a=o?[i].concat(i.visualViewport||[],x(r)?r:[]):r,l=t.concat(a);return o?l:l.concat(j(P(a)))}function A(e){return["table","td","th"].indexOf(g(e))>=0}function D(e){return l(e)&&"fixed"!==w(e).position?e.offsetParent:null}function k(e){for(var t=s(e),n=D(e);n&&A(n)&&"static"===w(n).position;)n=D(n);return n&&("html"===g(n)||"body"===g(n)&&"static"===w(n).position)?t:n||function(e){var t=/firefox/i.test(d());if(/Trident/i.test(d())&&l(e)&&"fixed"===w(e).position)return null;var n=P(e);for(c(n)&&(n=n.host);l(n)&&["html","body"].indexOf(g(n))<0;){var r=w(n);if("none"!==r.transform||"none"!==r.perspective||"paint"===r.contain||-1!==["transform","perspective"].indexOf(r.willChange)||t&&"filter"===r.willChange||t&&r.filter&&"none"!==r.filter)return n;n=n.parentNode}return null}(e)||t}var S="top",T="bottom",B="right",M="left",H="auto",W=[S,T,B,M],C="start",R="end",q="viewport",V="popper",I=W.reduce((function(e,t){return e.concat([t+"-"+C,t+"-"+R])}),[]),z=[].concat(W,[H]).reduce((function(e,t){return e.concat([t,t+"-"+C,t+"-"+R])}),[]),N=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function F(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}var U={placement:"bottom",modifiers:[],strategy:"absolute"};function $(){for(var e=arguments.length,t=new Array(e),n=0;n
=0?"x":"y"}function K(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?Y(o):null,s=o?G(o):null,a=n.x+n.width/2-r.width/2,l=n.y+n.height/2-r.height/2;switch(i){case S:t={x:a,y:n.y-r.height};break;case T:t={x:a,y:n.y+n.height};break;case B:t={x:n.x+n.width,y:l};break;case M:t={x:n.x-r.width,y:l};break;default:t={x:n.x,y:n.y}}var c=i?J(i):null;if(null!=c){var f="y"===c?"height":"width";switch(s){case C:t[c]=t[c]-(n[f]/2-r[f]/2);break;case R:t[c]=t[c]+(n[f]/2-r[f]/2)}}return t}var Q={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Z(e){var t,n=e.popper,r=e.popperRect,o=e.placement,i=e.variation,a=e.offsets,l=e.position,c=e.gpuAcceleration,f=e.adaptive,p=e.roundOffsets,d=e.isFixed,m=a.x,h=void 0===m?0:m,y=a.y,g=void 0===y?0:y,b="function"==typeof p?p({x:h,y:g}):{x:h,y:g};h=b.x,g=b.y;var x=a.hasOwnProperty("x"),O=a.hasOwnProperty("y"),E=M,P=S,L=window;if(f){var j=k(n),A="clientHeight",D="clientWidth";j===s(n)&&"static"!==w(j=v(n)).position&&"absolute"===l&&(A="scrollHeight",D="scrollWidth"),(o===S||(o===M||o===B)&&i===R)&&(P=T,g-=(d&&j===L&&L.visualViewport?L.visualViewport.height:j[A])-r.height,g*=c?1:-1),o!==M&&(o!==S&&o!==T||i!==R)||(E=B,h-=(d&&j===L&&L.visualViewport?L.visualViewport.width:j[D])-r.width,h*=c?1:-1)}var H,W=Object.assign({position:l},f&&Q),C=!0===p?function(e,t){var n=e.x,r=e.y,o=t.devicePixelRatio||1;return{x:u(n*o)/o||0,y:u(r*o)/o||0}}({x:h,y:g},s(n)):{x:h,y:g};return h=C.x,g=C.y,c?Object.assign({},W,((H={})[P]=O?"0":"",H[E]=x?"0":"",H.transform=(L.devicePixelRatio||1)<=1?"translate("+h+"px, "+g+"px)":"translate3d("+h+"px, "+g+"px, 0)",H)):Object.assign({},W,((t={})[P]=O?g+"px":"",t[E]=x?h+"px":"",t.transform="",t))}var ee={left:"right",right:"left",bottom:"top",top:"bottom"};function te(e){return e.replace(/left|right|bottom|top/g,(function(e){return ee[e]}))}var ne={start:"end",end:"start"};function re(e){return e.replace(/start|end/g,(function(e){return ne[e]}))}function oe(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&c(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function ie(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function se(e,t,n){return t===q?ie(function(e,t){var n=s(e),r=v(e),o=n.visualViewport,i=r.clientWidth,a=r.clientHeight,l=0,c=0;if(o){i=o.width,a=o.height;var f=m();(f||!f&&"fixed"===t)&&(l=o.offsetLeft,c=o.offsetTop)}return{width:i,height:a,x:l+b(e),y:c}}(e,n)):a(t)?function(e,t){var n=h(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(t,n):ie(function(e){var t,n=v(e),r=y(e),o=null==(t=e.ownerDocument)?void 0:t.body,i=f(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=f(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),a=-r.scrollLeft+b(e),l=-r.scrollTop;return"rtl"===w(o||n).direction&&(a+=f(n.clientWidth,o?o.clientWidth:0)-i),{width:i,height:s,x:a,y:l}}(v(e)))}function ae(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function le(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function ce(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=void 0===r?e.placement:r,i=n.strategy,s=void 0===i?e.strategy:i,c=n.boundary,u=void 0===c?"clippingParents":c,d=n.rootBoundary,m=void 0===d?q:d,y=n.elementContext,b=void 0===y?V:y,x=n.altBoundary,O=void 0!==x&&x,E=n.padding,L=void 0===E?0:E,A=ae("number"!=typeof L?L:le(L,W)),D=b===V?"reference":V,M=e.rects.popper,H=e.elements[O?D:b],C=function(e,t,n,r){var o="clippingParents"===t?function(e){var t=j(P(e)),n=["absolute","fixed"].indexOf(w(e).position)>=0&&l(e)?k(e):e;return a(n)?t.filter((function(e){return a(e)&&oe(e,n)&&"body"!==g(e)})):[]}(e):[].concat(t),i=[].concat(o,[n]),s=i[0],c=i.reduce((function(t,n){var o=se(e,n,r);return t.top=f(o.top,t.top),t.right=p(o.right,t.right),t.bottom=p(o.bottom,t.bottom),t.left=f(o.left,t.left),t}),se(e,s,r));return c.width=c.right-c.left,c.height=c.bottom-c.top,c.x=c.left,c.y=c.top,c}(a(H)?H:H.contextElement||v(e.elements.popper),u,m,s),R=h(e.elements.reference),I=K({reference:R,element:M,strategy:"absolute",placement:o}),z=ie(Object.assign({},M,I)),N=b===V?z:R,F={top:C.top-N.top+A.top,bottom:N.bottom-C.bottom+A.bottom,left:C.left-N.left+A.left,right:N.right-C.right+A.right},U=e.modifiersData.offset;if(b===V&&U){var $=U[o];Object.keys(F).forEach((function(e){var t=[B,T].indexOf(e)>=0?1:-1,n=[S,T].indexOf(e)>=0?"y":"x";F[e]+=$[n]*t}))}return F}function fe(e,t,n){return f(e,p(t,n))}function pe(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ue(e){return[S,B,T,M].some((function(t){return e[t]>=0}))}var de=_({defaultModifiers:[{name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:function(e){var t=e.state,n=e.instance,r=e.options,o=r.scroll,i=void 0===o||o,a=r.resize,l=void 0===a||a,c=s(t.elements.popper),f=[].concat(t.scrollParents.reference,t.scrollParents.popper);return i&&f.forEach((function(e){e.addEventListener("scroll",n.update,X)})),l&&c.addEventListener("resize",n.update,X),function(){i&&f.forEach((function(e){e.removeEventListener("scroll",n.update,X)})),l&&c.removeEventListener("resize",n.update,X)}},data:{}},{name:"popperOffsets",enabled:!0,phase:"read",fn:function(e){var t=e.state,n=e.name;t.modifiersData[n]=K({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})},data:{}},{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(e){var t=e.state,n=e.options,r=n.gpuAcceleration,o=void 0===r||r,i=n.adaptive,s=void 0===i||i,a=n.roundOffsets,l=void 0===a||a,c={placement:Y(t.placement),variation:G(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:o,isFixed:"fixed"===t.options.strategy};null!=t.modifiersData.popperOffsets&&(t.styles.popper=Object.assign({},t.styles.popper,Z(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:s,roundOffsets:l})))),null!=t.modifiersData.arrow&&(t.styles.arrow=Object.assign({},t.styles.arrow,Z(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(e){var t=e.state;Object.keys(t.elements).forEach((function(e){var n=t.styles[e]||{},r=t.attributes[e]||{},o=t.elements[e];l(o)&&g(o)&&(Object.assign(o.style,n),Object.keys(r).forEach((function(e){var t=r[e];!1===t?o.removeAttribute(e):o.setAttribute(e,!0===t?"":t)})))}))},effect:function(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach((function(e){var r=t.elements[e],o=t.attributes[e]||{},i=Object.keys(t.styles.hasOwnProperty(e)?t.styles[e]:n[e]).reduce((function(e,t){return e[t]="",e}),{});l(r)&&g(r)&&(Object.assign(r.style,i),Object.keys(o).forEach((function(e){r.removeAttribute(e)})))}))}},requires:["computeStyles"]},{name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.offset,i=void 0===o?[0,0]:o,s=z.reduce((function(e,n){return e[n]=function(e,t,n){var r=Y(e),o=[M,S].indexOf(r)>=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,s=i[0],a=i[1];return s=s||0,a=(a||0)*o,[M,B].indexOf(r)>=0?{x:a,y:s}:{x:s,y:a}}(n,t.rects,i),e}),{}),a=s[t.placement],l=a.x,c=a.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=s}},{name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,s=n.altAxis,a=void 0===s||s,l=n.fallbackPlacements,c=n.padding,f=n.boundary,p=n.rootBoundary,u=n.altBoundary,d=n.flipVariations,m=void 0===d||d,h=n.allowedAutoPlacements,y=t.options.placement,g=Y(y),v=l||(g!==y&&m?function(e){if(Y(e)===H)return[];var t=te(e);return[re(e),t,re(t)]}(y):[te(y)]),b=[y].concat(v).reduce((function(e,n){return e.concat(Y(n)===H?function(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,s=n.padding,a=n.flipVariations,l=n.allowedAutoPlacements,c=void 0===l?z:l,f=G(r),p=f?a?I:I.filter((function(e){return G(e)===f})):W,u=p.filter((function(e){return c.indexOf(e)>=0}));0===u.length&&(u=p);var d=u.reduce((function(t,n){return t[n]=ce(e,{placement:n,boundary:o,rootBoundary:i,padding:s})[Y(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}(t,{placement:n,boundary:f,rootBoundary:p,padding:c,flipVariations:m,allowedAutoPlacements:h}):n)}),[]),w=t.rects.reference,x=t.rects.popper,O=new Map,E=!0,P=b[0],L=0;L=0,R=k?"width":"height",q=ce(t,{placement:j,boundary:f,rootBoundary:p,altBoundary:u,padding:c}),V=k?D?B:M:D?T:S;w[R]>x[R]&&(V=te(V));var N=te(V),F=[];if(i&&F.push(q[A]<=0),a&&F.push(q[V]<=0,q[N]<=0),F.every((function(e){return e}))){P=j,E=!1;break}O.set(j,F)}if(E)for(var U=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return P=t,"break"},$=m?3:1;$>0&&"break"!==U($);$--);t.placement!==P&&(t.modifiersData[r]._skip=!0,t.placement=P,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}},{name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,i=void 0===o||o,s=n.altAxis,a=void 0!==s&&s,l=n.boundary,c=n.rootBoundary,u=n.altBoundary,d=n.padding,m=n.tether,h=void 0===m||m,y=n.tetherOffset,g=void 0===y?0:y,v=ce(t,{boundary:l,rootBoundary:c,padding:d,altBoundary:u}),b=Y(t.placement),w=G(t.placement),x=!w,O=J(b),P="x"===O?"y":"x",L=t.modifiersData.popperOffsets,j=t.rects.reference,A=t.rects.popper,D="function"==typeof g?g(Object.assign({},t.rects,{placement:t.placement})):g,H="number"==typeof D?{mainAxis:D,altAxis:D}:Object.assign({mainAxis:0,altAxis:0},D),W=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,R={x:0,y:0};if(L){if(i){var q,V="y"===O?S:M,I="y"===O?T:B,z="y"===O?"height":"width",N=L[O],F=N+v[V],U=N-v[I],$=h?-A[z]/2:0,_=w===C?j[z]:A[z],X=w===C?-A[z]:-j[z],K=t.elements.arrow,Q=h&&K?E(K):{width:0,height:0},Z=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},ee=Z[V],te=Z[I],ne=fe(0,j[z],Q[z]),re=x?j[z]/2-$-ne-ee-H.mainAxis:_-ne-ee-H.mainAxis,oe=x?-j[z]/2+$+ne+te+H.mainAxis:X+ne+te+H.mainAxis,ie=t.elements.arrow&&k(t.elements.arrow),se=ie?"y"===O?ie.clientTop||0:ie.clientLeft||0:0,ae=null!=(q=null==W?void 0:W[O])?q:0,le=N+oe-ae,pe=fe(h?p(F,N+re-ae-se):F,N,h?f(U,le):U);L[O]=pe,R[O]=pe-N}if(a){var ue,de="x"===O?S:M,me="x"===O?T:B,he=L[P],ye="y"===P?"height":"width",ge=he+v[de],ve=he-v[me],be=-1!==[S,M].indexOf(b),we=null!=(ue=null==W?void 0:W[P])?ue:0,xe=be?ge:he-j[ye]-A[ye]-we+H.altAxis,Oe=be?he+j[ye]+A[ye]-we-H.altAxis:ve,Ee=h&&be?function(e,t,n){var r=fe(e,t,n);return r>n?n:r}(xe,he,Oe):fe(h?xe:ge,he,h?Oe:ve);L[P]=Ee,R[P]=Ee-he}t.modifiersData[r]=R}},requiresIfExists:["offset"]},{name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,s=n.modifiersData.popperOffsets,a=Y(n.placement),l=J(a),c=[M,B].indexOf(a)>=0?"height":"width";if(i&&s){var f=function(e,t){return ae("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:le(e,W))}(o.padding,n),p=E(i),u="y"===l?S:M,d="y"===l?T:B,m=n.rects.reference[c]+n.rects.reference[l]-s[l]-n.rects.popper[c],h=s[l]-n.rects.reference[l],y=k(i),g=y?"y"===l?y.clientHeight||0:y.clientWidth||0:0,v=m/2-h/2,b=f[u],w=g-p[c]-f[d],x=g/2-p[c]/2+v,O=fe(b,x,w),P=l;n.modifiersData[r]=((t={})[P]=O,t.centerOffset=O-x,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&oe(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,s=ce(t,{elementContext:"reference"}),a=ce(t,{altBoundary:!0}),l=pe(s,r),c=pe(a,o,i),f=ue(l),p=ue(c);t.modifiersData[n]={referenceClippingOffsets:l,popperEscapeOffsets:c,isReferenceHidden:f,hasPopperEscaped:p},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":f,"data-popper-escaped":p})}}]});const me=class{instance=null;reference=null;popperTarget=null;constructor(e,t){this.init(e,t)}init(e,t){this.reference=e,this.popperTarget=t,this.instance=de(this.reference,this.popperTarget,{placement:"right",strategy:"fixed",resize:!0,modifiers:[{name:"computeStyles",options:{adaptive:!1}},{name:"flip",options:{fallbackPlacements:["left","right"]}}]}),document.addEventListener("click",(e=>this.clicker(e,this.popperTarget,this.reference)),!1);const n=new ResizeObserver((()=>{this.instance.update()}));n.observe(this.popperTarget),n.observe(this.reference)}clicker(t,n,r){!e.classList.contains("collapsed")||n.contains(t.target)||r.contains(t.target)||this.hide()}hide(){this.instance.state.elements.popper.style.visibility="hidden"}},he=new class{subMenuPoppers=[];constructor(){this.init()}init(){t.forEach((e=>{this.subMenuPoppers.push(new me(e,e.lastElementChild)),this.closePoppers()}))}togglePopper(e){"hidden"===window.getComputedStyle(e).visibility?(e.style.visibility="visible",e.style.height="100%"):(e.style.visibility="hidden",e.style.height=0)}updatePoppers(){this.subMenuPoppers.forEach((e=>{e.instance.state.elements.popper.parentElement.classList.contains("open")||(e.instance.state.elements.popper.style.display="none"),e.instance.update()}))}closePoppers(){this.subMenuPoppers.forEach((e=>{e.hide()}))}},ye=()=>{setTimeout((()=>{he.updatePoppers()}),300)},ge=document.getElementById("btn-collapse");ge&&ge.addEventListener("click",(()=>{e.classList.toggle("collapsed"),he.closePoppers(),e.classList.contains("collapsed")&&n.forEach((e=>{e.parentElement.classList.remove("open")})),ye()}));const ve=document.getElementById("btn-toggle");ve&&ve.addEventListener("click",(()=>{e.classList.toggle("toggled"),ye()}));const be=document.getElementById("overlay");be&&be.addEventListener("click",(()=>{e.classList.toggle("toggled")})),document.querySelectorAll(".menu-item.sub-menu.open").forEach((e=>{e.lastElementChild.style.display="block"})),n.forEach((t=>{t.addEventListener("click",(()=>{if(e.classList.contains("collapsed"))he.togglePopper(t.nextElementSibling);else{const e=t.closest(".menuLeft.open-current-submenu");e&&e.querySelectorAll(":scope > ul > .menu-item.sub-menu > a").forEach((e=>"none"!==window.getComputedStyle(e.nextElementSibling).display&&o(e.nextElementSibling))),i(t.nextElementSibling)}}))})),r.forEach((e=>{e.addEventListener("click",(()=>{i(e.nextElementSibling)}))}))})();
+//# sourceMappingURL=main.js.map
\ No newline at end of file
diff --git a/web/skins/classic/assets/pro-sidebar-template/dist/main.js.map b/web/skins/classic/assets/pro-sidebar-template/dist/main.js.map
new file mode 100644
index 00000000000..a19236896ae
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/dist/main.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"main.js","mappings":"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","sources":["webpack://pro-sidebar-template/./src/libs/constants.js","webpack://pro-sidebar-template/./src/libs/slide.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/math.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/enums.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/createPopper.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/within.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/popper.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://pro-sidebar-template/./src/libs/popper.js","webpack://pro-sidebar-template/./src/index.js","webpack://pro-sidebar-template/./src/libs/poppers.js"],"sourcesContent":["export const ANIMATION_DURATION = 300;\n\nexport const SIDEBAR_EL = document.getElementById('sidebarMain');\n\nexport const SUB_MENU_ELS = document.querySelectorAll(\n '.sidebar-main-menu > ul > .menu-item.sub-menu'\n);\n\nexport const FIRST_SUB_MENUS_BTN = document.querySelectorAll(\n '.sidebar-main-menu > ul > .menu-item.sub-menu > a'\n);\n\nexport const INNER_SUB_MENUS_BTN = document.querySelectorAll(\n '.sidebar-main-menu > ul > .menu-item.sub-menu .menu-item.sub-menu > a'\n);\n","/* eslint-disable no-param-reassign */\n/* eslint-disable no-unused-expressions */\nimport { ANIMATION_DURATION } from './constants';\n\nexport const slideUp = (target, duration = ANIMATION_DURATION) => {\n const { parentElement } = target;\n parentElement.classList.remove('open');\n target.style.transitionProperty = 'height, margin, padding';\n target.style.transitionDuration = `${duration}ms`;\n target.style.boxSizing = 'border-box';\n target.style.height = `${target.offsetHeight}px`;\n target.offsetHeight;\n target.style.overflow = 'hidden';\n target.style.height = 0;\n target.style.paddingTop = 0;\n target.style.paddingBottom = 0;\n target.style.marginTop = 0;\n target.style.marginBottom = 0;\n window.setTimeout(() => {\n target.style.display = 'none';\n target.style.removeProperty('height');\n target.style.removeProperty('padding-top');\n target.style.removeProperty('padding-bottom');\n target.style.removeProperty('margin-top');\n target.style.removeProperty('margin-bottom');\n target.style.removeProperty('overflow');\n target.style.removeProperty('transition-duration');\n target.style.removeProperty('transition-property');\n }, duration);\n};\n\nexport const slideDown = (target, duration = ANIMATION_DURATION) => {\n const { parentElement } = target;\n parentElement.classList.add('open');\n target.style.removeProperty('display');\n let { display } = window.getComputedStyle(target);\n if (display === 'none') display = 'block';\n target.style.display = display;\n const height = target.offsetHeight;\n target.style.overflow = 'hidden';\n target.style.height = 0;\n target.style.paddingTop = 0;\n target.style.paddingBottom = 0;\n target.style.marginTop = 0;\n target.style.marginBottom = 0;\n target.offsetHeight;\n target.style.boxSizing = 'border-box';\n target.style.transitionProperty = 'height, margin, padding';\n target.style.transitionDuration = `${duration}ms`;\n target.style.height = `${height}px`;\n target.style.removeProperty('padding-top');\n target.style.removeProperty('padding-bottom');\n target.style.removeProperty('margin-top');\n target.style.removeProperty('margin-bottom');\n window.setTimeout(() => {\n //target.style.height = '100%'; // Зачем-то я хотел так сделать.....\n target.style.removeProperty('height');\n target.style.removeProperty('overflow');\n target.style.removeProperty('transition-duration');\n target.style.removeProperty('transition-property');\n }, duration);\n};\n\nexport const slideToggle = (target, duration = ANIMATION_DURATION) => {\n if (window.getComputedStyle(target).display === 'none') return slideDown(target, duration);\n return slideUp(target, duration);\n};\n","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import { createPopper } from '@popperjs/core';\r\nimport { SIDEBAR_EL } from './constants';\r\n\r\nclass Popper {\r\n instance = null;\r\n reference = null;\r\n popperTarget = null;\r\n\r\n constructor(reference, popperTarget) {\r\n this.init(reference, popperTarget);\r\n }\r\n\r\n init(reference, popperTarget) {\r\n this.reference = reference;\r\n this.popperTarget = popperTarget;\r\n this.instance = createPopper(this.reference, this.popperTarget, {\r\n placement: 'right',\r\n strategy: 'fixed',\r\n resize: true,\r\n modifiers: [\r\n {\r\n name: 'computeStyles',\r\n options: {\r\n adaptive: false,\r\n },\r\n },\r\n {\r\n name: 'flip',\r\n options: {\r\n fallbackPlacements: ['left', 'right'],\r\n },\r\n },\r\n ],\r\n });\r\n\r\n document.addEventListener(\r\n 'click',\r\n (e) => this.clicker(e, this.popperTarget, this.reference),\r\n false,\r\n );\r\n\r\n const ro = new ResizeObserver(() => {\r\n this.instance.update();\r\n });\r\n\r\n ro.observe(this.popperTarget);\r\n ro.observe(this.reference);\r\n }\r\n\r\n clicker(event, popperTarget, reference) {\r\n if (\r\n SIDEBAR_EL.classList.contains('collapsed') &&\r\n !popperTarget.contains(event.target) &&\r\n !reference.contains(event.target)\r\n ) {\r\n this.hide();\r\n }\r\n }\r\n\r\n hide() {\r\n this.instance.state.elements.popper.style.visibility = 'hidden';\r\n }\r\n}\r\n\r\nexport default Popper;\r\n","import './styles/styles.scss';\r\nimport { slideToggle, slideUp, slideDown } from './libs/slide';\r\nimport {\r\n ANIMATION_DURATION,\r\n FIRST_SUB_MENUS_BTN,\r\n INNER_SUB_MENUS_BTN,\r\n SIDEBAR_EL,\r\n} from './libs/constants';\r\nimport Poppers from './libs/poppers';\r\n\r\nconst PoppersInstance = new Poppers();\r\n\r\n/**\r\n * wait for the current animation to finish and update poppers position\r\n */\r\nconst updatePoppersTimeout = () => {\r\n setTimeout(() => {\r\n PoppersInstance.updatePoppers();\r\n }, ANIMATION_DURATION);\r\n};\r\n\r\n/**\r\n * sidebar collapse handler\r\n */\r\nconst btnCollapse = document.getElementById('btn-collapse');\r\nif (btnCollapse) {\r\n btnCollapse.addEventListener('click', () => {\r\n SIDEBAR_EL.classList.toggle('collapsed');\r\n PoppersInstance.closePoppers();\r\n if (SIDEBAR_EL.classList.contains('collapsed'))\r\n FIRST_SUB_MENUS_BTN.forEach((element) => {\r\n element.parentElement.classList.remove('open');\r\n });\r\n\r\n updatePoppersTimeout();\r\n });\r\n}\r\n\r\n/**\r\n * sidebar toggle handler (on break point )\r\n */\r\nconst btnToggle = document.getElementById('btn-toggle');\r\nif (btnToggle) {\r\n btnToggle.addEventListener('click', () => {\r\n SIDEBAR_EL.classList.toggle('toggled');\r\n\r\n updatePoppersTimeout();\r\n });\r\n}\r\n\r\n/**\r\n * toggle sidebar on overlay click\r\n */\r\nconst btnOverlay = document.getElementById('overlay');\r\nif (btnOverlay) {\r\n btnOverlay.addEventListener('click', () => {\r\n SIDEBAR_EL.classList.toggle('toggled');\r\n });\r\n}\r\n\r\nconst defaultOpenMenus = document.querySelectorAll('.menu-item.sub-menu.open');\r\n\r\ndefaultOpenMenus.forEach((element) => {\r\n element.lastElementChild.style.display = 'block';\r\n});\r\n\r\n/**\r\n * handle top level submenu click\r\n */\r\nFIRST_SUB_MENUS_BTN.forEach((element) => {\r\n element.addEventListener('click', () => {\r\n if (SIDEBAR_EL.classList.contains('collapsed'))\r\n PoppersInstance.togglePopper(element.nextElementSibling);\r\n else {\r\n /**\r\n * if menu has \"open-current-only\" class then only one submenu opens at a time\r\n */\r\n const parentMenu = element.closest('.menuLeft.open-current-submenu');\r\n if (parentMenu)\r\n parentMenu\r\n .querySelectorAll(':scope > ul > .menu-item.sub-menu > a')\r\n .forEach(\r\n (el) =>\r\n window.getComputedStyle(el.nextElementSibling).display !==\r\n 'none' && slideUp(el.nextElementSibling)\r\n );\r\n slideToggle(element.nextElementSibling);\r\n }\r\n });\r\n});\r\n\r\n/**\r\n * handle inner submenu click\r\n */\r\nINNER_SUB_MENUS_BTN.forEach((element) => {\r\n element.addEventListener('click', () => {\r\n slideToggle(element.nextElementSibling);\r\n });\r\n});\r\n","import { SUB_MENU_ELS } from './constants';\nimport Popper from './popper';\n\nclass Poppers {\n subMenuPoppers = [];\n\n constructor() {\n this.init();\n }\n\n init() {\n SUB_MENU_ELS.forEach((element) => {\n this.subMenuPoppers.push(new Popper(element, element.lastElementChild));\n this.closePoppers();\n });\n }\n\n togglePopper(target) {\n if (window.getComputedStyle(target).visibility === 'hidden') {\n target.style.visibility = 'visible';\n target.style.height = '100%'; \n } else {\n target.style.visibility = 'hidden';\n target.style.height = 0; \n }\n }\n\n updatePoppers() {\n this.subMenuPoppers.forEach((element) => {\n if (!element.instance.state.elements.popper.parentElement.classList.contains('open')) {\n element.instance.state.elements.popper.style.display = 'none';\n }\n element.instance.update();\n });\n }\n\n closePoppers() {\n this.subMenuPoppers.forEach((element) => {\n element.hide();\n });\n }\n}\n\nexport default Poppers;\n"],"names":["SIDEBAR_EL","document","getElementById","SUB_MENU_ELS","querySelectorAll","FIRST_SUB_MENUS_BTN","INNER_SUB_MENUS_BTN","slideUp","target","duration","ANIMATION_DURATION","parentElement","classList","remove","style","transitionProperty","transitionDuration","boxSizing","height","offsetHeight","overflow","paddingTop","paddingBottom","marginTop","marginBottom","window","setTimeout","display","removeProperty","slideToggle","getComputedStyle","slideDown","add","getWindow","node","toString","ownerDocument","defaultView","isElement","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","Math","max","min","round","getUAString","uaData","navigator","userAgentData","brands","Array","isArray","map","item","brand","version","join","userAgent","isLayoutViewport","test","getBoundingClientRect","element","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","offsetWidth","width","visualViewport","addVisualOffsets","x","left","offsetLeft","y","top","offsetTop","right","bottom","getWindowScroll","win","scrollLeft","pageXOffset","scrollTop","pageYOffset","getNodeName","nodeName","toLowerCase","getDocumentElement","documentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflowX","overflowY","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","rect","isElementScaled","scroll","offsets","clientLeft","clientTop","getLayoutRect","abs","getParentNode","assignedSlot","parentNode","host","getScrollParent","indexOf","body","listScrollParents","list","_element$ownerDocumen","scrollParent","isBody","concat","updatedList","isTableElement","getTrueOffsetParent","position","getOffsetParent","isFirefox","currentNode","css","transform","perspective","contain","willChange","filter","getContainingBlock","auto","basePlacements","start","end","viewport","popper","variationPlacements","reduce","acc","placement","modifierPhases","order","modifiers","Map","visited","Set","result","sort","modifier","name","requires","requiresIfExists","forEach","dep","has","depModifier","get","push","set","DEFAULT_OPTIONS","strategy","areValidElements","_len","arguments","length","args","_key","some","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","reference","options","fn","pending","state","orderedModifiers","Object","assign","modifiersData","elements","attributes","styles","effectCleanupFns","isDestroyed","instance","setOptions","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","merged","phase","orderModifiers","current","existing","data","keys","key","m","enabled","_ref","_ref$options","effect","cleanupFn","update","forceUpdate","_state$elements","rects","reset","index","_state$orderedModifie","_state$orderedModifie2","_options","Promise","resolve","then","undefined","destroy","onFirstUpdate","passive","getBasePlacement","split","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","len","unsetSides","mapToStyles","_ref2","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","_ref3","hasX","hasOwnProperty","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","_ref4","dpr","devicePixelRatio","roundOffsetsByDPR","hash","getOppositePlacement","replace","matched","getOppositeVariationPlacement","contains","parent","child","rootNode","getRootNode","next","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","html","clientWidth","clientHeight","layoutViewport","getViewportRect","getInnerBoundingClientRect","winScroll","scrollWidth","scrollHeight","direction","getDocumentRect","mergePaddingObject","paddingObject","expandToHashMap","value","hashMap","detectOverflow","_options$placement","_options$strategy","_options$boundary","boundary","_options$rootBoundary","rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","padding","altContext","clippingClientRect","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","getClippingRect","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","offset","multiply","axis","within","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","_options$scroll","_options$resize","resize","addEventListener","removeEventListener","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","arrow","removeAttribute","setAttribute","initialStyles","margin","property","attribute","_options$offset","invertDistance","skidding","distance","distanceAndSkiddingToXY","_data$state$placement","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","placements","_options$allowedAutoP","allowedPlacements","overflows","a","b","computeAutoPlacement","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","i","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","every","check","_loop","_i","fittingPlacement","find","slice","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","v","withinMaxClamp","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","center","axisProp","centerOffset","_options$element","querySelector","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","popperTarget","constructor","this","init","createPopper","e","clicker","ro","ResizeObserver","observe","event","hide","visibility","PoppersInstance","subMenuPoppers","Popper","lastElementChild","closePoppers","togglePopper","updatePoppers","updatePoppersTimeout","btnCollapse","toggle","btnToggle","btnOverlay","nextElementSibling","parentMenu","closest","el"],"sourceRoot":""}
\ No newline at end of file
diff --git a/web/skins/classic/assets/pro-sidebar-template/dist_dev/main.css b/web/skins/classic/assets/pro-sidebar-template/dist_dev/main.css
new file mode 100644
index 00000000000..368280b763e
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/dist_dev/main.css
@@ -0,0 +1,763 @@
+@import url(https://fonts.googleapis.com/css2?family=Poppins:wght@100;200;300;400;500;600;700;800;900&display=swap);
+/*@import 'css-pro-layout/dist/scss/css-pro-layout.scss';*/
+.layout-main {
+ min-height: 100%;
+ display: flex;
+ flex-direction: column;
+ position: relative;
+ flex-grow: 1;
+}
+.layout-main.has-sidebar {
+ flex-direction: row;
+}
+.layout-main .header {
+ transition: width, 0.3s;
+ height: 64px;
+ min-height: 64px;
+ position: relative;
+}
+.layout-main .sidebar-main {
+ width: 250px;
+ min-width: 250px;
+ transition: width, left, right, 0.3s;
+}
+.layout-main .sidebar-main.collapsed {
+ width: 80px;
+ min-width: 80px;
+}
+@media (max-width: 480px) {
+ .layout-main .sidebar-main.break-point-xs {
+ position: fixed;
+ left: -250px;
+ height: 100%;
+ top: 0;
+ z-index: 100;
+ }
+ .layout-main .sidebar-main.break-point-xs.collapsed {
+ left: -80px;
+ }
+ .layout-main .sidebar-main.break-point-xs.toggled {
+ left: 0;
+ }
+ .layout-main .sidebar-main.break-point-xs.toggled ~ .overlay {
+ display: block;
+ }
+ .layout-main .sidebar-main.break-point-xs ~ .layout-main .header {
+ width: 100% !important;
+ transition: none;
+ }
+}
+@media (max-width: 576px) {
+ .layout-main .sidebar-main.break-point-sm {
+ position: fixed;
+ left: -250px;
+ height: 100%;
+ top: 0;
+ z-index: 100;
+ }
+ .layout-main .sidebar-main.break-point-sm.collapsed {
+ left: -80px;
+ }
+ .layout-main .sidebar-main.break-point-sm.toggled {
+ left: 0;
+ }
+ .layout-main .sidebar-main.break-point-sm.toggled ~ .overlay {
+ display: block;
+ }
+ .layout-main .sidebar-main.break-point-sm ~ .layout-main .header {
+ width: 100% !important;
+ transition: none;
+ }
+}
+@media (max-width: 768px) {
+ .layout-main .sidebar-main.break-point-md {
+ position: fixed;
+ left: -250px;
+ height: 100%;
+ top: 0;
+ z-index: 100;
+ }
+ .layout-main .sidebar-main.break-point-md.collapsed {
+ left: -80px;
+ }
+ .layout-main .sidebar-main.break-point-md.toggled {
+ left: 0;
+ }
+ .layout-main .sidebar-main.break-point-md.toggled ~ .overlay {
+ display: block;
+ }
+ .layout-main .sidebar-main.break-point-md ~ .layout-main .header {
+ width: 100% !important;
+ transition: none;
+ }
+}
+@media (max-width: 992px) {
+ .layout-main .sidebar-main.break-point-lg {
+ position: fixed;
+ left: -250px;
+ height: 100%;
+ top: 0;
+ z-index: 100;
+ }
+ .layout-main .sidebar-main.break-point-lg.collapsed {
+ left: -80px;
+ }
+ .layout-main .sidebar-main.break-point-lg.toggled {
+ left: 0;
+ }
+ .layout-main .sidebar-main.break-point-lg.toggled ~ .overlay {
+ display: block;
+ }
+ .layout-main .sidebar-main.break-point-lg ~ .layout-main .header {
+ width: 100% !important;
+ transition: none;
+ }
+}
+@media (max-width: 1200px) {
+ .layout-main .sidebar-main.break-point-xl {
+ position: fixed;
+ left: -250px;
+ height: 100%;
+ top: 0;
+ z-index: 100;
+ }
+ .layout-main .sidebar-main.break-point-xl.collapsed {
+ left: -80px;
+ }
+ .layout-main .sidebar-main.break-point-xl.toggled {
+ left: 0;
+ }
+ .layout-main .sidebar-main.break-point-xl.toggled ~ .overlay {
+ display: block;
+ }
+ .layout-main .sidebar-main.break-point-xl ~ .layout-main .header {
+ width: 100% !important;
+ transition: none;
+ }
+}
+@media (max-width: 1600px) {
+ .layout-main .sidebar-main.break-point-xxl {
+ position: fixed;
+ left: -250px;
+ height: 100%;
+ top: 0;
+ z-index: 100;
+ }
+ .layout-main .sidebar-main.break-point-xxl.collapsed {
+ left: -80px;
+ }
+ .layout-main .sidebar-main.break-point-xxl.toggled {
+ left: 0;
+ }
+ .layout-main .sidebar-main.break-point-xxl.toggled ~ .overlay {
+ display: block;
+ }
+ .layout-main .sidebar-main.break-point-xxl ~ .layout-main .header {
+ width: 100% !important;
+ transition: none;
+ }
+}
+.layout-main .footer {
+ height: 64px;
+ min-height: 64px;
+}
+.layout-main .content {
+ flex-grow: 1;
+}
+.layout-main .overlay {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ background-color: rgba(0, 0, 0, 0.3);
+ z-index: 99;
+ display: none;
+}
+.layout-main .sidebar-toggler {
+ display: none;
+}
+@media (max-width: 480px) {
+ .layout-main .sidebar-toggler.break-point-xs {
+ display: initial;
+ }
+}
+@media (max-width: 576px) {
+ .layout-main .sidebar-toggler.break-point-sm {
+ display: initial;
+ }
+}
+@media (max-width: 768px) {
+ .layout-main .sidebar-toggler.break-point-md {
+ display: initial;
+ }
+}
+@media (max-width: 992px) {
+ .layout-main .sidebar-toggler.break-point-lg {
+ display: initial;
+ }
+}
+@media (max-width: 1200px) {
+ .layout-main .sidebar-toggler.break-point-xl {
+ display: initial;
+ }
+}
+@media (max-width: 1600px) {
+ .layout-main .sidebar-toggler.break-point-xxl {
+ display: initial;
+ }
+}
+.layout-main.fixed-sidebar {
+ height: 100%;
+}
+.layout-main.fixed-sidebar .sidebar {
+ height: 100%;
+ overflow: auto;
+}
+.layout-main.fixed-sidebar .sidebar ~ .layout-main {
+ height: 100%;
+ overflow: auto;
+}
+.layout-main.fixed-header .header {
+ position: fixed;
+ width: 100%;
+ z-index: 2;
+}
+.layout-main.fixed-header .header ~ .layout-main,
+.layout-main.fixed-header .header ~ .content {
+ margin-top: 64px;
+}
+.layout-main.fixed-header.fixed-sidebar .header {
+ width: calc(100% - 250px);
+}
+.layout-main.fixed-header.fixed-sidebar .sidebar.collapsed ~ .layout-main .header {
+ width: calc(100% - 80px);
+}
+.layout-main.rtl {
+ direction: rtl;
+}
+@media (max-width: 480px) {
+ .layout-main.rtl .sidebar.break-point-xs {
+ left: auto;
+ right: -250px;
+ }
+ .layout-main.rtl .sidebar.break-point-xs.collapsed {
+ left: auto;
+ right: -80px;
+ }
+ .layout-main.rtl .sidebar.break-point-xs.toggled {
+ left: auto;
+ right: 0;
+ }
+}
+@media (max-width: 576px) {
+ .layout-main.rtl .sidebar.break-point-sm {
+ left: auto;
+ right: -250px;
+ }
+ .layout-main.rtl .sidebar.break-point-sm.collapsed {
+ left: auto;
+ right: -80px;
+ }
+ .layout-main.rtl .sidebar.break-point-sm.toggled {
+ left: auto;
+ right: 0;
+ }
+}
+@media (max-width: 768px) {
+ .layout-main.rtl .sidebar.break-point-md {
+ left: auto;
+ right: -250px;
+ }
+ .layout-main.rtl .sidebar.break-point-md.collapsed {
+ left: auto;
+ right: -80px;
+ }
+ .layout-main.rtl .sidebar.break-point-md.toggled {
+ left: auto;
+ right: 0;
+ }
+}
+@media (max-width: 992px) {
+ .layout-main.rtl .sidebar.break-point-lg {
+ left: auto;
+ right: -250px;
+ }
+ .layout-main.rtl .sidebar.break-point-lg.collapsed {
+ left: auto;
+ right: -80px;
+ }
+ .layout-main.rtl .sidebar.break-point-lg.toggled {
+ left: auto;
+ right: 0;
+ }
+}
+@media (max-width: 1200px) {
+ .layout-main.rtl .sidebar.break-point-xl {
+ left: auto;
+ right: -250px;
+ }
+ .layout-main.rtl .sidebar.break-point-xl.collapsed {
+ left: auto;
+ right: -80px;
+ }
+ .layout-main.rtl .sidebar.break-point-xl.toggled {
+ left: auto;
+ right: 0;
+ }
+}
+@media (max-width: 1600px) {
+ .layout-main.rtl .sidebar.break-point-xxl {
+ left: auto;
+ right: -250px;
+ }
+ .layout-main.rtl .sidebar.break-point-xxl.collapsed {
+ left: auto;
+ right: -80px;
+ }
+ .layout-main.rtl .sidebar.break-point-xxl.toggled {
+ left: auto;
+ right: 0;
+ }
+}
+
+/*@import '../../public//assets//remixicon/remixicon.css';*/
+/*
+.layout {
+ z-index: 1;
+ .header {
+ display: flex;
+ align-items: center;
+ padding: 20px;
+ }
+ .content {
+ padding: 12px 50px;
+ display: flex;
+ flex-direction: column;
+ }
+
+ .footer {
+ text-align: center;
+ margin-top: auto;
+ margin-bottom: 20px;
+ padding: 20px;
+ }
+}
+*/
+.sidebar-main {
+ color: #44b8eb;
+ position: relative;
+ height: 100%;
+ max-height: 100%;
+ overflow: hidden !important;
+}
+.sidebar-main .image-wrapper {
+ overflow: hidden;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1;
+ display: none;
+}
+.sidebar-main .image-wrapper > img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ object-position: center;
+}
+.sidebar-main.has-bg-image .sidebar-layout {
+ background-color: rgba(12, 30, 53, 0.85);
+}
+.sidebar-main.has-bg-image .image-wrapper {
+ display: block;
+ opacity: 0.8;
+}
+.sidebar-main .sidebar-layout {
+ height: 100%;
+ max-height: 100%;
+ min-height: 100%;
+ overflow-x: hidden;
+ overflow-y: auto;
+ display: flex;
+ flex-direction: column;
+ position: relative;
+ background-color: #0c1e35;
+ z-index: 2;
+ opacity: 0.85;
+}
+.sidebar-main .sidebar-layout::-webkit-scrollbar-thumb {
+ border-radius: 4px;
+}
+.sidebar-main .sidebar-layout:hover::-webkit-scrollbar-thumb {
+ background-color: rgb(26.1230769231, 65.3076923077, 115.3769230769);
+}
+.sidebar-main .sidebar-layout::-webkit-scrollbar {
+ width: 6px;
+ background-color: #0c1e35;
+}
+.sidebar-main .sidebar-layout .sidebar-header {
+ height: 40px;
+ min-height: 40px;
+ display: flex;
+ align-items: center;
+ padding: 8px 22px;
+}
+.sidebar-main .sidebar-layout .sidebar-header > span {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+.sidebar-main .sidebar-layout .sidebar-content {
+ flex-grow: 1;
+ padding: 10px 0;
+}
+.sidebar-main .sidebar-layout .sidebar-footer {
+ height: 230px;
+ min-height: 230px;
+ display: flex;
+ align-items: center;
+ padding: 0 20px;
+}
+.sidebar-main .sidebar-layout .sidebar-footer > span {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+}
+
+@keyframes swing {
+ 0%, 30%, 50%, 70%, 100% {
+ transform: rotate(0deg);
+ }
+ 10% {
+ transform: rotate(10deg);
+ }
+ 40% {
+ transform: rotate(-10deg);
+ }
+ 60% {
+ transform: rotate(5deg);
+ }
+ 80% {
+ transform: rotate(-5deg);
+ }
+}
+.layout-main .sidebar-main .sidebar-main-menu ul {
+ list-style-type: none;
+ padding: 0;
+ margin: 0;
+}
+.layout-main .sidebar-main .sidebar-main-menu .menu-header {
+ font-weight: 600;
+ padding: 10px 25px;
+ font-size: 0.8em;
+ letter-spacing: 2px;
+ transition: opacity 0.3s;
+ opacity: 0.5;
+}
+.layout-main .sidebar-main .sidebar-main-menu .menu-item a {
+ display: flex;
+ align-items: center;
+ height: 38px;
+ padding: 0 20px;
+ color: #44b8eb;
+}
+.layout-main .sidebar-main .sidebar-main-menu .menu-item a .menu-icon {
+ font-size: 1.2rem;
+ width: 35px;
+ min-width: 35px;
+ height: 35px;
+ line-height: 35px;
+ text-align: center;
+ display: inline-block;
+ margin-right: 10px;
+ border-radius: 2px;
+ transition: color 0.3s;
+}
+.layout-main .sidebar-main .sidebar-main-menu .menu-item a .menu-title {
+ font-size: 0.9em;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ flex-grow: 1;
+ transition: color 0.3s;
+}
+.layout-main .sidebar-main .sidebar-main-menu .menu-item a .menu-prefix,
+.layout-main .sidebar-main .sidebar-main-menu .menu-item a .menu-suffix {
+ display: inline-block;
+ padding: 5px;
+ opacity: 1;
+ transition: opacity 0.3s;
+}
+.layout-main .sidebar-main .sidebar-main-menu .menu-item a:hover .menu-title {
+ color: #dee2ec;
+}
+.layout-main .sidebar-main .sidebar-main-menu .menu-item a:hover .menu-icon {
+ color: #dee2ec;
+}
+.layout-main .sidebar-main .sidebar-main-menu .menu-item a:hover .menu-icon i {
+ animation: swing ease-in-out 0.5s 1 alternate;
+}
+.layout-main .sidebar-main .sidebar-main-menu .menu-item a:hover::after {
+ border-color: #dee2ec !important;
+}
+.layout-main .sidebar-main .sidebar-main-menu .menu-item.sub-menu {
+ position: relative;
+}
+.layout-main .sidebar-main .sidebar-main-menu .menu-item.sub-menu > a::after {
+ content: "";
+ transition: transform 0.3s;
+ border-right: 2px solid currentcolor;
+ border-bottom: 2px solid currentcolor;
+ width: 5px;
+ height: 5px;
+ transform: rotate(-45deg);
+}
+.layout-main .sidebar-main .sidebar-main-menu .menu-item.sub-menu > .sub-menu-list {
+ padding-left: 20px;
+ display: none;
+ overflow: hidden;
+ z-index: 999;
+}
+.layout-main .sidebar-main .sidebar-main-menu .menu-item.sub-menu.open > a {
+ color: #dee2ec;
+}
+.layout-main .sidebar-main .sidebar-main-menu .menu-item.sub-menu.open > a::after {
+ transform: rotate(45deg);
+}
+.layout-main .sidebar-main .sidebar-main-menu .menu-item.active > a .menu-title {
+ color: #dee2ec;
+}
+.layout-main .sidebar-main .sidebar-main-menu .menu-item.active > a::after {
+ border-color: #dee2ec;
+}
+.layout-main .sidebar-main .sidebar-main-menu .menu-item.active > a .menu-icon {
+ color: #dee2ec;
+}
+.layout-main .sidebar-main .sidebar-main-menu > ul > .sub-menu > .sub-menu-list {
+ background-color: #0b1a2c;
+}
+.layout-main .sidebar-main .sidebar-main-menu.icon-shape-circle .menu-item a .menu-icon, .layout-main .sidebar-main .sidebar-main-menu.icon-shape-rounded .menu-item a .menu-icon, .layout-main .sidebar-main .sidebar-main-menu.icon-shape-square .menu-item a .menu-icon {
+ background-color: #0b1a2c;
+}
+.layout-main .sidebar-main .sidebar-main-menu.icon-shape-circle .menu-item a .menu-icon {
+ border-radius: 50%;
+}
+.layout-main .sidebar-main .sidebar-main-menu.icon-shape-rounded .menu-item a .menu-icon {
+ border-radius: 4px;
+}
+.layout-main .sidebar-main .sidebar-main-menu.icon-shape-square .menu-item a .menu-icon {
+ border-radius: 0;
+}
+.layout-main .sidebar-main:not(.collapsed) .sidebar-main-menu > ul > .menu-item.sub-menu > .sub-menu-list {
+ visibility: visible !important;
+ position: static !important;
+ transform: translate(0, 0) !important;
+}
+.layout-main .sidebar-main.collapsed .sidebar-main-menu > ul > .menu-header {
+ opacity: 0;
+}
+.layout-main .sidebar-main.collapsed .sidebar-main-menu > ul > .menu-item > a .menu-prefix,
+.layout-main .sidebar-main.collapsed .sidebar-main-menu > ul > .menu-item > a .menu-suffix {
+ opacity: 0;
+}
+.layout-main .sidebar-main.collapsed .sidebar-main-menu > ul > .menu-item.sub-menu > a::after {
+ content: "";
+ width: 5px;
+ height: 5px;
+ background-color: currentcolor;
+ border-radius: 50%;
+ display: inline-block;
+ position: absolute;
+ right: 10px;
+ top: 50%;
+ border: none;
+ transform: translateY(-50%);
+}
+.layout-main .sidebar-main.collapsed .sidebar-main-menu > ul > .menu-item.sub-menu > a:hover::after {
+ background-color: #dee2ec;
+}
+.layout-main .sidebar-main.collapsed .sidebar-main-menu > ul > .menu-item.sub-menu > .sub-menu-list {
+ transition: none !important;
+ width: 200px;
+ margin-left: 3px !important;
+ border-radius: 4px;
+ display: block !important;
+}
+.layout-main .sidebar-main.collapsed .sidebar-main-menu > ul > .menu-item.active > a::after {
+ background-color: #dee2ec;
+}
+.layout-main .sidebar-main.has-bg-image .sidebar-main-menu.icon-shape-circle .menu-item a .menu-icon, .layout-main .sidebar-main.has-bg-image .sidebar-main-menu.icon-shape-rounded .menu-item a .menu-icon, .layout-main .sidebar-main.has-bg-image .sidebar-main-menu.icon-shape-square .menu-item a .menu-icon {
+ background-color: rgba(11, 26, 44, 0.6);
+}
+.layout-main .sidebar-main.has-bg-image:not(.collapsed) .sidebar-main-menu > ul > .sub-menu > .sub-menu-list {
+ background-color: rgba(11, 26, 44, 0.6);
+}
+.layout-main.rtl .sidebar-main .sidebar-main-menu .menu-item a .menu-icon {
+ margin-left: 10px;
+ margin-right: 0;
+}
+.layout-main.rtl .sidebar-main .sidebar-main-menu .menu-item.sub-menu > a::after {
+ transform: rotate(135deg);
+}
+.layout-main.rtl .sidebar-main .sidebar-main-menu .menu-item.sub-menu > .sub-menu-list {
+ padding-left: 0;
+ padding-right: 20px;
+}
+.layout-main.rtl .sidebar-main .sidebar-main-menu .menu-item.sub-menu.open > a::after {
+ transform: rotate(45deg);
+}
+.layout-main.rtl .sidebar-main.collapsed .sidebar-main-menu > ul > .menu-item.sub-menu a::after {
+ right: auto;
+ left: 10px;
+}
+.layout-main.rtl .sidebar-main.collapsed .sidebar-main-menu > ul > .menu-item.sub-menu > .sub-menu-list {
+ margin-left: -3px !important;
+}
+
+/*
+* {
+ box-sizing: border-box;
+}
+
+body {
+ margin: 0;
+ height: 100vh;
+ font-family: 'Poppins', sans-serif;
+ color: #3f4750;
+ font-size: 0.9rem;
+}
+*/
+a {
+ text-decoration: none;
+}
+
+@media (max-width: 992px) {
+ #btn-collapse {
+ display: none;
+ }
+}
+.layout-main .sidebar-main .pro-sidebar-logo {
+ color: #ffa801;
+ display: flex;
+ align-items: center;
+}
+.layout-main .sidebar-main .pro-sidebar-logo > div {
+ width: 45px;
+ min-width: 45px;
+ height: 25px;
+ min-height: 25px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 8px;
+ color: white;
+ font-size: 22px;
+ font-weight: 700;
+ background-color: #ffa801;
+ margin-right: 10px;
+ margin-left: -10px;
+}
+.layout-main .sidebar-main .pro-sidebar-logo > h5 {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ font-size: 22px;
+ line-height: 25px;
+ transition: opacity 0.3s;
+ opacity: 1;
+ margin: 0 17px;
+}
+.layout-main .sidebar-main .footer-box {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+ /* font-size: 0.8em; */
+ padding: 20px 0;
+ border-radius: 8px;
+ width: 180px;
+ min-width: 190px;
+ margin: 0 auto;
+ background-color: #162d4a;
+}
+.layout-main .sidebar-main .footer-box img.react-logo {
+ width: 40px;
+ height: 40px;
+ margin-bottom: 10px;
+}
+.layout-main .sidebar-main .footer-box a {
+ color: #fff;
+ font-weight: 600;
+ margin-bottom: 10px;
+}
+.layout-main .sidebar-main .sidebar-collapser {
+ transition: left, right, 0.3s;
+ position: fixed;
+ left: calc(250px - 20px);
+ top: 40px;
+ width: 20px;
+ height: 20px;
+ border-radius: 50%;
+ background-color: #00829f;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ font-size: 1.2em;
+ transform: translateX(50%);
+ z-index: 111;
+ cursor: pointer;
+ color: white;
+ box-shadow: 1px 1px 4px #0c1e35;
+}
+.layout-main .sidebar-main.has-bg-image .footer-box {
+ /* background-color: rgba(#162d4a, 0.7); */
+ background-color: #34495e;
+}
+.layout-main .sidebar-main.collapsed .pro-sidebar-logo > h5 {
+ opacity: 0;
+}
+.layout-main .sidebar-main.collapsed .footer-box {
+ display: none;
+}
+.layout-main .sidebar-main.collapsed .sidebar-collapser {
+ left: calc(80px - 20px);
+}
+.layout-main .sidebar-main.collapsed .sidebar-collapser i {
+ transform: rotate(180deg);
+}
+
+.badge {
+ display: inline-block;
+ padding: 0.25em 0.4em;
+ font-size: 75%;
+ font-weight: 700;
+ line-height: 1;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: 0.25rem;
+ color: #fff;
+ background-color: #6c757d;
+}
+.badge.primary {
+ background-color: #ab2dff;
+}
+.badge.secondary {
+ background-color: #079b0b;
+}
+
+.sidebar-toggler {
+ position: fixed;
+ right: 20px;
+ top: 20px;
+}
+
+.social-links a {
+ margin: 0 10px;
+ color: #3f4750;
+}
+
+/*# sourceMappingURL=main.css.map*/
\ No newline at end of file
diff --git a/web/skins/classic/assets/pro-sidebar-template/dist_dev/main.css.map b/web/skins/classic/assets/pro-sidebar-template/dist_dev/main.css.map
new file mode 100644
index 00000000000..cc26ec6850b
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/dist_dev/main.css.map
@@ -0,0 +1 @@
+{"version":3,"file":"main.css","mappings":"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;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AA4lBR;AAzlBM;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AA2lBR;AAvlBI;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAylBN;AAxlBM;EACE;EACA;EACA;AA0lBR;AAxlBM;EACE;EACA;EACA;AA0lBR;AAtlBI;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAwlBN;AAplBM;EACE;EACA;AAslBR;AAhlBQ;EACE;AAklBV;AA/kBM;EACE;AAilBR;AA/kBM;EACE;AAilBR;AAhlBQ;EACE;AAklBV;;AA3kBA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AA8kBF;AA5kBE;EACE;AA8kBJ;AA3kBE;EACE;AA6kBJ;;AAzkBA;EACE;EACA;EACA;AA4kBF;;AAxkBE;EACE;EACA;AA2kBJ,C","sources":["webpack://pro-sidebar-template/./src/styles/styles.scss","webpack://pro-sidebar-template/./src/styles/css-pro-layout.scss","webpack://pro-sidebar-template/./src/styles/variables_css-pro-layout.scss","webpack://pro-sidebar-template/./src/styles/_layout.scss","webpack://pro-sidebar-template/./src/styles/_sidebar.scss","webpack://pro-sidebar-template/./src/styles/_variables.scss","webpack://pro-sidebar-template/./src/styles/_menu.scss"],"sourcesContent":["$sidebar-width: 250px;\n$sidebar-collapsed-width: 80px;\n\n/*@import 'css-pro-layout/dist/scss/css-pro-layout.scss';*/\n@import './css-pro-layout.scss';\n@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@100;200;300;400;500;600;700;800;900&display=swap');\n/*@import '../../public//assets//remixicon/remixicon.css';*/\n@import './variables';\n@import './layout';\n@import './sidebar';\n@import './menu';\n\n/*\n* {\n box-sizing: border-box;\n}\n\nbody {\n margin: 0;\n height: 100vh;\n font-family: 'Poppins', sans-serif;\n color: #3f4750;\n font-size: 0.9rem;\n}\n*/\na {\n text-decoration: none;\n}\n\n@media (max-width: $breakpoint-lg) {\n #btn-collapse {\n display: none;\n }\n}\n\n.layout-main {\n .sidebar-main {\n .pro-sidebar-logo {\n color: #ffa801;\n display: flex;\n align-items: center;\n\n > div {\n width: 45px;\n min-width: 45px;\n height: 25px;\n min-height: 25px;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 8px;\n color: white;\n font-size: 22px;\n font-weight: 700;\n background-color: #ffa801;\n margin-right: 10px;\n margin-left: -10px;\n }\n\n > h5 {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n font-size: 22px;\n line-height: 25px;\n transition: opacity 0.3s;\n opacity: 1;\n margin: 0 17px;\n }\n }\n\n .footer-box {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n /* font-size: 0.8em; */\n padding: 20px 0;\n border-radius: 8px;\n width: 180px;\n min-width: 190px;\n margin: 0 auto;\n background-color: #162d4a;\n img.react-logo {\n width: 40px;\n height: 40px;\n margin-bottom: 10px;\n }\n a {\n color: #fff;\n font-weight: 600;\n margin-bottom: 10px;\n }\n }\n\n .sidebar-collapser {\n transition: left, right, 0.3s;\n position: fixed;\n left: calc(#{$sidebar-width} - 20px);\n top: 40px;\n width: 20px;\n height: 20px;\n border-radius: 50%;\n background-color: #00829f;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.2em;\n transform: translateX(50%);\n z-index: 111;\n cursor: pointer;\n color: white;\n box-shadow: 1px 1px 4px $bg-color;\n }\n\n &.has-bg-image {\n .footer-box {\n /* background-color: rgba(#162d4a, 0.7); */\n background-color: #34495e;\n }\n }\n\n &.collapsed {\n .pro-sidebar-logo {\n > h5 {\n opacity: 0;\n }\n }\n .footer-box {\n display: none;\n }\n .sidebar-collapser {\n left: calc(#{$sidebar-collapsed-width} - 20px);\n i {\n transform: rotate(180deg);\n }\n }\n }\n }\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n color: #fff;\n background-color: #6c757d;\n\n &.primary {\n background-color: #ab2dff;\n }\n\n &.secondary {\n background-color: #079b0b;\n }\n}\n\n.sidebar-toggler {\n position: fixed;\n right: 20px;\n top: 20px;\n}\n\n.social-links {\n a {\n margin: 0 10px;\n color: #3f4750;\n }\n}\n","@import './variables_css-pro-layout.scss';\n\n@mixin break-point {\n position: fixed;\n left: -$sidebar-width;\n height: 100%;\n top: 0;\n z-index: 100;\n &.collapsed {\n left: -$sidebar-collapsed-width;\n }\n &.toggled {\n left: 0;\n ~ .overlay {\n display: block;\n }\n }\n\n ~ .layout-main {\n .header {\n width: 100% !important;\n transition: none;\n }\n }\n}\n\n$breakpoints: (\n 'break-point-xs': $breakpoint-xs,\n 'break-point-sm': $breakpoint-sm,\n 'break-point-md': $breakpoint-md,\n 'break-point-lg': $breakpoint-lg,\n 'break-point-xl': $breakpoint-xl,\n 'break-point-xxl': $breakpoint-xxl,\n);\n\n@mixin break-point-rtl {\n left: auto;\n right: -$sidebar-width;\n &.collapsed {\n left: auto;\n right: -$sidebar-collapsed-width;\n }\n &.toggled {\n left: auto;\n right: 0;\n }\n}\n\n@mixin setBreakPoint($name, $value) {\n &.#{$name} {\n @media (max-width: $value) {\n @include break-point;\n }\n }\n}\n\n.layout-main {\n min-height: 100%;\n display: flex;\n flex-direction: column;\n position: relative;\n flex-grow: 1;\n\n &.has-sidebar {\n flex-direction: row;\n }\n .header {\n transition: width, 0.3s;\n height: $header-height;\n min-height: $header-height;\n position: relative;\n }\n .sidebar-main {\n width: $sidebar-width;\n min-width: $sidebar-width;\n transition: width, left, right, 0.3s;\n &.collapsed {\n width: $sidebar-collapsed-width;\n min-width: $sidebar-collapsed-width;\n }\n\n @each $key, $value in $breakpoints {\n @include setBreakPoint($key, $value);\n }\n }\n .footer {\n height: $footer-height;\n min-height: $footer-height;\n }\n .content {\n flex-grow: 1;\n }\n\n .overlay {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background-color: rgba(#000, 0.3);\n z-index: 99;\n display: none;\n }\n\n .sidebar-toggler {\n display: none;\n\n @each $key, $value in $breakpoints {\n &.#{$key} {\n @media (max-width: $value) {\n display: initial;\n }\n }\n }\n }\n\n &.fixed-sidebar {\n height: 100%;\n .sidebar {\n height: 100%;\n overflow: auto;\n ~ .layout-main {\n height: 100%;\n overflow: auto;\n }\n }\n }\n\n &.fixed-header {\n .header {\n position: fixed;\n width: 100%;\n z-index: 2;\n ~ .layout-main,\n ~ .content {\n margin-top: $header-height;\n }\n }\n &.fixed-sidebar {\n .header {\n width: calc(100% - #{$sidebar-width});\n }\n .sidebar.collapsed {\n ~ .layout-main {\n .header {\n width: calc(100% - #{$sidebar-collapsed-width});\n }\n }\n }\n }\n }\n\n &.rtl {\n direction: rtl;\n .sidebar {\n @each $key, $value in $breakpoints {\n &.#{$key} {\n @media (max-width: $value) {\n @include break-point-rtl;\n }\n }\n }\n }\n }\n}\n","$sidebar-width: 280px !default;\n$sidebar-collapsed-width: 80px !default;\n$header-height: 64px !default;\n$footer-height: 64px !default;\n\n$breakpoint-xs: 480px !default;\n$breakpoint-sm: 576px !default;\n$breakpoint-md: 768px !default;\n$breakpoint-lg: 992px !default;\n$breakpoint-xl: 1200px !default;\n$breakpoint-xxl: 1600px !default;\n","/*\n.layout {\n z-index: 1;\n .header {\n display: flex;\n align-items: center;\n padding: 20px;\n }\n .content {\n padding: 12px 50px;\n display: flex;\n flex-direction: column;\n }\n\n .footer {\n text-align: center;\n margin-top: auto;\n margin-bottom: 20px;\n padding: 20px;\n }\n}\n*/",".sidebar-main {\n color: $text-color;\n position: relative;\n height: 100%;\n max-height: 100%;\n overflow: hidden !important;\n\n .image-wrapper {\n overflow: hidden;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n display: none;\n > img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n object-position: center;\n }\n }\n &.has-bg-image {\n .sidebar-layout {\n background-color: rgba($bg-color, 0.85);\n }\n .image-wrapper {\n display: block;\n opacity: 0.8;\n // filter: blur(3px);\n }\n }\n\n .sidebar-layout {\n height: 100%;\n max-height: 100%;\n min-height: 100%;\n overflow-x: hidden;\n overflow-y: auto;\n display: flex;\n flex-direction: column;\n position: relative;\n background-color: $bg-color;\n z-index: 2;\n opacity: 0.85;\n\n &::-webkit-scrollbar-thumb {\n border-radius: 4px;\n }\n\n &:hover {\n &::-webkit-scrollbar-thumb {\n background-color: lighten($bg-color, 15);\n }\n }\n\n &::-webkit-scrollbar {\n width: 6px;\n background-color: $bg-color;\n }\n\n .sidebar-header {\n height: $sidebar-header-height;\n min-height: $sidebar-header-height;\n display: flex;\n align-items: center;\n padding: 8px 22px;\n > span {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n }\n .sidebar-content {\n flex-grow: 1;\n padding: 10px 0;\n }\n .sidebar-footer {\n height: $sidebar-footer-height;\n min-height: $sidebar-footer-height;\n display: flex;\n align-items: center;\n padding: 0 20px;\n > span {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n }\n }\n}\n","$text-color: #44b8eb;\n$secondary-text-color: #dee2ec;\n\n$bg-color: #0c1e35;\n$secondary-bg-color: #0b1a2c;\n\n$border-color: rgba(#535d7d, 0.3);\n\n$sidebar-header-height: 40px;\n$sidebar-footer-height: 230px;\n","@keyframes swing {\n 0%,\n 30%,\n 50%,\n 70%,\n 100% {\n transform: rotate(0deg);\n }\n\n 10% {\n transform: rotate(10deg);\n }\n\n 40% {\n transform: rotate(-10deg);\n }\n\n 60% {\n transform: rotate(5deg);\n }\n\n 80% {\n transform: rotate(-5deg);\n }\n}\n\n.layout-main {\n .sidebar-main {\n .sidebar-main-menu {\n ul {\n list-style-type: none;\n padding: 0;\n margin: 0;\n }\n .menu-header {\n font-weight: 600;\n padding: 10px 25px;\n font-size: 0.8em;\n letter-spacing: 2px;\n transition: opacity 0.3s;\n opacity: 0.5;\n }\n .menu-item {\n a {\n display: flex;\n align-items: center;\n height: 38px;\n padding: 0 20px;\n color: $text-color;\n\n .menu-icon {\n font-size: 1.2rem;\n width: 35px;\n min-width: 35px;\n height: 35px;\n line-height: 35px;\n text-align: center;\n display: inline-block;\n margin-right: 10px;\n border-radius: 2px;\n transition: color 0.3s;\n i {\n // display: inline-block;\n }\n }\n\n .menu-title {\n font-size: 0.9em;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n flex-grow: 1;\n transition: color 0.3s;\n }\n .menu-prefix,\n .menu-suffix {\n display: inline-block;\n padding: 5px;\n opacity: 1;\n transition: opacity 0.3s;\n }\n &:hover {\n .menu-title {\n color: $secondary-text-color;\n }\n .menu-icon {\n color: $secondary-text-color;\n i {\n animation: swing ease-in-out 0.5s 1 alternate;\n }\n }\n &::after {\n border-color: $secondary-text-color !important;\n }\n }\n }\n\n &.sub-menu {\n position: relative;\n > a {\n &::after {\n content: '';\n transition: transform 0.3s;\n border-right: 2px solid currentcolor;\n border-bottom: 2px solid currentcolor;\n width: 5px;\n height: 5px;\n transform: rotate(-45deg);\n }\n }\n\n > .sub-menu-list {\n padding-left: 20px;\n display: none;\n overflow: hidden;\n z-index: 999;\n }\n &.open {\n > a {\n color: $secondary-text-color;\n &::after {\n transform: rotate(45deg);\n }\n }\n }\n }\n\n &.active {\n > a {\n .menu-title {\n color: $secondary-text-color;\n }\n &::after {\n border-color: $secondary-text-color;\n }\n .menu-icon {\n color: $secondary-text-color;\n }\n }\n }\n }\n > ul > .sub-menu > .sub-menu-list {\n background-color: $secondary-bg-color;\n }\n\n &.icon-shape-circle,\n &.icon-shape-rounded,\n &.icon-shape-square {\n .menu-item a .menu-icon {\n background-color: $secondary-bg-color;\n }\n }\n\n &.icon-shape-circle .menu-item a .menu-icon {\n border-radius: 50%;\n }\n &.icon-shape-rounded .menu-item a .menu-icon {\n border-radius: 4px;\n }\n &.icon-shape-square .menu-item a .menu-icon {\n border-radius: 0;\n }\n }\n\n &:not(.collapsed) {\n .sidebar-main-menu > ul {\n > .menu-item {\n &.sub-menu {\n > .sub-menu-list {\n visibility: visible !important;\n position: static !important;\n transform: translate(0, 0) !important;\n }\n }\n }\n }\n }\n\n &.collapsed {\n .sidebar-main-menu > ul {\n > .menu-header {\n opacity: 0;\n }\n > .menu-item {\n > a {\n .menu-prefix,\n .menu-suffix {\n opacity: 0;\n }\n }\n &.sub-menu {\n > a {\n &::after {\n content: '';\n width: 5px;\n height: 5px;\n background-color: currentcolor;\n border-radius: 50%;\n display: inline-block;\n position: absolute;\n right: 10px;\n top: 50%;\n border: none;\n transform: translateY(-50%);\n }\n &:hover {\n &::after {\n background-color: $secondary-text-color;\n }\n }\n }\n > .sub-menu-list {\n transition: none !important;\n width: 200px;\n margin-left: 3px !important;\n border-radius: 4px;\n display: block !important;\n }\n }\n &.active {\n > a {\n &::after {\n background-color: $secondary-text-color;\n }\n }\n }\n }\n }\n }\n &.has-bg-image {\n .sidebar-main-menu {\n &.icon-shape-circle,\n &.icon-shape-rounded,\n &.icon-shape-square {\n .menu-item a .menu-icon {\n background-color: rgba($secondary-bg-color, 0.6);\n }\n }\n }\n &:not(.collapsed) {\n .sidebar-main-menu {\n > ul > .sub-menu > .sub-menu-list {\n background-color: rgba($secondary-bg-color, 0.6);\n }\n }\n }\n }\n }\n\n &.rtl {\n .sidebar-main {\n .sidebar-main-menu {\n .menu-item {\n a {\n .menu-icon {\n margin-left: 10px;\n margin-right: 0;\n }\n }\n\n &.sub-menu {\n > a {\n &::after {\n transform: rotate(135deg);\n }\n }\n\n > .sub-menu-list {\n padding-left: 0;\n padding-right: 20px;\n }\n &.open {\n > a {\n &::after {\n transform: rotate(45deg);\n }\n }\n }\n }\n }\n }\n\n &.collapsed {\n .sidebar-main-menu > ul {\n > .menu-item {\n &.sub-menu {\n a::after {\n right: auto;\n left: 10px;\n }\n\n > .sub-menu-list {\n margin-left: -3px !important;\n }\n }\n }\n }\n }\n }\n }\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/web/skins/classic/assets/pro-sidebar-template/dist_dev/main.js b/web/skins/classic/assets/pro-sidebar-template/dist_dev/main.js
new file mode 100644
index 00000000000..363887b0764
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/dist_dev/main.js
@@ -0,0 +1,3276 @@
+/******/ (() => { // webpackBootstrap
+/******/ "use strict";
+/******/ var __webpack_modules__ = ({
+
+/***/ "./node_modules/@popperjs/core/lib/createPopper.js":
+/*!*********************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/createPopper.js ***!
+ \*********************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ createPopper: () => (/* binding */ createPopper),
+/* harmony export */ detectOverflow: () => (/* reexport safe */ _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_8__["default"]),
+/* harmony export */ popperGenerator: () => (/* binding */ popperGenerator)
+/* harmony export */ });
+/* harmony import */ var _dom_utils_getCompositeRect_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./dom-utils/getCompositeRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js");
+/* harmony import */ var _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./dom-utils/getLayoutRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js");
+/* harmony import */ var _dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./dom-utils/listScrollParents.js */ "./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js");
+/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./dom-utils/getOffsetParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js");
+/* harmony import */ var _utils_orderModifiers_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils/orderModifiers.js */ "./node_modules/@popperjs/core/lib/utils/orderModifiers.js");
+/* harmony import */ var _utils_debounce_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/debounce.js */ "./node_modules/@popperjs/core/lib/utils/debounce.js");
+/* harmony import */ var _utils_mergeByName_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/mergeByName.js */ "./node_modules/@popperjs/core/lib/utils/mergeByName.js");
+/* harmony import */ var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/detectOverflow.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js");
+/* harmony import */ var _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./dom-utils/instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
+
+
+
+
+
+
+
+
+
+var DEFAULT_OPTIONS = {
+ placement: 'bottom',
+ modifiers: [],
+ strategy: 'absolute'
+};
+
+function areValidElements() {
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ return !args.some(function (element) {
+ return !(element && typeof element.getBoundingClientRect === 'function');
+ });
+}
+
+function popperGenerator(generatorOptions) {
+ if (generatorOptions === void 0) {
+ generatorOptions = {};
+ }
+
+ var _generatorOptions = generatorOptions,
+ _generatorOptions$def = _generatorOptions.defaultModifiers,
+ defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,
+ _generatorOptions$def2 = _generatorOptions.defaultOptions,
+ defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;
+ return function createPopper(reference, popper, options) {
+ if (options === void 0) {
+ options = defaultOptions;
+ }
+
+ var state = {
+ placement: 'bottom',
+ orderedModifiers: [],
+ options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),
+ modifiersData: {},
+ elements: {
+ reference: reference,
+ popper: popper
+ },
+ attributes: {},
+ styles: {}
+ };
+ var effectCleanupFns = [];
+ var isDestroyed = false;
+ var instance = {
+ state: state,
+ setOptions: function setOptions(setOptionsAction) {
+ var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;
+ cleanupModifierEffects();
+ state.options = Object.assign({}, defaultOptions, state.options, options);
+ state.scrollParents = {
+ reference: (0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isElement)(reference) ? (0,_dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__["default"])(reference) : reference.contextElement ? (0,_dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__["default"])(reference.contextElement) : [],
+ popper: (0,_dom_utils_listScrollParents_js__WEBPACK_IMPORTED_MODULE_1__["default"])(popper)
+ }; // Orders the modifiers based on their dependencies and `phase`
+ // properties
+
+ var orderedModifiers = (0,_utils_orderModifiers_js__WEBPACK_IMPORTED_MODULE_2__["default"])((0,_utils_mergeByName_js__WEBPACK_IMPORTED_MODULE_3__["default"])([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers
+
+ state.orderedModifiers = orderedModifiers.filter(function (m) {
+ return m.enabled;
+ });
+ runModifierEffects();
+ return instance.update();
+ },
+ // Sync update – it will always be executed, even if not necessary. This
+ // is useful for low frequency updates where sync behavior simplifies the
+ // logic.
+ // For high frequency updates (e.g. `resize` and `scroll` events), always
+ // prefer the async Popper#update method
+ forceUpdate: function forceUpdate() {
+ if (isDestroyed) {
+ return;
+ }
+
+ var _state$elements = state.elements,
+ reference = _state$elements.reference,
+ popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements
+ // anymore
+
+ if (!areValidElements(reference, popper)) {
+ return;
+ } // Store the reference and popper rects to be read by modifiers
+
+
+ state.rects = {
+ reference: (0,_dom_utils_getCompositeRect_js__WEBPACK_IMPORTED_MODULE_4__["default"])(reference, (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_5__["default"])(popper), state.options.strategy === 'fixed'),
+ popper: (0,_dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_6__["default"])(popper)
+ }; // Modifiers have the ability to reset the current update cycle. The
+ // most common use case for this is the `flip` modifier changing the
+ // placement, which then needs to re-run all the modifiers, because the
+ // logic was previously ran for the previous placement and is therefore
+ // stale/incorrect
+
+ state.reset = false;
+ state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier
+ // is filled with the initial data specified by the modifier. This means
+ // it doesn't persist and is fresh on each update.
+ // To ensure persistent data, use `${name}#persistent`
+
+ state.orderedModifiers.forEach(function (modifier) {
+ return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);
+ });
+
+ for (var index = 0; index < state.orderedModifiers.length; index++) {
+ if (state.reset === true) {
+ state.reset = false;
+ index = -1;
+ continue;
+ }
+
+ var _state$orderedModifie = state.orderedModifiers[index],
+ fn = _state$orderedModifie.fn,
+ _state$orderedModifie2 = _state$orderedModifie.options,
+ _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,
+ name = _state$orderedModifie.name;
+
+ if (typeof fn === 'function') {
+ state = fn({
+ state: state,
+ options: _options,
+ name: name,
+ instance: instance
+ }) || state;
+ }
+ }
+ },
+ // Async and optimistically optimized update – it will not be executed if
+ // not necessary (debounced to run at most once-per-tick)
+ update: (0,_utils_debounce_js__WEBPACK_IMPORTED_MODULE_7__["default"])(function () {
+ return new Promise(function (resolve) {
+ instance.forceUpdate();
+ resolve(state);
+ });
+ }),
+ destroy: function destroy() {
+ cleanupModifierEffects();
+ isDestroyed = true;
+ }
+ };
+
+ if (!areValidElements(reference, popper)) {
+ return instance;
+ }
+
+ instance.setOptions(options).then(function (state) {
+ if (!isDestroyed && options.onFirstUpdate) {
+ options.onFirstUpdate(state);
+ }
+ }); // Modifiers have the ability to execute arbitrary code before the first
+ // update cycle runs. They will be executed in the same order as the update
+ // cycle. This is useful when a modifier adds some persistent data that
+ // other modifiers need to use, but the modifier is run after the dependent
+ // one.
+
+ function runModifierEffects() {
+ state.orderedModifiers.forEach(function (_ref) {
+ var name = _ref.name,
+ _ref$options = _ref.options,
+ options = _ref$options === void 0 ? {} : _ref$options,
+ effect = _ref.effect;
+
+ if (typeof effect === 'function') {
+ var cleanupFn = effect({
+ state: state,
+ name: name,
+ instance: instance,
+ options: options
+ });
+
+ var noopFn = function noopFn() {};
+
+ effectCleanupFns.push(cleanupFn || noopFn);
+ }
+ });
+ }
+
+ function cleanupModifierEffects() {
+ effectCleanupFns.forEach(function (fn) {
+ return fn();
+ });
+ effectCleanupFns = [];
+ }
+
+ return instance;
+ };
+}
+var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules
+
+
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/dom-utils/contains.js":
+/*!***************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/dom-utils/contains.js ***!
+ \***************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ contains)
+/* harmony export */ });
+/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
+
+function contains(parent, child) {
+ var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method
+
+ if (parent.contains(child)) {
+ return true;
+ } // then fallback to custom implementation with Shadow DOM support
+ else if (rootNode && (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isShadowRoot)(rootNode)) {
+ var next = child;
+
+ do {
+ if (next && parent.isSameNode(next)) {
+ return true;
+ } // $FlowFixMe[prop-missing]: need a better way to handle this...
+
+
+ next = next.parentNode || next.host;
+ } while (next);
+ } // Give up, the result is false
+
+
+ return false;
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js":
+/*!****************************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js ***!
+ \****************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getBoundingClientRect)
+/* harmony export */ });
+/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
+/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js");
+/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js");
+/* harmony import */ var _isLayoutViewport_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./isLayoutViewport.js */ "./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js");
+
+
+
+
+function getBoundingClientRect(element, includeScale, isFixedStrategy) {
+ if (includeScale === void 0) {
+ includeScale = false;
+ }
+
+ if (isFixedStrategy === void 0) {
+ isFixedStrategy = false;
+ }
+
+ var clientRect = element.getBoundingClientRect();
+ var scaleX = 1;
+ var scaleY = 1;
+
+ if (includeScale && (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element)) {
+ scaleX = element.offsetWidth > 0 ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_1__.round)(clientRect.width) / element.offsetWidth || 1 : 1;
+ scaleY = element.offsetHeight > 0 ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_1__.round)(clientRect.height) / element.offsetHeight || 1 : 1;
+ }
+
+ var _ref = (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isElement)(element) ? (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_2__["default"])(element) : window,
+ visualViewport = _ref.visualViewport;
+
+ var addVisualOffsets = !(0,_isLayoutViewport_js__WEBPACK_IMPORTED_MODULE_3__["default"])() && isFixedStrategy;
+ var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;
+ var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;
+ var width = clientRect.width / scaleX;
+ var height = clientRect.height / scaleY;
+ return {
+ width: width,
+ height: height,
+ top: y,
+ right: x + width,
+ bottom: y + height,
+ left: x,
+ x: x,
+ y: y
+ };
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js":
+/*!**********************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js ***!
+ \**********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getClippingRect)
+/* harmony export */ });
+/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js");
+/* harmony import */ var _getViewportRect_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getViewportRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js");
+/* harmony import */ var _getDocumentRect_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./getDocumentRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js");
+/* harmony import */ var _listScrollParents_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./listScrollParents.js */ "./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js");
+/* harmony import */ var _getOffsetParent_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./getOffsetParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js");
+/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js");
+/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./getComputedStyle.js */ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js");
+/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
+/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBoundingClientRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js");
+/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./getParentNode.js */ "./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js");
+/* harmony import */ var _contains_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./contains.js */ "./node_modules/@popperjs/core/lib/dom-utils/contains.js");
+/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js");
+/* harmony import */ var _utils_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/rectToClientRect.js */ "./node_modules/@popperjs/core/lib/utils/rectToClientRect.js");
+/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js");
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+function getInnerBoundingClientRect(element, strategy) {
+ var rect = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element, false, strategy === 'fixed');
+ rect.top = rect.top + element.clientTop;
+ rect.left = rect.left + element.clientLeft;
+ rect.bottom = rect.top + element.clientHeight;
+ rect.right = rect.left + element.clientWidth;
+ rect.width = element.clientWidth;
+ rect.height = element.clientHeight;
+ rect.x = rect.left;
+ rect.y = rect.top;
+ return rect;
+}
+
+function getClientRectFromMixedType(element, clippingParent, strategy) {
+ return clippingParent === _enums_js__WEBPACK_IMPORTED_MODULE_1__.viewport ? (0,_utils_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_2__["default"])((0,_getViewportRect_js__WEBPACK_IMPORTED_MODULE_3__["default"])(element, strategy)) : (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isElement)(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : (0,_utils_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_2__["default"])((0,_getDocumentRect_js__WEBPACK_IMPORTED_MODULE_5__["default"])((0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_6__["default"])(element)));
+} // A "clipping parent" is an overflowable container with the characteristic of
+// clipping (or hiding) overflowing elements with a position different from
+// `initial`
+
+
+function getClippingParents(element) {
+ var clippingParents = (0,_listScrollParents_js__WEBPACK_IMPORTED_MODULE_7__["default"])((0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_8__["default"])(element));
+ var canEscapeClipping = ['absolute', 'fixed'].indexOf((0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_9__["default"])(element).position) >= 0;
+ var clipperElement = canEscapeClipping && (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isHTMLElement)(element) ? (0,_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_10__["default"])(element) : element;
+
+ if (!(0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isElement)(clipperElement)) {
+ return [];
+ } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414
+
+
+ return clippingParents.filter(function (clippingParent) {
+ return (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isElement)(clippingParent) && (0,_contains_js__WEBPACK_IMPORTED_MODULE_11__["default"])(clippingParent, clipperElement) && (0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_12__["default"])(clippingParent) !== 'body';
+ });
+} // Gets the maximum area that the element is visible in due to any number of
+// clipping parents
+
+
+function getClippingRect(element, boundary, rootBoundary, strategy) {
+ var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);
+ var clippingParents = [].concat(mainClippingParents, [rootBoundary]);
+ var firstClippingParent = clippingParents[0];
+ var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {
+ var rect = getClientRectFromMixedType(element, clippingParent, strategy);
+ accRect.top = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.max)(rect.top, accRect.top);
+ accRect.right = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.min)(rect.right, accRect.right);
+ accRect.bottom = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.min)(rect.bottom, accRect.bottom);
+ accRect.left = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_13__.max)(rect.left, accRect.left);
+ return accRect;
+ }, getClientRectFromMixedType(element, firstClippingParent, strategy));
+ clippingRect.width = clippingRect.right - clippingRect.left;
+ clippingRect.height = clippingRect.bottom - clippingRect.top;
+ clippingRect.x = clippingRect.left;
+ clippingRect.y = clippingRect.top;
+ return clippingRect;
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js":
+/*!***********************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js ***!
+ \***********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getCompositeRect)
+/* harmony export */ });
+/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getBoundingClientRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js");
+/* harmony import */ var _getNodeScroll_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./getNodeScroll.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js");
+/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js");
+/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
+/* harmony import */ var _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./getWindowScrollBarX.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js");
+/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js");
+/* harmony import */ var _isScrollParent_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./isScrollParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js");
+/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js");
+
+
+
+
+
+
+
+
+
+function isElementScaled(element) {
+ var rect = element.getBoundingClientRect();
+ var scaleX = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)(rect.width) / element.offsetWidth || 1;
+ var scaleY = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)(rect.height) / element.offsetHeight || 1;
+ return scaleX !== 1 || scaleY !== 1;
+} // Returns the composite rect of an element relative to its offsetParent.
+// Composite means it takes into account transforms as well as layout.
+
+
+function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {
+ if (isFixed === void 0) {
+ isFixed = false;
+ }
+
+ var isOffsetParentAnElement = (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(offsetParent);
+ var offsetParentIsScaled = (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(offsetParent) && isElementScaled(offsetParent);
+ var documentElement = (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(offsetParent);
+ var rect = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_3__["default"])(elementOrVirtualElement, offsetParentIsScaled, isFixed);
+ var scroll = {
+ scrollLeft: 0,
+ scrollTop: 0
+ };
+ var offsets = {
+ x: 0,
+ y: 0
+ };
+
+ if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
+ if ((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_4__["default"])(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078
+ (0,_isScrollParent_js__WEBPACK_IMPORTED_MODULE_5__["default"])(documentElement)) {
+ scroll = (0,_getNodeScroll_js__WEBPACK_IMPORTED_MODULE_6__["default"])(offsetParent);
+ }
+
+ if ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(offsetParent)) {
+ offsets = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_3__["default"])(offsetParent, true);
+ offsets.x += offsetParent.clientLeft;
+ offsets.y += offsetParent.clientTop;
+ } else if (documentElement) {
+ offsets.x = (0,_getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_7__["default"])(documentElement);
+ }
+ }
+
+ return {
+ x: rect.left + scroll.scrollLeft - offsets.x,
+ y: rect.top + scroll.scrollTop - offsets.y,
+ width: rect.width,
+ height: rect.height
+ };
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js":
+/*!***********************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js ***!
+ \***********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getComputedStyle)
+/* harmony export */ });
+/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js");
+
+function getComputedStyle(element) {
+ return (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element).getComputedStyle(element);
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js":
+/*!*************************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js ***!
+ \*************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getDocumentElement)
+/* harmony export */ });
+/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
+
+function getDocumentElement(element) {
+ // $FlowFixMe[incompatible-return]: assume body is always available
+ return (((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isElement)(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]
+ element.document) || window.document).documentElement;
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js":
+/*!**********************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js ***!
+ \**********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getDocumentRect)
+/* harmony export */ });
+/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js");
+/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./getComputedStyle.js */ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js");
+/* harmony import */ var _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getWindowScrollBarX.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js");
+/* harmony import */ var _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getWindowScroll.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js");
+/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js");
+
+
+
+
+ // Gets the entire size of the scrollable document area, even extending outside
+// of the `` and `` rect bounds if horizontally scrollable
+
+function getDocumentRect(element) {
+ var _element$ownerDocumen;
+
+ var html = (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element);
+ var winScroll = (0,_getWindowScroll_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element);
+ var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;
+ var width = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_2__.max)(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);
+ var height = (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_2__.max)(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);
+ var x = -winScroll.scrollLeft + (0,_getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_3__["default"])(element);
+ var y = -winScroll.scrollTop;
+
+ if ((0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_4__["default"])(body || html).direction === 'rtl') {
+ x += (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_2__.max)(html.clientWidth, body ? body.clientWidth : 0) - width;
+ }
+
+ return {
+ width: width,
+ height: height,
+ x: x,
+ y: y
+ };
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js":
+/*!***************************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js ***!
+ \***************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getHTMLElementScroll)
+/* harmony export */ });
+function getHTMLElementScroll(element) {
+ return {
+ scrollLeft: element.scrollLeft,
+ scrollTop: element.scrollTop
+ };
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js":
+/*!********************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js ***!
+ \********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getLayoutRect)
+/* harmony export */ });
+/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBoundingClientRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js");
+ // Returns the layout rect of an element relative to its offsetParent. Layout
+// means it doesn't take into account transforms.
+
+function getLayoutRect(element) {
+ var clientRect = (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element); // Use the clientRect sizes if it's not been transformed.
+ // Fixes https://github.com/popperjs/popper-core/issues/1223
+
+ var width = element.offsetWidth;
+ var height = element.offsetHeight;
+
+ if (Math.abs(clientRect.width - width) <= 1) {
+ width = clientRect.width;
+ }
+
+ if (Math.abs(clientRect.height - height) <= 1) {
+ height = clientRect.height;
+ }
+
+ return {
+ x: element.offsetLeft,
+ y: element.offsetTop,
+ width: width,
+ height: height
+ };
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js":
+/*!******************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js ***!
+ \******************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getNodeName)
+/* harmony export */ });
+function getNodeName(element) {
+ return element ? (element.nodeName || '').toLowerCase() : null;
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js":
+/*!********************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js ***!
+ \********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getNodeScroll)
+/* harmony export */ });
+/* harmony import */ var _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getWindowScroll.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js");
+/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js");
+/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
+/* harmony import */ var _getHTMLElementScroll_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getHTMLElementScroll.js */ "./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js");
+
+
+
+
+function getNodeScroll(node) {
+ if (node === (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node) || !(0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(node)) {
+ return (0,_getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__["default"])(node);
+ } else {
+ return (0,_getHTMLElementScroll_js__WEBPACK_IMPORTED_MODULE_3__["default"])(node);
+ }
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js":
+/*!**********************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js ***!
+ \**********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getOffsetParent)
+/* harmony export */ });
+/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js");
+/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js");
+/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getComputedStyle.js */ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js");
+/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
+/* harmony import */ var _isTableElement_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./isTableElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js");
+/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getParentNode.js */ "./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js");
+/* harmony import */ var _utils_userAgent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/userAgent.js */ "./node_modules/@popperjs/core/lib/utils/userAgent.js");
+
+
+
+
+
+
+
+
+function getTrueOffsetParent(element) {
+ if (!(0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) || // https://github.com/popperjs/popper-core/issues/837
+ (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element).position === 'fixed') {
+ return null;
+ }
+
+ return element.offsetParent;
+} // `.offsetParent` reports `null` for fixed elements, while absolute elements
+// return the containing block
+
+
+function getContainingBlock(element) {
+ var isFirefox = /firefox/i.test((0,_utils_userAgent_js__WEBPACK_IMPORTED_MODULE_2__["default"])());
+ var isIE = /Trident/i.test((0,_utils_userAgent_js__WEBPACK_IMPORTED_MODULE_2__["default"])());
+
+ if (isIE && (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element)) {
+ // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport
+ var elementCss = (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element);
+
+ if (elementCss.position === 'fixed') {
+ return null;
+ }
+ }
+
+ var currentNode = (0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_3__["default"])(element);
+
+ if ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isShadowRoot)(currentNode)) {
+ currentNode = currentNode.host;
+ }
+
+ while ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(currentNode) && ['html', 'body'].indexOf((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_4__["default"])(currentNode)) < 0) {
+ var css = (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(currentNode); // This is non-exhaustive but covers the most common CSS properties that
+ // create a containing block.
+ // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
+
+ if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {
+ return currentNode;
+ } else {
+ currentNode = currentNode.parentNode;
+ }
+ }
+
+ return null;
+} // Gets the closest ancestor positioned element. Handles some edge cases,
+// such as table ancestors and cross browser bugs.
+
+
+function getOffsetParent(element) {
+ var window = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_5__["default"])(element);
+ var offsetParent = getTrueOffsetParent(element);
+
+ while (offsetParent && (0,_isTableElement_js__WEBPACK_IMPORTED_MODULE_6__["default"])(offsetParent) && (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(offsetParent).position === 'static') {
+ offsetParent = getTrueOffsetParent(offsetParent);
+ }
+
+ if (offsetParent && ((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_4__["default"])(offsetParent) === 'html' || (0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_4__["default"])(offsetParent) === 'body' && (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_1__["default"])(offsetParent).position === 'static')) {
+ return window;
+ }
+
+ return offsetParent || getContainingBlock(element) || window;
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js":
+/*!********************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js ***!
+ \********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getParentNode)
+/* harmony export */ });
+/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js");
+/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js");
+/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
+
+
+
+function getParentNode(element) {
+ if ((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element) === 'html') {
+ return element;
+ }
+
+ return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle
+ // $FlowFixMe[incompatible-return]
+ // $FlowFixMe[prop-missing]
+ element.assignedSlot || // step into the shadow DOM of the parent of a slotted node
+ element.parentNode || ( // DOM Element detected
+ (0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isShadowRoot)(element) ? element.host : null) || // ShadowRoot detected
+ // $FlowFixMe[incompatible-call]: HTMLElement is a Node
+ (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(element) // fallback
+
+ );
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js":
+/*!**********************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js ***!
+ \**********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getScrollParent)
+/* harmony export */ });
+/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getParentNode.js */ "./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js");
+/* harmony import */ var _isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isScrollParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js");
+/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js");
+/* harmony import */ var _instanceOf_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
+
+
+
+
+function getScrollParent(node) {
+ if (['html', 'body', '#document'].indexOf((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node)) >= 0) {
+ // $FlowFixMe[incompatible-return]: assume body is always available
+ return node.ownerDocument.body;
+ }
+
+ if ((0,_instanceOf_js__WEBPACK_IMPORTED_MODULE_1__.isHTMLElement)(node) && (0,_isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__["default"])(node)) {
+ return node;
+ }
+
+ return getScrollParent((0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_3__["default"])(node));
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js":
+/*!**********************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js ***!
+ \**********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getViewportRect)
+/* harmony export */ });
+/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js");
+/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js");
+/* harmony import */ var _getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getWindowScrollBarX.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js");
+/* harmony import */ var _isLayoutViewport_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isLayoutViewport.js */ "./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js");
+
+
+
+
+function getViewportRect(element, strategy) {
+ var win = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element);
+ var html = (0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element);
+ var visualViewport = win.visualViewport;
+ var width = html.clientWidth;
+ var height = html.clientHeight;
+ var x = 0;
+ var y = 0;
+
+ if (visualViewport) {
+ width = visualViewport.width;
+ height = visualViewport.height;
+ var layoutViewport = (0,_isLayoutViewport_js__WEBPACK_IMPORTED_MODULE_2__["default"])();
+
+ if (layoutViewport || !layoutViewport && strategy === 'fixed') {
+ x = visualViewport.offsetLeft;
+ y = visualViewport.offsetTop;
+ }
+ }
+
+ return {
+ width: width,
+ height: height,
+ x: x + (0,_getWindowScrollBarX_js__WEBPACK_IMPORTED_MODULE_3__["default"])(element),
+ y: y
+ };
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js":
+/*!****************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/dom-utils/getWindow.js ***!
+ \****************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getWindow)
+/* harmony export */ });
+function getWindow(node) {
+ if (node == null) {
+ return window;
+ }
+
+ if (node.toString() !== '[object Window]') {
+ var ownerDocument = node.ownerDocument;
+ return ownerDocument ? ownerDocument.defaultView || window : window;
+ }
+
+ return node;
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js":
+/*!**********************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js ***!
+ \**********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getWindowScroll)
+/* harmony export */ });
+/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js");
+
+function getWindowScroll(node) {
+ var win = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node);
+ var scrollLeft = win.pageXOffset;
+ var scrollTop = win.pageYOffset;
+ return {
+ scrollLeft: scrollLeft,
+ scrollTop: scrollTop
+ };
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js":
+/*!**************************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js ***!
+ \**************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getWindowScrollBarX)
+/* harmony export */ });
+/* harmony import */ var _getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBoundingClientRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js");
+/* harmony import */ var _getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js");
+/* harmony import */ var _getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./getWindowScroll.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js");
+
+
+
+function getWindowScrollBarX(element) {
+ // If has a CSS width greater than the viewport, then this will be
+ // incorrect for RTL.
+ // Popper 1 is broken in this case and never had a bug report so let's assume
+ // it's not an issue. I don't think anyone ever specifies width on
+ // anyway.
+ // Browsers where the left scrollbar doesn't cause an issue report `0` for
+ // this (e.g. Edge 2019, IE11, Safari)
+ return (0,_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_0__["default"])((0,_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element)).left + (0,_getWindowScroll_js__WEBPACK_IMPORTED_MODULE_2__["default"])(element).scrollLeft;
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js":
+/*!*****************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js ***!
+ \*****************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ isElement: () => (/* binding */ isElement),
+/* harmony export */ isHTMLElement: () => (/* binding */ isHTMLElement),
+/* harmony export */ isShadowRoot: () => (/* binding */ isShadowRoot)
+/* harmony export */ });
+/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js");
+
+
+function isElement(node) {
+ var OwnElement = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node).Element;
+ return node instanceof OwnElement || node instanceof Element;
+}
+
+function isHTMLElement(node) {
+ var OwnElement = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node).HTMLElement;
+ return node instanceof OwnElement || node instanceof HTMLElement;
+}
+
+function isShadowRoot(node) {
+ // IE 11 has no ShadowRoot
+ if (typeof ShadowRoot === 'undefined') {
+ return false;
+ }
+
+ var OwnElement = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(node).ShadowRoot;
+ return node instanceof OwnElement || node instanceof ShadowRoot;
+}
+
+
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js":
+/*!***********************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js ***!
+ \***********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ isLayoutViewport)
+/* harmony export */ });
+/* harmony import */ var _utils_userAgent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/userAgent.js */ "./node_modules/@popperjs/core/lib/utils/userAgent.js");
+
+function isLayoutViewport() {
+ return !/^((?!chrome|android).)*safari/i.test((0,_utils_userAgent_js__WEBPACK_IMPORTED_MODULE_0__["default"])());
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js":
+/*!*********************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js ***!
+ \*********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ isScrollParent)
+/* harmony export */ });
+/* harmony import */ var _getComputedStyle_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getComputedStyle.js */ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js");
+
+function isScrollParent(element) {
+ // Firefox wants us to check `-x` and `-y` variations as well
+ var _getComputedStyle = (0,_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element),
+ overflow = _getComputedStyle.overflow,
+ overflowX = _getComputedStyle.overflowX,
+ overflowY = _getComputedStyle.overflowY;
+
+ return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js":
+/*!*********************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js ***!
+ \*********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ isTableElement)
+/* harmony export */ });
+/* harmony import */ var _getNodeName_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js");
+
+function isTableElement(element) {
+ return ['table', 'td', 'th'].indexOf((0,_getNodeName_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element)) >= 0;
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js":
+/*!************************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js ***!
+ \************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ listScrollParents)
+/* harmony export */ });
+/* harmony import */ var _getScrollParent_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getScrollParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js");
+/* harmony import */ var _getParentNode_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getParentNode.js */ "./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js");
+/* harmony import */ var _getWindow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js");
+/* harmony import */ var _isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./isScrollParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js");
+
+
+
+
+/*
+given a DOM element, return the list of all scroll parents, up the list of ancesors
+until we get to the top window object. This list is what we attach scroll listeners
+to, because if any of these parent elements scroll, we'll need to re-calculate the
+reference element's position.
+*/
+
+function listScrollParents(element, list) {
+ var _element$ownerDocumen;
+
+ if (list === void 0) {
+ list = [];
+ }
+
+ var scrollParent = (0,_getScrollParent_js__WEBPACK_IMPORTED_MODULE_0__["default"])(element);
+ var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);
+ var win = (0,_getWindow_js__WEBPACK_IMPORTED_MODULE_1__["default"])(scrollParent);
+ var target = isBody ? [win].concat(win.visualViewport || [], (0,_isScrollParent_js__WEBPACK_IMPORTED_MODULE_2__["default"])(scrollParent) ? scrollParent : []) : scrollParent;
+ var updatedList = list.concat(target);
+ return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here
+ updatedList.concat(listScrollParents((0,_getParentNode_js__WEBPACK_IMPORTED_MODULE_3__["default"])(target)));
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/enums.js":
+/*!**************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/enums.js ***!
+ \**************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ afterMain: () => (/* binding */ afterMain),
+/* harmony export */ afterRead: () => (/* binding */ afterRead),
+/* harmony export */ afterWrite: () => (/* binding */ afterWrite),
+/* harmony export */ auto: () => (/* binding */ auto),
+/* harmony export */ basePlacements: () => (/* binding */ basePlacements),
+/* harmony export */ beforeMain: () => (/* binding */ beforeMain),
+/* harmony export */ beforeRead: () => (/* binding */ beforeRead),
+/* harmony export */ beforeWrite: () => (/* binding */ beforeWrite),
+/* harmony export */ bottom: () => (/* binding */ bottom),
+/* harmony export */ clippingParents: () => (/* binding */ clippingParents),
+/* harmony export */ end: () => (/* binding */ end),
+/* harmony export */ left: () => (/* binding */ left),
+/* harmony export */ main: () => (/* binding */ main),
+/* harmony export */ modifierPhases: () => (/* binding */ modifierPhases),
+/* harmony export */ placements: () => (/* binding */ placements),
+/* harmony export */ popper: () => (/* binding */ popper),
+/* harmony export */ read: () => (/* binding */ read),
+/* harmony export */ reference: () => (/* binding */ reference),
+/* harmony export */ right: () => (/* binding */ right),
+/* harmony export */ start: () => (/* binding */ start),
+/* harmony export */ top: () => (/* binding */ top),
+/* harmony export */ variationPlacements: () => (/* binding */ variationPlacements),
+/* harmony export */ viewport: () => (/* binding */ viewport),
+/* harmony export */ write: () => (/* binding */ write)
+/* harmony export */ });
+var top = 'top';
+var bottom = 'bottom';
+var right = 'right';
+var left = 'left';
+var auto = 'auto';
+var basePlacements = [top, bottom, right, left];
+var start = 'start';
+var end = 'end';
+var clippingParents = 'clippingParents';
+var viewport = 'viewport';
+var popper = 'popper';
+var reference = 'reference';
+var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {
+ return acc.concat([placement + "-" + start, placement + "-" + end]);
+}, []);
+var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {
+ return acc.concat([placement, placement + "-" + start, placement + "-" + end]);
+}, []); // modifiers that need to read the DOM
+
+var beforeRead = 'beforeRead';
+var read = 'read';
+var afterRead = 'afterRead'; // pure-logic modifiers
+
+var beforeMain = 'beforeMain';
+var main = 'main';
+var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)
+
+var beforeWrite = 'beforeWrite';
+var write = 'write';
+var afterWrite = 'afterWrite';
+var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/modifiers/applyStyles.js":
+/*!******************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/modifiers/applyStyles.js ***!
+ \******************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _dom_utils_getNodeName_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../dom-utils/getNodeName.js */ "./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js");
+/* harmony import */ var _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom-utils/instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
+
+ // This modifier takes the styles prepared by the `computeStyles` modifier
+// and applies them to the HTMLElements such as popper and arrow
+
+function applyStyles(_ref) {
+ var state = _ref.state;
+ Object.keys(state.elements).forEach(function (name) {
+ var style = state.styles[name] || {};
+ var attributes = state.attributes[name] || {};
+ var element = state.elements[name]; // arrow is optional + virtual elements
+
+ if (!(0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) || !(0,_dom_utils_getNodeName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element)) {
+ return;
+ } // Flow doesn't support to extend this property, but it's the most
+ // effective way to apply styles to an HTMLElement
+ // $FlowFixMe[cannot-write]
+
+
+ Object.assign(element.style, style);
+ Object.keys(attributes).forEach(function (name) {
+ var value = attributes[name];
+
+ if (value === false) {
+ element.removeAttribute(name);
+ } else {
+ element.setAttribute(name, value === true ? '' : value);
+ }
+ });
+ });
+}
+
+function effect(_ref2) {
+ var state = _ref2.state;
+ var initialStyles = {
+ popper: {
+ position: state.options.strategy,
+ left: '0',
+ top: '0',
+ margin: '0'
+ },
+ arrow: {
+ position: 'absolute'
+ },
+ reference: {}
+ };
+ Object.assign(state.elements.popper.style, initialStyles.popper);
+ state.styles = initialStyles;
+
+ if (state.elements.arrow) {
+ Object.assign(state.elements.arrow.style, initialStyles.arrow);
+ }
+
+ return function () {
+ Object.keys(state.elements).forEach(function (name) {
+ var element = state.elements[name];
+ var attributes = state.attributes[name] || {};
+ var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them
+
+ var style = styleProperties.reduce(function (style, property) {
+ style[property] = '';
+ return style;
+ }, {}); // arrow is optional + virtual elements
+
+ if (!(0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_0__.isHTMLElement)(element) || !(0,_dom_utils_getNodeName_js__WEBPACK_IMPORTED_MODULE_1__["default"])(element)) {
+ return;
+ }
+
+ Object.assign(element.style, style);
+ Object.keys(attributes).forEach(function (attribute) {
+ element.removeAttribute(attribute);
+ });
+ });
+ };
+} // eslint-disable-next-line import/no-unused-modules
+
+
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
+ name: 'applyStyles',
+ enabled: true,
+ phase: 'write',
+ fn: applyStyles,
+ effect: effect,
+ requires: ['computeStyles']
+});
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/modifiers/arrow.js":
+/*!************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/modifiers/arrow.js ***!
+ \************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js");
+/* harmony import */ var _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../dom-utils/getLayoutRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js");
+/* harmony import */ var _dom_utils_contains_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../dom-utils/contains.js */ "./node_modules/@popperjs/core/lib/dom-utils/contains.js");
+/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../dom-utils/getOffsetParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js");
+/* harmony import */ var _utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/getMainAxisFromPlacement.js */ "./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js");
+/* harmony import */ var _utils_within_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/within.js */ "./node_modules/@popperjs/core/lib/utils/within.js");
+/* harmony import */ var _utils_mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/mergePaddingObject.js */ "./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js");
+/* harmony import */ var _utils_expandToHashMap_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/expandToHashMap.js */ "./node_modules/@popperjs/core/lib/utils/expandToHashMap.js");
+/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js");
+
+
+
+
+
+
+
+
+ // eslint-disable-next-line import/no-unused-modules
+
+var toPaddingObject = function toPaddingObject(padding, state) {
+ padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {
+ placement: state.placement
+ })) : padding;
+ return (0,_utils_mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_0__["default"])(typeof padding !== 'number' ? padding : (0,_utils_expandToHashMap_js__WEBPACK_IMPORTED_MODULE_1__["default"])(padding, _enums_js__WEBPACK_IMPORTED_MODULE_2__.basePlacements));
+};
+
+function arrow(_ref) {
+ var _state$modifiersData$;
+
+ var state = _ref.state,
+ name = _ref.name,
+ options = _ref.options;
+ var arrowElement = state.elements.arrow;
+ var popperOffsets = state.modifiersData.popperOffsets;
+ var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(state.placement);
+ var axis = (0,_utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_4__["default"])(basePlacement);
+ var isVertical = [_enums_js__WEBPACK_IMPORTED_MODULE_2__.left, _enums_js__WEBPACK_IMPORTED_MODULE_2__.right].indexOf(basePlacement) >= 0;
+ var len = isVertical ? 'height' : 'width';
+
+ if (!arrowElement || !popperOffsets) {
+ return;
+ }
+
+ var paddingObject = toPaddingObject(options.padding, state);
+ var arrowRect = (0,_dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_5__["default"])(arrowElement);
+ var minProp = axis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_2__.top : _enums_js__WEBPACK_IMPORTED_MODULE_2__.left;
+ var maxProp = axis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_2__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_2__.right;
+ var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];
+ var startDiff = popperOffsets[axis] - state.rects.reference[axis];
+ var arrowOffsetParent = (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_6__["default"])(arrowElement);
+ var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;
+ var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is
+ // outside of the popper bounds
+
+ var min = paddingObject[minProp];
+ var max = clientSize - arrowRect[len] - paddingObject[maxProp];
+ var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;
+ var offset = (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_7__.within)(min, center, max); // Prevents breaking syntax highlighting...
+
+ var axisProp = axis;
+ state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);
+}
+
+function effect(_ref2) {
+ var state = _ref2.state,
+ options = _ref2.options;
+ var _options$element = options.element,
+ arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;
+
+ if (arrowElement == null) {
+ return;
+ } // CSS selector
+
+
+ if (typeof arrowElement === 'string') {
+ arrowElement = state.elements.popper.querySelector(arrowElement);
+
+ if (!arrowElement) {
+ return;
+ }
+ }
+
+ if (!(0,_dom_utils_contains_js__WEBPACK_IMPORTED_MODULE_8__["default"])(state.elements.popper, arrowElement)) {
+ return;
+ }
+
+ state.elements.arrow = arrowElement;
+} // eslint-disable-next-line import/no-unused-modules
+
+
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
+ name: 'arrow',
+ enabled: true,
+ phase: 'main',
+ fn: arrow,
+ effect: effect,
+ requires: ['popperOffsets'],
+ requiresIfExists: ['preventOverflow']
+});
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/modifiers/computeStyles.js":
+/*!********************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/modifiers/computeStyles.js ***!
+ \********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
+/* harmony export */ mapToStyles: () => (/* binding */ mapToStyles)
+/* harmony export */ });
+/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js");
+/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../dom-utils/getOffsetParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js");
+/* harmony import */ var _dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../dom-utils/getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js");
+/* harmony import */ var _dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../dom-utils/getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js");
+/* harmony import */ var _dom_utils_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../dom-utils/getComputedStyle.js */ "./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js");
+/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js");
+/* harmony import */ var _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/getVariation.js */ "./node_modules/@popperjs/core/lib/utils/getVariation.js");
+/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js");
+
+
+
+
+
+
+
+ // eslint-disable-next-line import/no-unused-modules
+
+var unsetSides = {
+ top: 'auto',
+ right: 'auto',
+ bottom: 'auto',
+ left: 'auto'
+}; // Round the offsets to the nearest suitable subpixel based on the DPR.
+// Zooming can change the DPR, but it seems to report a value that will
+// cleanly divide the values into the appropriate subpixels.
+
+function roundOffsetsByDPR(_ref, win) {
+ var x = _ref.x,
+ y = _ref.y;
+ var dpr = win.devicePixelRatio || 1;
+ return {
+ x: (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)(x * dpr) / dpr || 0,
+ y: (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_0__.round)(y * dpr) / dpr || 0
+ };
+}
+
+function mapToStyles(_ref2) {
+ var _Object$assign2;
+
+ var popper = _ref2.popper,
+ popperRect = _ref2.popperRect,
+ placement = _ref2.placement,
+ variation = _ref2.variation,
+ offsets = _ref2.offsets,
+ position = _ref2.position,
+ gpuAcceleration = _ref2.gpuAcceleration,
+ adaptive = _ref2.adaptive,
+ roundOffsets = _ref2.roundOffsets,
+ isFixed = _ref2.isFixed;
+ var _offsets$x = offsets.x,
+ x = _offsets$x === void 0 ? 0 : _offsets$x,
+ _offsets$y = offsets.y,
+ y = _offsets$y === void 0 ? 0 : _offsets$y;
+
+ var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({
+ x: x,
+ y: y
+ }) : {
+ x: x,
+ y: y
+ };
+
+ x = _ref3.x;
+ y = _ref3.y;
+ var hasX = offsets.hasOwnProperty('x');
+ var hasY = offsets.hasOwnProperty('y');
+ var sideX = _enums_js__WEBPACK_IMPORTED_MODULE_1__.left;
+ var sideY = _enums_js__WEBPACK_IMPORTED_MODULE_1__.top;
+ var win = window;
+
+ if (adaptive) {
+ var offsetParent = (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_2__["default"])(popper);
+ var heightProp = 'clientHeight';
+ var widthProp = 'clientWidth';
+
+ if (offsetParent === (0,_dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_3__["default"])(popper)) {
+ offsetParent = (0,_dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_4__["default"])(popper);
+
+ if ((0,_dom_utils_getComputedStyle_js__WEBPACK_IMPORTED_MODULE_5__["default"])(offsetParent).position !== 'static' && position === 'absolute') {
+ heightProp = 'scrollHeight';
+ widthProp = 'scrollWidth';
+ }
+ } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it
+
+
+ offsetParent = offsetParent;
+
+ if (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.top || (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.left || placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.right) && variation === _enums_js__WEBPACK_IMPORTED_MODULE_1__.end) {
+ sideY = _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom;
+ var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]
+ offsetParent[heightProp];
+ y -= offsetY - popperRect.height;
+ y *= gpuAcceleration ? 1 : -1;
+ }
+
+ if (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.left || (placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.top || placement === _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom) && variation === _enums_js__WEBPACK_IMPORTED_MODULE_1__.end) {
+ sideX = _enums_js__WEBPACK_IMPORTED_MODULE_1__.right;
+ var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]
+ offsetParent[widthProp];
+ x -= offsetX - popperRect.width;
+ x *= gpuAcceleration ? 1 : -1;
+ }
+ }
+
+ var commonStyles = Object.assign({
+ position: position
+ }, adaptive && unsetSides);
+
+ var _ref4 = roundOffsets === true ? roundOffsetsByDPR({
+ x: x,
+ y: y
+ }, (0,_dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_3__["default"])(popper)) : {
+ x: x,
+ y: y
+ };
+
+ x = _ref4.x;
+ y = _ref4.y;
+
+ if (gpuAcceleration) {
+ var _Object$assign;
+
+ return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? "translate(" + x + "px, " + y + "px)" : "translate3d(" + x + "px, " + y + "px, 0)", _Object$assign));
+ }
+
+ return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + "px" : '', _Object$assign2[sideX] = hasX ? x + "px" : '', _Object$assign2.transform = '', _Object$assign2));
+}
+
+function computeStyles(_ref5) {
+ var state = _ref5.state,
+ options = _ref5.options;
+ var _options$gpuAccelerat = options.gpuAcceleration,
+ gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,
+ _options$adaptive = options.adaptive,
+ adaptive = _options$adaptive === void 0 ? true : _options$adaptive,
+ _options$roundOffsets = options.roundOffsets,
+ roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;
+ var commonStyles = {
+ placement: (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_6__["default"])(state.placement),
+ variation: (0,_utils_getVariation_js__WEBPACK_IMPORTED_MODULE_7__["default"])(state.placement),
+ popper: state.elements.popper,
+ popperRect: state.rects.popper,
+ gpuAcceleration: gpuAcceleration,
+ isFixed: state.options.strategy === 'fixed'
+ };
+
+ if (state.modifiersData.popperOffsets != null) {
+ state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {
+ offsets: state.modifiersData.popperOffsets,
+ position: state.options.strategy,
+ adaptive: adaptive,
+ roundOffsets: roundOffsets
+ })));
+ }
+
+ if (state.modifiersData.arrow != null) {
+ state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {
+ offsets: state.modifiersData.arrow,
+ position: 'absolute',
+ adaptive: false,
+ roundOffsets: roundOffsets
+ })));
+ }
+
+ state.attributes.popper = Object.assign({}, state.attributes.popper, {
+ 'data-popper-placement': state.placement
+ });
+} // eslint-disable-next-line import/no-unused-modules
+
+
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
+ name: 'computeStyles',
+ enabled: true,
+ phase: 'beforeWrite',
+ fn: computeStyles,
+ data: {}
+});
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/modifiers/eventListeners.js":
+/*!*********************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/modifiers/eventListeners.js ***!
+ \*********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../dom-utils/getWindow.js */ "./node_modules/@popperjs/core/lib/dom-utils/getWindow.js");
+ // eslint-disable-next-line import/no-unused-modules
+
+var passive = {
+ passive: true
+};
+
+function effect(_ref) {
+ var state = _ref.state,
+ instance = _ref.instance,
+ options = _ref.options;
+ var _options$scroll = options.scroll,
+ scroll = _options$scroll === void 0 ? true : _options$scroll,
+ _options$resize = options.resize,
+ resize = _options$resize === void 0 ? true : _options$resize;
+ var window = (0,_dom_utils_getWindow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(state.elements.popper);
+ var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);
+
+ if (scroll) {
+ scrollParents.forEach(function (scrollParent) {
+ scrollParent.addEventListener('scroll', instance.update, passive);
+ });
+ }
+
+ if (resize) {
+ window.addEventListener('resize', instance.update, passive);
+ }
+
+ return function () {
+ if (scroll) {
+ scrollParents.forEach(function (scrollParent) {
+ scrollParent.removeEventListener('scroll', instance.update, passive);
+ });
+ }
+
+ if (resize) {
+ window.removeEventListener('resize', instance.update, passive);
+ }
+ };
+} // eslint-disable-next-line import/no-unused-modules
+
+
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
+ name: 'eventListeners',
+ enabled: true,
+ phase: 'write',
+ fn: function fn() {},
+ effect: effect,
+ data: {}
+});
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/modifiers/flip.js":
+/*!***********************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/modifiers/flip.js ***!
+ \***********************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/getOppositePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js");
+/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js");
+/* harmony import */ var _utils_getOppositeVariationPlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/getOppositeVariationPlacement.js */ "./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js");
+/* harmony import */ var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/detectOverflow.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js");
+/* harmony import */ var _utils_computeAutoPlacement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/computeAutoPlacement.js */ "./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js");
+/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js");
+/* harmony import */ var _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../utils/getVariation.js */ "./node_modules/@popperjs/core/lib/utils/getVariation.js");
+
+
+
+
+
+
+ // eslint-disable-next-line import/no-unused-modules
+
+function getExpandedFallbackPlacements(placement) {
+ if ((0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement) === _enums_js__WEBPACK_IMPORTED_MODULE_1__.auto) {
+ return [];
+ }
+
+ var oppositePlacement = (0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(placement);
+ return [(0,_utils_getOppositeVariationPlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(placement), oppositePlacement, (0,_utils_getOppositeVariationPlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(oppositePlacement)];
+}
+
+function flip(_ref) {
+ var state = _ref.state,
+ options = _ref.options,
+ name = _ref.name;
+
+ if (state.modifiersData[name]._skip) {
+ return;
+ }
+
+ var _options$mainAxis = options.mainAxis,
+ checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,
+ _options$altAxis = options.altAxis,
+ checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,
+ specifiedFallbackPlacements = options.fallbackPlacements,
+ padding = options.padding,
+ boundary = options.boundary,
+ rootBoundary = options.rootBoundary,
+ altBoundary = options.altBoundary,
+ _options$flipVariatio = options.flipVariations,
+ flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,
+ allowedAutoPlacements = options.allowedAutoPlacements;
+ var preferredPlacement = state.options.placement;
+ var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(preferredPlacement);
+ var isBasePlacement = basePlacement === preferredPlacement;
+ var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [(0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));
+ var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {
+ return acc.concat((0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement) === _enums_js__WEBPACK_IMPORTED_MODULE_1__.auto ? (0,_utils_computeAutoPlacement_js__WEBPACK_IMPORTED_MODULE_4__["default"])(state, {
+ placement: placement,
+ boundary: boundary,
+ rootBoundary: rootBoundary,
+ padding: padding,
+ flipVariations: flipVariations,
+ allowedAutoPlacements: allowedAutoPlacements
+ }) : placement);
+ }, []);
+ var referenceRect = state.rects.reference;
+ var popperRect = state.rects.popper;
+ var checksMap = new Map();
+ var makeFallbackChecks = true;
+ var firstFittingPlacement = placements[0];
+
+ for (var i = 0; i < placements.length; i++) {
+ var placement = placements[i];
+
+ var _basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement);
+
+ var isStartVariation = (0,_utils_getVariation_js__WEBPACK_IMPORTED_MODULE_5__["default"])(placement) === _enums_js__WEBPACK_IMPORTED_MODULE_1__.start;
+ var isVertical = [_enums_js__WEBPACK_IMPORTED_MODULE_1__.top, _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom].indexOf(_basePlacement) >= 0;
+ var len = isVertical ? 'width' : 'height';
+ var overflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_6__["default"])(state, {
+ placement: placement,
+ boundary: boundary,
+ rootBoundary: rootBoundary,
+ altBoundary: altBoundary,
+ padding: padding
+ });
+ var mainVariationSide = isVertical ? isStartVariation ? _enums_js__WEBPACK_IMPORTED_MODULE_1__.right : _enums_js__WEBPACK_IMPORTED_MODULE_1__.left : isStartVariation ? _enums_js__WEBPACK_IMPORTED_MODULE_1__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_1__.top;
+
+ if (referenceRect[len] > popperRect[len]) {
+ mainVariationSide = (0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(mainVariationSide);
+ }
+
+ var altVariationSide = (0,_utils_getOppositePlacement_js__WEBPACK_IMPORTED_MODULE_2__["default"])(mainVariationSide);
+ var checks = [];
+
+ if (checkMainAxis) {
+ checks.push(overflow[_basePlacement] <= 0);
+ }
+
+ if (checkAltAxis) {
+ checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);
+ }
+
+ if (checks.every(function (check) {
+ return check;
+ })) {
+ firstFittingPlacement = placement;
+ makeFallbackChecks = false;
+ break;
+ }
+
+ checksMap.set(placement, checks);
+ }
+
+ if (makeFallbackChecks) {
+ // `2` may be desired in some cases – research later
+ var numberOfChecks = flipVariations ? 3 : 1;
+
+ var _loop = function _loop(_i) {
+ var fittingPlacement = placements.find(function (placement) {
+ var checks = checksMap.get(placement);
+
+ if (checks) {
+ return checks.slice(0, _i).every(function (check) {
+ return check;
+ });
+ }
+ });
+
+ if (fittingPlacement) {
+ firstFittingPlacement = fittingPlacement;
+ return "break";
+ }
+ };
+
+ for (var _i = numberOfChecks; _i > 0; _i--) {
+ var _ret = _loop(_i);
+
+ if (_ret === "break") break;
+ }
+ }
+
+ if (state.placement !== firstFittingPlacement) {
+ state.modifiersData[name]._skip = true;
+ state.placement = firstFittingPlacement;
+ state.reset = true;
+ }
+} // eslint-disable-next-line import/no-unused-modules
+
+
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
+ name: 'flip',
+ enabled: true,
+ phase: 'main',
+ fn: flip,
+ requiresIfExists: ['offset'],
+ data: {
+ _skip: false
+ }
+});
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/modifiers/hide.js":
+/*!***********************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/modifiers/hide.js ***!
+ \***********************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js");
+/* harmony import */ var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/detectOverflow.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js");
+
+
+
+function getSideOffsets(overflow, rect, preventedOffsets) {
+ if (preventedOffsets === void 0) {
+ preventedOffsets = {
+ x: 0,
+ y: 0
+ };
+ }
+
+ return {
+ top: overflow.top - rect.height - preventedOffsets.y,
+ right: overflow.right - rect.width + preventedOffsets.x,
+ bottom: overflow.bottom - rect.height + preventedOffsets.y,
+ left: overflow.left - rect.width - preventedOffsets.x
+ };
+}
+
+function isAnySideFullyClipped(overflow) {
+ return [_enums_js__WEBPACK_IMPORTED_MODULE_0__.top, _enums_js__WEBPACK_IMPORTED_MODULE_0__.right, _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom, _enums_js__WEBPACK_IMPORTED_MODULE_0__.left].some(function (side) {
+ return overflow[side] >= 0;
+ });
+}
+
+function hide(_ref) {
+ var state = _ref.state,
+ name = _ref.name;
+ var referenceRect = state.rects.reference;
+ var popperRect = state.rects.popper;
+ var preventedOffsets = state.modifiersData.preventOverflow;
+ var referenceOverflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_1__["default"])(state, {
+ elementContext: 'reference'
+ });
+ var popperAltOverflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_1__["default"])(state, {
+ altBoundary: true
+ });
+ var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);
+ var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);
+ var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);
+ var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);
+ state.modifiersData[name] = {
+ referenceClippingOffsets: referenceClippingOffsets,
+ popperEscapeOffsets: popperEscapeOffsets,
+ isReferenceHidden: isReferenceHidden,
+ hasPopperEscaped: hasPopperEscaped
+ };
+ state.attributes.popper = Object.assign({}, state.attributes.popper, {
+ 'data-popper-reference-hidden': isReferenceHidden,
+ 'data-popper-escaped': hasPopperEscaped
+ });
+} // eslint-disable-next-line import/no-unused-modules
+
+
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
+ name: 'hide',
+ enabled: true,
+ phase: 'main',
+ requiresIfExists: ['preventOverflow'],
+ fn: hide
+});
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/modifiers/index.js":
+/*!************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/modifiers/index.js ***!
+ \************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ applyStyles: () => (/* reexport safe */ _applyStyles_js__WEBPACK_IMPORTED_MODULE_0__["default"]),
+/* harmony export */ arrow: () => (/* reexport safe */ _arrow_js__WEBPACK_IMPORTED_MODULE_1__["default"]),
+/* harmony export */ computeStyles: () => (/* reexport safe */ _computeStyles_js__WEBPACK_IMPORTED_MODULE_2__["default"]),
+/* harmony export */ eventListeners: () => (/* reexport safe */ _eventListeners_js__WEBPACK_IMPORTED_MODULE_3__["default"]),
+/* harmony export */ flip: () => (/* reexport safe */ _flip_js__WEBPACK_IMPORTED_MODULE_4__["default"]),
+/* harmony export */ hide: () => (/* reexport safe */ _hide_js__WEBPACK_IMPORTED_MODULE_5__["default"]),
+/* harmony export */ offset: () => (/* reexport safe */ _offset_js__WEBPACK_IMPORTED_MODULE_6__["default"]),
+/* harmony export */ popperOffsets: () => (/* reexport safe */ _popperOffsets_js__WEBPACK_IMPORTED_MODULE_7__["default"]),
+/* harmony export */ preventOverflow: () => (/* reexport safe */ _preventOverflow_js__WEBPACK_IMPORTED_MODULE_8__["default"])
+/* harmony export */ });
+/* harmony import */ var _applyStyles_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./applyStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/applyStyles.js");
+/* harmony import */ var _arrow_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./arrow.js */ "./node_modules/@popperjs/core/lib/modifiers/arrow.js");
+/* harmony import */ var _computeStyles_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./computeStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/computeStyles.js");
+/* harmony import */ var _eventListeners_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./eventListeners.js */ "./node_modules/@popperjs/core/lib/modifiers/eventListeners.js");
+/* harmony import */ var _flip_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./flip.js */ "./node_modules/@popperjs/core/lib/modifiers/flip.js");
+/* harmony import */ var _hide_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./hide.js */ "./node_modules/@popperjs/core/lib/modifiers/hide.js");
+/* harmony import */ var _offset_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./offset.js */ "./node_modules/@popperjs/core/lib/modifiers/offset.js");
+/* harmony import */ var _popperOffsets_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./popperOffsets.js */ "./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js");
+/* harmony import */ var _preventOverflow_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./preventOverflow.js */ "./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js");
+
+
+
+
+
+
+
+
+
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/modifiers/offset.js":
+/*!*************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/modifiers/offset.js ***!
+ \*************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
+/* harmony export */ distanceAndSkiddingToXY: () => (/* binding */ distanceAndSkiddingToXY)
+/* harmony export */ });
+/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js");
+/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js");
+
+ // eslint-disable-next-line import/no-unused-modules
+
+function distanceAndSkiddingToXY(placement, rects, offset) {
+ var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement);
+ var invertDistance = [_enums_js__WEBPACK_IMPORTED_MODULE_1__.left, _enums_js__WEBPACK_IMPORTED_MODULE_1__.top].indexOf(basePlacement) >= 0 ? -1 : 1;
+
+ var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {
+ placement: placement
+ })) : offset,
+ skidding = _ref[0],
+ distance = _ref[1];
+
+ skidding = skidding || 0;
+ distance = (distance || 0) * invertDistance;
+ return [_enums_js__WEBPACK_IMPORTED_MODULE_1__.left, _enums_js__WEBPACK_IMPORTED_MODULE_1__.right].indexOf(basePlacement) >= 0 ? {
+ x: distance,
+ y: skidding
+ } : {
+ x: skidding,
+ y: distance
+ };
+}
+
+function offset(_ref2) {
+ var state = _ref2.state,
+ options = _ref2.options,
+ name = _ref2.name;
+ var _options$offset = options.offset,
+ offset = _options$offset === void 0 ? [0, 0] : _options$offset;
+ var data = _enums_js__WEBPACK_IMPORTED_MODULE_1__.placements.reduce(function (acc, placement) {
+ acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);
+ return acc;
+ }, {});
+ var _data$state$placement = data[state.placement],
+ x = _data$state$placement.x,
+ y = _data$state$placement.y;
+
+ if (state.modifiersData.popperOffsets != null) {
+ state.modifiersData.popperOffsets.x += x;
+ state.modifiersData.popperOffsets.y += y;
+ }
+
+ state.modifiersData[name] = data;
+} // eslint-disable-next-line import/no-unused-modules
+
+
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
+ name: 'offset',
+ enabled: true,
+ phase: 'main',
+ requires: ['popperOffsets'],
+ fn: offset
+});
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js":
+/*!********************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js ***!
+ \********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _utils_computeOffsets_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/computeOffsets.js */ "./node_modules/@popperjs/core/lib/utils/computeOffsets.js");
+
+
+function popperOffsets(_ref) {
+ var state = _ref.state,
+ name = _ref.name;
+ // Offsets are the actual position the popper needs to have to be
+ // properly positioned near its reference element
+ // This is the most basic placement, and will be adjusted by
+ // the modifiers in the next step
+ state.modifiersData[name] = (0,_utils_computeOffsets_js__WEBPACK_IMPORTED_MODULE_0__["default"])({
+ reference: state.rects.reference,
+ element: state.rects.popper,
+ strategy: 'absolute',
+ placement: state.placement
+ });
+} // eslint-disable-next-line import/no-unused-modules
+
+
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
+ name: 'popperOffsets',
+ enabled: true,
+ phase: 'read',
+ fn: popperOffsets,
+ data: {}
+});
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js":
+/*!**********************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js ***!
+ \**********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js");
+/* harmony import */ var _utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js");
+/* harmony import */ var _utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils/getMainAxisFromPlacement.js */ "./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js");
+/* harmony import */ var _utils_getAltAxis_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils/getAltAxis.js */ "./node_modules/@popperjs/core/lib/utils/getAltAxis.js");
+/* harmony import */ var _utils_within_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../utils/within.js */ "./node_modules/@popperjs/core/lib/utils/within.js");
+/* harmony import */ var _dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../dom-utils/getLayoutRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js");
+/* harmony import */ var _dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../dom-utils/getOffsetParent.js */ "./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js");
+/* harmony import */ var _utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/detectOverflow.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js");
+/* harmony import */ var _utils_getVariation_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/getVariation.js */ "./node_modules/@popperjs/core/lib/utils/getVariation.js");
+/* harmony import */ var _utils_getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/getFreshSideObject.js */ "./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js");
+/* harmony import */ var _utils_math_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../utils/math.js */ "./node_modules/@popperjs/core/lib/utils/math.js");
+
+
+
+
+
+
+
+
+
+
+
+
+function preventOverflow(_ref) {
+ var state = _ref.state,
+ options = _ref.options,
+ name = _ref.name;
+ var _options$mainAxis = options.mainAxis,
+ checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,
+ _options$altAxis = options.altAxis,
+ checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,
+ boundary = options.boundary,
+ rootBoundary = options.rootBoundary,
+ altBoundary = options.altBoundary,
+ padding = options.padding,
+ _options$tether = options.tether,
+ tether = _options$tether === void 0 ? true : _options$tether,
+ _options$tetherOffset = options.tetherOffset,
+ tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;
+ var overflow = (0,_utils_detectOverflow_js__WEBPACK_IMPORTED_MODULE_0__["default"])(state, {
+ boundary: boundary,
+ rootBoundary: rootBoundary,
+ padding: padding,
+ altBoundary: altBoundary
+ });
+ var basePlacement = (0,_utils_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_1__["default"])(state.placement);
+ var variation = (0,_utils_getVariation_js__WEBPACK_IMPORTED_MODULE_2__["default"])(state.placement);
+ var isBasePlacement = !variation;
+ var mainAxis = (0,_utils_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(basePlacement);
+ var altAxis = (0,_utils_getAltAxis_js__WEBPACK_IMPORTED_MODULE_4__["default"])(mainAxis);
+ var popperOffsets = state.modifiersData.popperOffsets;
+ var referenceRect = state.rects.reference;
+ var popperRect = state.rects.popper;
+ var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {
+ placement: state.placement
+ })) : tetherOffset;
+ var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {
+ mainAxis: tetherOffsetValue,
+ altAxis: tetherOffsetValue
+ } : Object.assign({
+ mainAxis: 0,
+ altAxis: 0
+ }, tetherOffsetValue);
+ var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;
+ var data = {
+ x: 0,
+ y: 0
+ };
+
+ if (!popperOffsets) {
+ return;
+ }
+
+ if (checkMainAxis) {
+ var _offsetModifierState$;
+
+ var mainSide = mainAxis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.top : _enums_js__WEBPACK_IMPORTED_MODULE_5__.left;
+ var altSide = mainAxis === 'y' ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_5__.right;
+ var len = mainAxis === 'y' ? 'height' : 'width';
+ var offset = popperOffsets[mainAxis];
+ var min = offset + overflow[mainSide];
+ var max = offset - overflow[altSide];
+ var additive = tether ? -popperRect[len] / 2 : 0;
+ var minLen = variation === _enums_js__WEBPACK_IMPORTED_MODULE_5__.start ? referenceRect[len] : popperRect[len];
+ var maxLen = variation === _enums_js__WEBPACK_IMPORTED_MODULE_5__.start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go
+ // outside the reference bounds
+
+ var arrowElement = state.elements.arrow;
+ var arrowRect = tether && arrowElement ? (0,_dom_utils_getLayoutRect_js__WEBPACK_IMPORTED_MODULE_6__["default"])(arrowElement) : {
+ width: 0,
+ height: 0
+ };
+ var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : (0,_utils_getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_7__["default"])();
+ var arrowPaddingMin = arrowPaddingObject[mainSide];
+ var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want
+ // to include its full size in the calculation. If the reference is small
+ // and near the edge of a boundary, the popper can overflow even if the
+ // reference is not overflowing as well (e.g. virtual elements with no
+ // width or height)
+
+ var arrowLen = (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_8__.within)(0, referenceRect[len], arrowRect[len]);
+ var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;
+ var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;
+ var arrowOffsetParent = state.elements.arrow && (0,_dom_utils_getOffsetParent_js__WEBPACK_IMPORTED_MODULE_9__["default"])(state.elements.arrow);
+ var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;
+ var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;
+ var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;
+ var tetherMax = offset + maxOffset - offsetModifierValue;
+ var preventedOffset = (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_8__.within)(tether ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_10__.min)(min, tetherMin) : min, offset, tether ? (0,_utils_math_js__WEBPACK_IMPORTED_MODULE_10__.max)(max, tetherMax) : max);
+ popperOffsets[mainAxis] = preventedOffset;
+ data[mainAxis] = preventedOffset - offset;
+ }
+
+ if (checkAltAxis) {
+ var _offsetModifierState$2;
+
+ var _mainSide = mainAxis === 'x' ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.top : _enums_js__WEBPACK_IMPORTED_MODULE_5__.left;
+
+ var _altSide = mainAxis === 'x' ? _enums_js__WEBPACK_IMPORTED_MODULE_5__.bottom : _enums_js__WEBPACK_IMPORTED_MODULE_5__.right;
+
+ var _offset = popperOffsets[altAxis];
+
+ var _len = altAxis === 'y' ? 'height' : 'width';
+
+ var _min = _offset + overflow[_mainSide];
+
+ var _max = _offset - overflow[_altSide];
+
+ var isOriginSide = [_enums_js__WEBPACK_IMPORTED_MODULE_5__.top, _enums_js__WEBPACK_IMPORTED_MODULE_5__.left].indexOf(basePlacement) !== -1;
+
+ var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;
+
+ var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;
+
+ var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;
+
+ var _preventedOffset = tether && isOriginSide ? (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_8__.withinMaxClamp)(_tetherMin, _offset, _tetherMax) : (0,_utils_within_js__WEBPACK_IMPORTED_MODULE_8__.within)(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);
+
+ popperOffsets[altAxis] = _preventedOffset;
+ data[altAxis] = _preventedOffset - _offset;
+ }
+
+ state.modifiersData[name] = data;
+} // eslint-disable-next-line import/no-unused-modules
+
+
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({
+ name: 'preventOverflow',
+ enabled: true,
+ phase: 'main',
+ fn: preventOverflow,
+ requiresIfExists: ['offset']
+});
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/popper-lite.js":
+/*!********************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/popper-lite.js ***!
+ \********************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ createPopper: () => (/* binding */ createPopper),
+/* harmony export */ defaultModifiers: () => (/* binding */ defaultModifiers),
+/* harmony export */ detectOverflow: () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_5__["default"]),
+/* harmony export */ popperGenerator: () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_4__.popperGenerator)
+/* harmony export */ });
+/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./createPopper.js */ "./node_modules/@popperjs/core/lib/createPopper.js");
+/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./createPopper.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js");
+/* harmony import */ var _modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modifiers/eventListeners.js */ "./node_modules/@popperjs/core/lib/modifiers/eventListeners.js");
+/* harmony import */ var _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/popperOffsets.js */ "./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js");
+/* harmony import */ var _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modifiers/computeStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/computeStyles.js");
+/* harmony import */ var _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modifiers/applyStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/applyStyles.js");
+
+
+
+
+
+var defaultModifiers = [_modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__["default"], _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__["default"], _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__["default"], _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__["default"]];
+var createPopper = /*#__PURE__*/(0,_createPopper_js__WEBPACK_IMPORTED_MODULE_4__.popperGenerator)({
+ defaultModifiers: defaultModifiers
+}); // eslint-disable-next-line import/no-unused-modules
+
+
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/popper.js":
+/*!***************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/popper.js ***!
+ \***************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ applyStyles: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.applyStyles),
+/* harmony export */ arrow: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.arrow),
+/* harmony export */ computeStyles: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.computeStyles),
+/* harmony export */ createPopper: () => (/* binding */ createPopper),
+/* harmony export */ createPopperLite: () => (/* reexport safe */ _popper_lite_js__WEBPACK_IMPORTED_MODULE_11__.createPopper),
+/* harmony export */ defaultModifiers: () => (/* binding */ defaultModifiers),
+/* harmony export */ detectOverflow: () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_10__["default"]),
+/* harmony export */ eventListeners: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.eventListeners),
+/* harmony export */ flip: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.flip),
+/* harmony export */ hide: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.hide),
+/* harmony export */ offset: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.offset),
+/* harmony export */ popperGenerator: () => (/* reexport safe */ _createPopper_js__WEBPACK_IMPORTED_MODULE_9__.popperGenerator),
+/* harmony export */ popperOffsets: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.popperOffsets),
+/* harmony export */ preventOverflow: () => (/* reexport safe */ _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__.preventOverflow)
+/* harmony export */ });
+/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./createPopper.js */ "./node_modules/@popperjs/core/lib/createPopper.js");
+/* harmony import */ var _createPopper_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./createPopper.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js");
+/* harmony import */ var _modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modifiers/eventListeners.js */ "./node_modules/@popperjs/core/lib/modifiers/eventListeners.js");
+/* harmony import */ var _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./modifiers/popperOffsets.js */ "./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js");
+/* harmony import */ var _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./modifiers/computeStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/computeStyles.js");
+/* harmony import */ var _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./modifiers/applyStyles.js */ "./node_modules/@popperjs/core/lib/modifiers/applyStyles.js");
+/* harmony import */ var _modifiers_offset_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modifiers/offset.js */ "./node_modules/@popperjs/core/lib/modifiers/offset.js");
+/* harmony import */ var _modifiers_flip_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modifiers/flip.js */ "./node_modules/@popperjs/core/lib/modifiers/flip.js");
+/* harmony import */ var _modifiers_preventOverflow_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./modifiers/preventOverflow.js */ "./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js");
+/* harmony import */ var _modifiers_arrow_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./modifiers/arrow.js */ "./node_modules/@popperjs/core/lib/modifiers/arrow.js");
+/* harmony import */ var _modifiers_hide_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./modifiers/hide.js */ "./node_modules/@popperjs/core/lib/modifiers/hide.js");
+/* harmony import */ var _popper_lite_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./popper-lite.js */ "./node_modules/@popperjs/core/lib/popper-lite.js");
+/* harmony import */ var _modifiers_index_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./modifiers/index.js */ "./node_modules/@popperjs/core/lib/modifiers/index.js");
+
+
+
+
+
+
+
+
+
+
+var defaultModifiers = [_modifiers_eventListeners_js__WEBPACK_IMPORTED_MODULE_0__["default"], _modifiers_popperOffsets_js__WEBPACK_IMPORTED_MODULE_1__["default"], _modifiers_computeStyles_js__WEBPACK_IMPORTED_MODULE_2__["default"], _modifiers_applyStyles_js__WEBPACK_IMPORTED_MODULE_3__["default"], _modifiers_offset_js__WEBPACK_IMPORTED_MODULE_4__["default"], _modifiers_flip_js__WEBPACK_IMPORTED_MODULE_5__["default"], _modifiers_preventOverflow_js__WEBPACK_IMPORTED_MODULE_6__["default"], _modifiers_arrow_js__WEBPACK_IMPORTED_MODULE_7__["default"], _modifiers_hide_js__WEBPACK_IMPORTED_MODULE_8__["default"]];
+var createPopper = /*#__PURE__*/(0,_createPopper_js__WEBPACK_IMPORTED_MODULE_9__.popperGenerator)({
+ defaultModifiers: defaultModifiers
+}); // eslint-disable-next-line import/no-unused-modules
+
+ // eslint-disable-next-line import/no-unused-modules
+
+ // eslint-disable-next-line import/no-unused-modules
+
+
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js":
+/*!***********************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js ***!
+ \***********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ computeAutoPlacement)
+/* harmony export */ });
+/* harmony import */ var _getVariation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getVariation.js */ "./node_modules/@popperjs/core/lib/utils/getVariation.js");
+/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js");
+/* harmony import */ var _detectOverflow_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./detectOverflow.js */ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js");
+/* harmony import */ var _getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js");
+
+
+
+
+function computeAutoPlacement(state, options) {
+ if (options === void 0) {
+ options = {};
+ }
+
+ var _options = options,
+ placement = _options.placement,
+ boundary = _options.boundary,
+ rootBoundary = _options.rootBoundary,
+ padding = _options.padding,
+ flipVariations = _options.flipVariations,
+ _options$allowedAutoP = _options.allowedAutoPlacements,
+ allowedAutoPlacements = _options$allowedAutoP === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.placements : _options$allowedAutoP;
+ var variation = (0,_getVariation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(placement);
+ var placements = variation ? flipVariations ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.variationPlacements : _enums_js__WEBPACK_IMPORTED_MODULE_0__.variationPlacements.filter(function (placement) {
+ return (0,_getVariation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(placement) === variation;
+ }) : _enums_js__WEBPACK_IMPORTED_MODULE_0__.basePlacements;
+ var allowedPlacements = placements.filter(function (placement) {
+ return allowedAutoPlacements.indexOf(placement) >= 0;
+ });
+
+ if (allowedPlacements.length === 0) {
+ allowedPlacements = placements;
+ } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...
+
+
+ var overflows = allowedPlacements.reduce(function (acc, placement) {
+ acc[placement] = (0,_detectOverflow_js__WEBPACK_IMPORTED_MODULE_2__["default"])(state, {
+ placement: placement,
+ boundary: boundary,
+ rootBoundary: rootBoundary,
+ padding: padding
+ })[(0,_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(placement)];
+ return acc;
+ }, {});
+ return Object.keys(overflows).sort(function (a, b) {
+ return overflows[a] - overflows[b];
+ });
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/utils/computeOffsets.js":
+/*!*****************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/utils/computeOffsets.js ***!
+ \*****************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ computeOffsets)
+/* harmony export */ });
+/* harmony import */ var _getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getBasePlacement.js */ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js");
+/* harmony import */ var _getVariation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./getVariation.js */ "./node_modules/@popperjs/core/lib/utils/getVariation.js");
+/* harmony import */ var _getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./getMainAxisFromPlacement.js */ "./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js");
+/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js");
+
+
+
+
+function computeOffsets(_ref) {
+ var reference = _ref.reference,
+ element = _ref.element,
+ placement = _ref.placement;
+ var basePlacement = placement ? (0,_getBasePlacement_js__WEBPACK_IMPORTED_MODULE_0__["default"])(placement) : null;
+ var variation = placement ? (0,_getVariation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(placement) : null;
+ var commonX = reference.x + reference.width / 2 - element.width / 2;
+ var commonY = reference.y + reference.height / 2 - element.height / 2;
+ var offsets;
+
+ switch (basePlacement) {
+ case _enums_js__WEBPACK_IMPORTED_MODULE_2__.top:
+ offsets = {
+ x: commonX,
+ y: reference.y - element.height
+ };
+ break;
+
+ case _enums_js__WEBPACK_IMPORTED_MODULE_2__.bottom:
+ offsets = {
+ x: commonX,
+ y: reference.y + reference.height
+ };
+ break;
+
+ case _enums_js__WEBPACK_IMPORTED_MODULE_2__.right:
+ offsets = {
+ x: reference.x + reference.width,
+ y: commonY
+ };
+ break;
+
+ case _enums_js__WEBPACK_IMPORTED_MODULE_2__.left:
+ offsets = {
+ x: reference.x - element.width,
+ y: commonY
+ };
+ break;
+
+ default:
+ offsets = {
+ x: reference.x,
+ y: reference.y
+ };
+ }
+
+ var mainAxis = basePlacement ? (0,_getMainAxisFromPlacement_js__WEBPACK_IMPORTED_MODULE_3__["default"])(basePlacement) : null;
+
+ if (mainAxis != null) {
+ var len = mainAxis === 'y' ? 'height' : 'width';
+
+ switch (variation) {
+ case _enums_js__WEBPACK_IMPORTED_MODULE_2__.start:
+ offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);
+ break;
+
+ case _enums_js__WEBPACK_IMPORTED_MODULE_2__.end:
+ offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);
+ break;
+
+ default:
+ }
+ }
+
+ return offsets;
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/utils/debounce.js":
+/*!***********************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/utils/debounce.js ***!
+ \***********************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ debounce)
+/* harmony export */ });
+function debounce(fn) {
+ var pending;
+ return function () {
+ if (!pending) {
+ pending = new Promise(function (resolve) {
+ Promise.resolve().then(function () {
+ pending = undefined;
+ resolve(fn());
+ });
+ });
+ }
+
+ return pending;
+ };
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/utils/detectOverflow.js":
+/*!*****************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/utils/detectOverflow.js ***!
+ \*****************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ detectOverflow)
+/* harmony export */ });
+/* harmony import */ var _dom_utils_getClippingRect_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../dom-utils/getClippingRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js");
+/* harmony import */ var _dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../dom-utils/getDocumentElement.js */ "./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js");
+/* harmony import */ var _dom_utils_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../dom-utils/getBoundingClientRect.js */ "./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js");
+/* harmony import */ var _computeOffsets_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./computeOffsets.js */ "./node_modules/@popperjs/core/lib/utils/computeOffsets.js");
+/* harmony import */ var _rectToClientRect_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./rectToClientRect.js */ "./node_modules/@popperjs/core/lib/utils/rectToClientRect.js");
+/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js");
+/* harmony import */ var _dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../dom-utils/instanceOf.js */ "./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js");
+/* harmony import */ var _mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./mergePaddingObject.js */ "./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js");
+/* harmony import */ var _expandToHashMap_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./expandToHashMap.js */ "./node_modules/@popperjs/core/lib/utils/expandToHashMap.js");
+
+
+
+
+
+
+
+
+ // eslint-disable-next-line import/no-unused-modules
+
+function detectOverflow(state, options) {
+ if (options === void 0) {
+ options = {};
+ }
+
+ var _options = options,
+ _options$placement = _options.placement,
+ placement = _options$placement === void 0 ? state.placement : _options$placement,
+ _options$strategy = _options.strategy,
+ strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,
+ _options$boundary = _options.boundary,
+ boundary = _options$boundary === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.clippingParents : _options$boundary,
+ _options$rootBoundary = _options.rootBoundary,
+ rootBoundary = _options$rootBoundary === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.viewport : _options$rootBoundary,
+ _options$elementConte = _options.elementContext,
+ elementContext = _options$elementConte === void 0 ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper : _options$elementConte,
+ _options$altBoundary = _options.altBoundary,
+ altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,
+ _options$padding = _options.padding,
+ padding = _options$padding === void 0 ? 0 : _options$padding;
+ var paddingObject = (0,_mergePaddingObject_js__WEBPACK_IMPORTED_MODULE_1__["default"])(typeof padding !== 'number' ? padding : (0,_expandToHashMap_js__WEBPACK_IMPORTED_MODULE_2__["default"])(padding, _enums_js__WEBPACK_IMPORTED_MODULE_0__.basePlacements));
+ var altContext = elementContext === _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper ? _enums_js__WEBPACK_IMPORTED_MODULE_0__.reference : _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper;
+ var popperRect = state.rects.popper;
+ var element = state.elements[altBoundary ? altContext : elementContext];
+ var clippingClientRect = (0,_dom_utils_getClippingRect_js__WEBPACK_IMPORTED_MODULE_3__["default"])((0,_dom_utils_instanceOf_js__WEBPACK_IMPORTED_MODULE_4__.isElement)(element) ? element : element.contextElement || (0,_dom_utils_getDocumentElement_js__WEBPACK_IMPORTED_MODULE_5__["default"])(state.elements.popper), boundary, rootBoundary, strategy);
+ var referenceClientRect = (0,_dom_utils_getBoundingClientRect_js__WEBPACK_IMPORTED_MODULE_6__["default"])(state.elements.reference);
+ var popperOffsets = (0,_computeOffsets_js__WEBPACK_IMPORTED_MODULE_7__["default"])({
+ reference: referenceClientRect,
+ element: popperRect,
+ strategy: 'absolute',
+ placement: placement
+ });
+ var popperClientRect = (0,_rectToClientRect_js__WEBPACK_IMPORTED_MODULE_8__["default"])(Object.assign({}, popperRect, popperOffsets));
+ var elementClientRect = elementContext === _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect
+ // 0 or negative = within the clipping rect
+
+ var overflowOffsets = {
+ top: clippingClientRect.top - elementClientRect.top + paddingObject.top,
+ bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,
+ left: clippingClientRect.left - elementClientRect.left + paddingObject.left,
+ right: elementClientRect.right - clippingClientRect.right + paddingObject.right
+ };
+ var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element
+
+ if (elementContext === _enums_js__WEBPACK_IMPORTED_MODULE_0__.popper && offsetData) {
+ var offset = offsetData[placement];
+ Object.keys(overflowOffsets).forEach(function (key) {
+ var multiply = [_enums_js__WEBPACK_IMPORTED_MODULE_0__.right, _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom].indexOf(key) >= 0 ? 1 : -1;
+ var axis = [_enums_js__WEBPACK_IMPORTED_MODULE_0__.top, _enums_js__WEBPACK_IMPORTED_MODULE_0__.bottom].indexOf(key) >= 0 ? 'y' : 'x';
+ overflowOffsets[key] += offset[axis] * multiply;
+ });
+ }
+
+ return overflowOffsets;
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/utils/expandToHashMap.js":
+/*!******************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/utils/expandToHashMap.js ***!
+ \******************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ expandToHashMap)
+/* harmony export */ });
+function expandToHashMap(value, keys) {
+ return keys.reduce(function (hashMap, key) {
+ hashMap[key] = value;
+ return hashMap;
+ }, {});
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/utils/getAltAxis.js":
+/*!*************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/utils/getAltAxis.js ***!
+ \*************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getAltAxis)
+/* harmony export */ });
+function getAltAxis(axis) {
+ return axis === 'x' ? 'y' : 'x';
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/utils/getBasePlacement.js":
+/*!*******************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/utils/getBasePlacement.js ***!
+ \*******************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getBasePlacement)
+/* harmony export */ });
+
+function getBasePlacement(placement) {
+ return placement.split('-')[0];
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js":
+/*!*********************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js ***!
+ \*********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getFreshSideObject)
+/* harmony export */ });
+function getFreshSideObject() {
+ return {
+ top: 0,
+ right: 0,
+ bottom: 0,
+ left: 0
+ };
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js":
+/*!***************************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js ***!
+ \***************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getMainAxisFromPlacement)
+/* harmony export */ });
+function getMainAxisFromPlacement(placement) {
+ return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js":
+/*!***********************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js ***!
+ \***********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getOppositePlacement)
+/* harmony export */ });
+var hash = {
+ left: 'right',
+ right: 'left',
+ bottom: 'top',
+ top: 'bottom'
+};
+function getOppositePlacement(placement) {
+ return placement.replace(/left|right|bottom|top/g, function (matched) {
+ return hash[matched];
+ });
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js":
+/*!********************************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js ***!
+ \********************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getOppositeVariationPlacement)
+/* harmony export */ });
+var hash = {
+ start: 'end',
+ end: 'start'
+};
+function getOppositeVariationPlacement(placement) {
+ return placement.replace(/start|end/g, function (matched) {
+ return hash[matched];
+ });
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/utils/getVariation.js":
+/*!***************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/utils/getVariation.js ***!
+ \***************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getVariation)
+/* harmony export */ });
+function getVariation(placement) {
+ return placement.split('-')[1];
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/utils/math.js":
+/*!*******************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/utils/math.js ***!
+ \*******************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ max: () => (/* binding */ max),
+/* harmony export */ min: () => (/* binding */ min),
+/* harmony export */ round: () => (/* binding */ round)
+/* harmony export */ });
+var max = Math.max;
+var min = Math.min;
+var round = Math.round;
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/utils/mergeByName.js":
+/*!**************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/utils/mergeByName.js ***!
+ \**************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ mergeByName)
+/* harmony export */ });
+function mergeByName(modifiers) {
+ var merged = modifiers.reduce(function (merged, current) {
+ var existing = merged[current.name];
+ merged[current.name] = existing ? Object.assign({}, existing, current, {
+ options: Object.assign({}, existing.options, current.options),
+ data: Object.assign({}, existing.data, current.data)
+ }) : current;
+ return merged;
+ }, {}); // IE11 does not support Object.values
+
+ return Object.keys(merged).map(function (key) {
+ return merged[key];
+ });
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js":
+/*!*********************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js ***!
+ \*********************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ mergePaddingObject)
+/* harmony export */ });
+/* harmony import */ var _getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./getFreshSideObject.js */ "./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js");
+
+function mergePaddingObject(paddingObject) {
+ return Object.assign({}, (0,_getFreshSideObject_js__WEBPACK_IMPORTED_MODULE_0__["default"])(), paddingObject);
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/utils/orderModifiers.js":
+/*!*****************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/utils/orderModifiers.js ***!
+ \*****************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ orderModifiers)
+/* harmony export */ });
+/* harmony import */ var _enums_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../enums.js */ "./node_modules/@popperjs/core/lib/enums.js");
+ // source: https://stackoverflow.com/questions/49875255
+
+function order(modifiers) {
+ var map = new Map();
+ var visited = new Set();
+ var result = [];
+ modifiers.forEach(function (modifier) {
+ map.set(modifier.name, modifier);
+ }); // On visiting object, check for its dependencies and visit them recursively
+
+ function sort(modifier) {
+ visited.add(modifier.name);
+ var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);
+ requires.forEach(function (dep) {
+ if (!visited.has(dep)) {
+ var depModifier = map.get(dep);
+
+ if (depModifier) {
+ sort(depModifier);
+ }
+ }
+ });
+ result.push(modifier);
+ }
+
+ modifiers.forEach(function (modifier) {
+ if (!visited.has(modifier.name)) {
+ // check for visited object
+ sort(modifier);
+ }
+ });
+ return result;
+}
+
+function orderModifiers(modifiers) {
+ // order based on dependencies
+ var orderedModifiers = order(modifiers); // order based on phase
+
+ return _enums_js__WEBPACK_IMPORTED_MODULE_0__.modifierPhases.reduce(function (acc, phase) {
+ return acc.concat(orderedModifiers.filter(function (modifier) {
+ return modifier.phase === phase;
+ }));
+ }, []);
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/utils/rectToClientRect.js":
+/*!*******************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/utils/rectToClientRect.js ***!
+ \*******************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ rectToClientRect)
+/* harmony export */ });
+function rectToClientRect(rect) {
+ return Object.assign({}, rect, {
+ left: rect.x,
+ top: rect.y,
+ right: rect.x + rect.width,
+ bottom: rect.y + rect.height
+ });
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/utils/userAgent.js":
+/*!************************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/utils/userAgent.js ***!
+ \************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (/* binding */ getUAString)
+/* harmony export */ });
+function getUAString() {
+ var uaData = navigator.userAgentData;
+
+ if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {
+ return uaData.brands.map(function (item) {
+ return item.brand + "/" + item.version;
+ }).join(' ');
+ }
+
+ return navigator.userAgent;
+}
+
+/***/ }),
+
+/***/ "./node_modules/@popperjs/core/lib/utils/within.js":
+/*!*********************************************************!*\
+ !*** ./node_modules/@popperjs/core/lib/utils/within.js ***!
+ \*********************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ within: () => (/* binding */ within),
+/* harmony export */ withinMaxClamp: () => (/* binding */ withinMaxClamp)
+/* harmony export */ });
+/* harmony import */ var _math_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./math.js */ "./node_modules/@popperjs/core/lib/utils/math.js");
+
+function within(min, value, max) {
+ return (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.max)(min, (0,_math_js__WEBPACK_IMPORTED_MODULE_0__.min)(value, max));
+}
+function withinMaxClamp(min, value, max) {
+ var v = within(min, value, max);
+ return v > max ? max : v;
+}
+
+/***/ }),
+
+/***/ "./src/libs/constants.js":
+/*!*******************************!*\
+ !*** ./src/libs/constants.js ***!
+ \*******************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ ANIMATION_DURATION: () => (/* binding */ ANIMATION_DURATION),
+/* harmony export */ FIRST_SUB_MENUS_BTN: () => (/* binding */ FIRST_SUB_MENUS_BTN),
+/* harmony export */ INNER_SUB_MENUS_BTN: () => (/* binding */ INNER_SUB_MENUS_BTN),
+/* harmony export */ SIDEBAR_EL: () => (/* binding */ SIDEBAR_EL),
+/* harmony export */ SUB_MENU_ELS: () => (/* binding */ SUB_MENU_ELS)
+/* harmony export */ });
+const ANIMATION_DURATION = 300;
+const SIDEBAR_EL = document.getElementById('sidebarMain');
+const SUB_MENU_ELS = document.querySelectorAll('.sidebar-main-menu > ul > .menu-item.sub-menu');
+const FIRST_SUB_MENUS_BTN = document.querySelectorAll('.sidebar-main-menu > ul > .menu-item.sub-menu > a');
+const INNER_SUB_MENUS_BTN = document.querySelectorAll('.sidebar-main-menu > ul > .menu-item.sub-menu .menu-item.sub-menu > a');
+
+/***/ }),
+
+/***/ "./src/libs/popper.js":
+/*!****************************!*\
+ !*** ./src/libs/popper.js ***!
+ \****************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _popperjs_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @popperjs/core */ "./node_modules/@popperjs/core/lib/popper.js");
+/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./src/libs/constants.js");
+
+
+class Popper {
+ instance = null;
+ reference = null;
+ popperTarget = null;
+ constructor(reference, popperTarget) {
+ this.init(reference, popperTarget);
+ }
+ init(reference, popperTarget) {
+ this.reference = reference;
+ this.popperTarget = popperTarget;
+ this.instance = (0,_popperjs_core__WEBPACK_IMPORTED_MODULE_1__.createPopper)(this.reference, this.popperTarget, {
+ placement: 'right',
+ strategy: 'fixed',
+ resize: true,
+ modifiers: [{
+ name: 'computeStyles',
+ options: {
+ adaptive: false
+ }
+ }, {
+ name: 'flip',
+ options: {
+ fallbackPlacements: ['left', 'right']
+ }
+ }]
+ });
+ document.addEventListener('click', e => this.clicker(e, this.popperTarget, this.reference), false);
+ const ro = new ResizeObserver(() => {
+ this.instance.update();
+ });
+ ro.observe(this.popperTarget);
+ ro.observe(this.reference);
+ }
+ clicker(event, popperTarget, reference) {
+ if (_constants__WEBPACK_IMPORTED_MODULE_0__.SIDEBAR_EL.classList.contains('collapsed') && !popperTarget.contains(event.target) && !reference.contains(event.target)) {
+ this.hide();
+ }
+ }
+ hide() {
+ this.instance.state.elements.popper.style.visibility = 'hidden';
+ }
+}
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Popper);
+
+/***/ }),
+
+/***/ "./src/libs/poppers.js":
+/*!*****************************!*\
+ !*** ./src/libs/poppers.js ***!
+ \*****************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./src/libs/constants.js");
+/* harmony import */ var _popper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./popper */ "./src/libs/popper.js");
+
+
+class Poppers {
+ subMenuPoppers = [];
+ constructor() {
+ this.init();
+ }
+ init() {
+ _constants__WEBPACK_IMPORTED_MODULE_0__.SUB_MENU_ELS.forEach(element => {
+ this.subMenuPoppers.push(new _popper__WEBPACK_IMPORTED_MODULE_1__["default"](element, element.lastElementChild));
+ this.closePoppers();
+ });
+ }
+ togglePopper(target) {
+ if (window.getComputedStyle(target).visibility === 'hidden') {
+ target.style.visibility = 'visible';
+ target.style.height = '100%';
+ } else {
+ target.style.visibility = 'hidden';
+ target.style.height = 0;
+ }
+ }
+ updatePoppers() {
+ this.subMenuPoppers.forEach(element => {
+ if (!element.instance.state.elements.popper.parentElement.classList.contains('open')) {
+ element.instance.state.elements.popper.style.display = 'none';
+ }
+ element.instance.update();
+ });
+ }
+ closePoppers() {
+ this.subMenuPoppers.forEach(element => {
+ element.hide();
+ });
+ }
+}
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Poppers);
+
+/***/ }),
+
+/***/ "./src/libs/slide.js":
+/*!***************************!*\
+ !*** ./src/libs/slide.js ***!
+ \***************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ slideDown: () => (/* binding */ slideDown),
+/* harmony export */ slideToggle: () => (/* binding */ slideToggle),
+/* harmony export */ slideUp: () => (/* binding */ slideUp)
+/* harmony export */ });
+/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./constants */ "./src/libs/constants.js");
+/* eslint-disable no-param-reassign */
+/* eslint-disable no-unused-expressions */
+
+const slideUp = (target, duration = _constants__WEBPACK_IMPORTED_MODULE_0__.ANIMATION_DURATION) => {
+ const {
+ parentElement
+ } = target;
+ parentElement.classList.remove('open');
+ target.style.transitionProperty = 'height, margin, padding';
+ target.style.transitionDuration = `${duration}ms`;
+ target.style.boxSizing = 'border-box';
+ target.style.height = `${target.offsetHeight}px`;
+ target.offsetHeight;
+ target.style.overflow = 'hidden';
+ target.style.height = 0;
+ target.style.paddingTop = 0;
+ target.style.paddingBottom = 0;
+ target.style.marginTop = 0;
+ target.style.marginBottom = 0;
+ window.setTimeout(() => {
+ target.style.display = 'none';
+ target.style.removeProperty('height');
+ target.style.removeProperty('padding-top');
+ target.style.removeProperty('padding-bottom');
+ target.style.removeProperty('margin-top');
+ target.style.removeProperty('margin-bottom');
+ target.style.removeProperty('overflow');
+ target.style.removeProperty('transition-duration');
+ target.style.removeProperty('transition-property');
+ }, duration);
+};
+const slideDown = (target, duration = _constants__WEBPACK_IMPORTED_MODULE_0__.ANIMATION_DURATION) => {
+ const {
+ parentElement
+ } = target;
+ parentElement.classList.add('open');
+ target.style.removeProperty('display');
+ let {
+ display
+ } = window.getComputedStyle(target);
+ if (display === 'none') display = 'block';
+ target.style.display = display;
+ const height = target.offsetHeight;
+ target.style.overflow = 'hidden';
+ target.style.height = 0;
+ target.style.paddingTop = 0;
+ target.style.paddingBottom = 0;
+ target.style.marginTop = 0;
+ target.style.marginBottom = 0;
+ target.offsetHeight;
+ target.style.boxSizing = 'border-box';
+ target.style.transitionProperty = 'height, margin, padding';
+ target.style.transitionDuration = `${duration}ms`;
+ target.style.height = `${height}px`;
+ target.style.removeProperty('padding-top');
+ target.style.removeProperty('padding-bottom');
+ target.style.removeProperty('margin-top');
+ target.style.removeProperty('margin-bottom');
+ window.setTimeout(() => {
+ //target.style.height = '100%'; // Зачем-то я хотел так сделать.....
+ target.style.removeProperty('height');
+ target.style.removeProperty('overflow');
+ target.style.removeProperty('transition-duration');
+ target.style.removeProperty('transition-property');
+ }, duration);
+};
+const slideToggle = (target, duration = _constants__WEBPACK_IMPORTED_MODULE_0__.ANIMATION_DURATION) => {
+ if (window.getComputedStyle(target).display === 'none') return slideDown(target, duration);
+ return slideUp(target, duration);
+};
+
+/***/ }),
+
+/***/ "./src/styles/styles.scss":
+/*!********************************!*\
+ !*** ./src/styles/styles.scss ***!
+ \********************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+__webpack_require__.r(__webpack_exports__);
+// extracted by mini-css-extract-plugin
+
+
+/***/ })
+
+/******/ });
+/************************************************************************/
+/******/ // The module cache
+/******/ var __webpack_module_cache__ = {};
+/******/
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+/******/ // Check if module is in cache
+/******/ var cachedModule = __webpack_module_cache__[moduleId];
+/******/ if (cachedModule !== undefined) {
+/******/ return cachedModule.exports;
+/******/ }
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = __webpack_module_cache__[moduleId] = {
+/******/ // no module.id needed
+/******/ // no module.loaded needed
+/******/ exports: {}
+/******/ };
+/******/
+/******/ // Execute the module function
+/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
+/******/
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+/******/
+/************************************************************************/
+/******/ /* webpack/runtime/define property getters */
+/******/ (() => {
+/******/ // define getter functions for harmony exports
+/******/ __webpack_require__.d = (exports, definition) => {
+/******/ for(var key in definition) {
+/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
+/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
+/******/ }
+/******/ }
+/******/ };
+/******/ })();
+/******/
+/******/ /* webpack/runtime/hasOwnProperty shorthand */
+/******/ (() => {
+/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
+/******/ })();
+/******/
+/******/ /* webpack/runtime/make namespace object */
+/******/ (() => {
+/******/ // define __esModule on exports
+/******/ __webpack_require__.r = (exports) => {
+/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
+/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
+/******/ }
+/******/ Object.defineProperty(exports, '__esModule', { value: true });
+/******/ };
+/******/ })();
+/******/
+/************************************************************************/
+var __webpack_exports__ = {};
+// This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk.
+(() => {
+/*!**********************!*\
+ !*** ./src/index.js ***!
+ \**********************/
+__webpack_require__.r(__webpack_exports__);
+/* harmony import */ var _styles_styles_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./styles/styles.scss */ "./src/styles/styles.scss");
+/* harmony import */ var _libs_slide__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./libs/slide */ "./src/libs/slide.js");
+/* harmony import */ var _libs_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./libs/constants */ "./src/libs/constants.js");
+/* harmony import */ var _libs_poppers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./libs/poppers */ "./src/libs/poppers.js");
+
+
+
+
+const PoppersInstance = new _libs_poppers__WEBPACK_IMPORTED_MODULE_3__["default"]();
+
+/**
+ * wait for the current animation to finish and update poppers position
+ */
+const updatePoppersTimeout = () => {
+ setTimeout(() => {
+ PoppersInstance.updatePoppers();
+ }, _libs_constants__WEBPACK_IMPORTED_MODULE_2__.ANIMATION_DURATION);
+};
+
+/**
+ * sidebar collapse handler
+ */
+const btnCollapse = document.getElementById('btn-collapse');
+if (btnCollapse) {
+ btnCollapse.addEventListener('click', () => {
+ _libs_constants__WEBPACK_IMPORTED_MODULE_2__.SIDEBAR_EL.classList.toggle('collapsed');
+ PoppersInstance.closePoppers();
+ if (_libs_constants__WEBPACK_IMPORTED_MODULE_2__.SIDEBAR_EL.classList.contains('collapsed')) _libs_constants__WEBPACK_IMPORTED_MODULE_2__.FIRST_SUB_MENUS_BTN.forEach(element => {
+ element.parentElement.classList.remove('open');
+ });
+ updatePoppersTimeout();
+ });
+}
+
+/**
+ * sidebar toggle handler (on break point )
+ */
+const btnToggle = document.getElementById('btn-toggle');
+if (btnToggle) {
+ btnToggle.addEventListener('click', () => {
+ _libs_constants__WEBPACK_IMPORTED_MODULE_2__.SIDEBAR_EL.classList.toggle('toggled');
+ updatePoppersTimeout();
+ });
+}
+
+/**
+ * toggle sidebar on overlay click
+ */
+const btnOverlay = document.getElementById('overlay');
+if (btnOverlay) {
+ btnOverlay.addEventListener('click', () => {
+ _libs_constants__WEBPACK_IMPORTED_MODULE_2__.SIDEBAR_EL.classList.toggle('toggled');
+ });
+}
+const defaultOpenMenus = document.querySelectorAll('.menu-item.sub-menu.open');
+defaultOpenMenus.forEach(element => {
+ element.lastElementChild.style.display = 'block';
+});
+
+/**
+ * handle top level submenu click
+ */
+_libs_constants__WEBPACK_IMPORTED_MODULE_2__.FIRST_SUB_MENUS_BTN.forEach(element => {
+ element.addEventListener('click', () => {
+ if (_libs_constants__WEBPACK_IMPORTED_MODULE_2__.SIDEBAR_EL.classList.contains('collapsed')) PoppersInstance.togglePopper(element.nextElementSibling);else {
+ /**
+ * if menu has "open-current-only" class then only one submenu opens at a time
+ */
+ const parentMenu = element.closest('.menuLeft.open-current-submenu');
+ if (parentMenu) parentMenu.querySelectorAll(':scope > ul > .menu-item.sub-menu > a').forEach(el => window.getComputedStyle(el.nextElementSibling).display !== 'none' && (0,_libs_slide__WEBPACK_IMPORTED_MODULE_1__.slideUp)(el.nextElementSibling));
+ (0,_libs_slide__WEBPACK_IMPORTED_MODULE_1__.slideToggle)(element.nextElementSibling);
+ }
+ });
+});
+
+/**
+ * handle inner submenu click
+ */
+_libs_constants__WEBPACK_IMPORTED_MODULE_2__.INNER_SUB_MENUS_BTN.forEach(element => {
+ element.addEventListener('click', () => {
+ (0,_libs_slide__WEBPACK_IMPORTED_MODULE_1__.slideToggle)(element.nextElementSibling);
+ });
+});
+})();
+
+/******/ })()
+;
+//# sourceMappingURL=main.js.map
\ No newline at end of file
diff --git a/web/skins/classic/assets/pro-sidebar-template/dist_dev/main.js.map b/web/skins/classic/assets/pro-sidebar-template/dist_dev/main.js.map
new file mode 100644
index 00000000000..d76b6bd3ebf
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/dist_dev/main.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"main.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAA+D;AACN;AACQ;AACJ;AACN;AACZ;AACM;AACM;AACD;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA,sEAAsE,aAAa;AACnF;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B;AAC/B,uBAAuB;AACvB;AACA;AACA;AACA,OAAO;AACP,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA,qBAAqB,mEAAS,cAAc,2EAAiB,yCAAyC,2EAAiB;AACvH,kBAAkB,2EAAiB;AACnC,WAAW;AACX;;AAEA,+BAA+B,oEAAc,CAAC,iEAAW,yDAAyD;;AAElH;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6CAA6C;AAC7C;;AAEA;AACA;AACA,UAAU;;;AAGV;AACA,qBAAqB,0EAAgB,YAAY,yEAAe;AAChE,kBAAkB,uEAAa;AAC/B,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA,mDAAmD;AACnD;AACA;AACA,6CAA6C,KAAK;;AAElD;AACA,sEAAsE;AACtE,SAAS;;AAET,4BAA4B,uCAAuC;AACnE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gEAAgE;AAChE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,OAAO;AACP;AACA;AACA,cAAc,8DAAQ;AACtB;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;;AAEA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACO,mDAAmD;;;;;;;;;;;;;;;;;ACpMX;AAChC;AACf,2DAA2D;;AAE3D;AACA;AACA,IAAI;AACJ,uBAAuB,4DAAY;AACnC;;AAEA;AACA;AACA;AACA,UAAU;;;AAGV;AACA,QAAQ;AACR,MAAM;;;AAGN;AACA;;;;;;;;;;;;;;;;;;ACtB2D;AAClB;AACF;AACc;AACtC;AACf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,sBAAsB,6DAAa;AACnC,uCAAuC,qDAAK;AAC5C,wCAAwC,qDAAK;AAC7C;;AAEA,aAAa,yDAAS,YAAY,yDAAS;AAC3C;;AAEA,0BAA0B,gEAAgB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxCuC;AACY;AACA;AACI;AACJ;AACM;AACJ;AACM;AACI;AAChB;AACV;AACM;AACiB;AAChB;;AAE5C;AACA,aAAa,qEAAqB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,+CAAQ,GAAG,sEAAgB,CAAC,+DAAe,uBAAuB,yDAAS,0EAA0E,sEAAgB,CAAC,+DAAe,CAAC,kEAAkB;AACpO,EAAE;AACF;AACA;;;AAGA;AACA,wBAAwB,iEAAiB,CAAC,6DAAa;AACvD,wDAAwD,gEAAgB;AACxE,4CAA4C,6DAAa,YAAY,gEAAe;;AAEpF,OAAO,yDAAS;AAChB;AACA,IAAI;;;AAGJ;AACA,WAAW,yDAAS,oBAAoB,yDAAQ,oCAAoC,4DAAW;AAC/F,GAAG;AACH,EAAE;AACF;;;AAGe;AACf;AACA;AACA;AACA;AACA;AACA,kBAAkB,oDAAG;AACrB,oBAAoB,oDAAG;AACvB,qBAAqB,oDAAG;AACxB,mBAAmB,oDAAG;AACtB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACrE+D;AAChB;AACJ;AACK;AACW;AACF;AACR;AACR;;AAEzC;AACA;AACA,eAAe,qDAAK;AACpB,eAAe,qDAAK;AACpB;AACA,EAAE;AACF;;;AAGe;AACf;AACA;AACA;;AAEA,gCAAgC,6DAAa;AAC7C,6BAA6B,6DAAa;AAC1C,wBAAwB,kEAAkB;AAC1C,aAAa,qEAAqB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,2DAAW;AACnB,IAAI,8DAAc;AAClB,eAAe,6DAAa;AAC5B;;AAEA,QAAQ,6DAAa;AACrB,gBAAgB,qEAAqB;AACrC;AACA;AACA,MAAM;AACN,kBAAkB,mEAAmB;AACrC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACzDuC;AACxB;AACf,SAAS,yDAAS;AAClB;;;;;;;;;;;;;;;ACH4C;AAC7B;AACf;AACA,WAAW,yDAAS;AACpB;AACA;;;;;;;;;;;;;;;;;;;ACLyD;AACJ;AACM;AACR;AACZ,CAAC;AACxC;;AAEe;AACf;;AAEA,aAAa,kEAAkB;AAC/B,kBAAkB,+DAAe;AACjC;AACA,cAAc,mDAAG;AACjB,eAAe,mDAAG;AAClB,kCAAkC,mEAAmB;AACrD;;AAEA,MAAM,gEAAgB;AACtB,SAAS,mDAAG;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC5Be;AACf;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACL+D,CAAC;AAChE;;AAEe;AACf,mBAAmB,qEAAqB,WAAW;AACnD;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACxBe;AACf;AACA;;;;;;;;;;;;;;;;;;ACFmD;AACZ;AACS;AACa;AAC9C;AACf,eAAe,yDAAS,WAAW,6DAAa;AAChD,WAAW,+DAAe;AAC1B,IAAI;AACJ,WAAW,oEAAoB;AAC/B;AACA;;;;;;;;;;;;;;;;;;;;;ACVuC;AACI;AACU;AACS;AACb;AACF;AACC;;AAEhD;AACA,OAAO,6DAAa;AACpB,EAAE,gEAAgB;AAClB;AACA;;AAEA;AACA,EAAE;AACF;;;AAGA;AACA,kCAAkC,+DAAW;AAC7C,6BAA6B,+DAAW;;AAExC,cAAc,6DAAa;AAC3B;AACA,qBAAqB,gEAAgB;;AAErC;AACA;AACA;AACA;;AAEA,oBAAoB,6DAAa;;AAEjC,MAAM,4DAAY;AAClB;AACA;;AAEA,SAAS,6DAAa,0CAA0C,2DAAW;AAC3E,cAAc,gEAAgB,eAAe;AAC7C;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA,EAAE;AACF;;;AAGe;AACf,eAAe,yDAAS;AACxB;;AAEA,yBAAyB,8DAAc,kBAAkB,gEAAgB;AACzE;AACA;;AAEA,uBAAuB,2DAAW,6BAA6B,2DAAW,6BAA6B,gEAAgB;AACvH;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;ACpE2C;AACc;AACV;AAChC;AACf,MAAM,2DAAW;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI,4DAAY;AAChB;AACA,IAAI,kEAAkB;;AAEtB;AACA;;;;;;;;;;;;;;;;;;AClB+C;AACE;AACN;AACK;AACjC;AACf,4CAA4C,2DAAW;AACvD;AACA;AACA;;AAEA,MAAM,6DAAa,UAAU,8DAAc;AAC3C;AACA;;AAEA,yBAAyB,6DAAa;AACtC;;;;;;;;;;;;;;;;;;ACfuC;AACkB;AACE;AACN;AACtC;AACf,YAAY,yDAAS;AACrB,aAAa,kEAAkB;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,gEAAgB;;AAEzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,mEAAmB;AAC9B;AACA;AACA;;;;;;;;;;;;;;AC9Be;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;ACXuC;AACxB;AACf,YAAY,yDAAS;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACT+D;AACN;AACN;AACpC;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,qEAAqB,CAAC,kEAAkB,kBAAkB,+DAAe;AAClF;;;;;;;;;;;;;;;;;ACZuC;;AAEvC;AACA,mBAAmB,yDAAS;AAC5B;AACA;;AAEA;AACA,mBAAmB,yDAAS;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,yDAAS;AAC5B;AACA;;;;;;;;;;;;;;;;;ACpBgD;AACjC;AACf,gDAAgD,+DAAW;AAC3D;;;;;;;;;;;;;;;ACHqD;AACtC;AACf;AACA,0BAA0B,gEAAgB;AAC1C;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;ACT2C;AAC5B;AACf,uCAAuC,2DAAW;AAClD;;;;;;;;;;;;;;;;;;ACHmD;AACJ;AACR;AACU;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;;AAEA;AACA;AACA;;AAEA,qBAAqB,+DAAe;AACpC;AACA,YAAY,yDAAS;AACrB,+DAA+D,8DAAc;AAC7E;AACA;AACA,uCAAuC,6DAAa;AACpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzBO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACP;AACA,CAAC;AACM;AACP;AACA,CAAC,OAAO;;AAED;AACA;AACA,6BAA6B;;AAE7B;AACA;AACA,6BAA6B;;AAE7B;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC9B+C;AACK,CAAC;AAC5D;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC;;AAExC,SAAS,uEAAa,cAAc,qEAAW;AAC/C;AACA,MAAM;AACN;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uHAAuH;;AAEvH;AACA;AACA;AACA,OAAO,IAAI,GAAG;;AAEd,WAAW,uEAAa,cAAc,qEAAW;AACjD;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,EAAE;;;AAGF,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;ACnF2D;AACF;AACV;AACc;AACc;AAChC;AACoB;AACN;AACa,CAAC;;AAExE;AACA,oEAAoE;AACpE;AACA,GAAG;AACH,SAAS,wEAAkB,yCAAyC,qEAAe,UAAU,qDAAc;AAC3G;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sEAAgB;AACtC,aAAa,8EAAwB;AACrC,oBAAoB,2CAAI,EAAE,4CAAK;AAC/B;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,uEAAa;AAC/B,+BAA+B,0CAAG,GAAG,2CAAI;AACzC,+BAA+B,6CAAM,GAAG,4CAAK;AAC7C;AACA;AACA,0BAA0B,yEAAe;AACzC;AACA,uDAAuD;AACvD;;AAEA;AACA;AACA;AACA,eAAe,wDAAM,oBAAoB;;AAEzC;AACA,yDAAyD;AACzD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI;;;AAGJ;AACA;;AAEA;AACA;AACA;AACA;;AAEA,OAAO,kEAAQ;AACf;AACA;;AAEA;AACA,EAAE;;;AAGF,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;ACzF2D;AACE;AACZ;AACkB;AACJ;AACJ;AACR;AACX,CAAC;;AAE1C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,qDAAK;AACZ,OAAO,qDAAK;AACZ;AACA;;AAEO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,2CAAI;AAClB,cAAc,0CAAG;AACjB;;AAEA;AACA,uBAAuB,yEAAe;AACtC;AACA;;AAEA,yBAAyB,mEAAS;AAClC,qBAAqB,4EAAkB;;AAEvC,UAAU,0EAAgB;AAC1B;AACA;AACA;AACA,MAAM;;;AAGN;;AAEA,sBAAsB,0CAAG,mBAAmB,2CAAI,kBAAkB,4CAAK,mBAAmB,0CAAG;AAC7F,cAAc,6CAAM;AACpB;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,2CAAI,mBAAmB,0CAAG,kBAAkB,6CAAM,mBAAmB,0CAAG;AAC9F,cAAc,4CAAK;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG,EAAE,mEAAS;AACd;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,2BAA2B,oCAAoC;AAC/D;;AAEA,yBAAyB,qCAAqC;AAC9D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sEAAgB;AAC/B,eAAe,kEAAY;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,mDAAmD;AAC7F;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,yCAAyC,kDAAkD;AAC3F;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,4CAA4C;AAC5C;AACA,GAAG;AACH,EAAE;;;AAGF,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;ACxKiD,CAAC;;AAEnD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mEAAS;AACxB;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,EAAE;;;AAGF,iEAAe;AACf;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;AChDmE;AACR;AAC0B;AAC9B;AACY;AACA;AAChB,CAAC;;AAErD;AACA,MAAM,sEAAgB,gBAAgB,2CAAI;AAC1C;AACA;;AAEA,0BAA0B,0EAAoB;AAC9C,UAAU,mFAA6B,gCAAgC,mFAA6B;AACpG;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,sEAAgB;AACtC;AACA,iGAAiG,0EAAoB;AACrH;AACA,sBAAsB,sEAAgB,gBAAgB,2CAAI,GAAG,0EAAoB;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,uBAAuB;AACzC;;AAEA,yBAAyB,sEAAgB;;AAEzC,2BAA2B,kEAAY,gBAAgB,4CAAK;AAC5D,sBAAsB,0CAAG,EAAE,6CAAM;AACjC;AACA,mBAAmB,oEAAc;AACjC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,4DAA4D,4CAAK,GAAG,2CAAI,sBAAsB,6CAAM,GAAG,0CAAG;;AAE1G;AACA,0BAA0B,0EAAoB;AAC9C;;AAEA,2BAA2B,0EAAoB;AAC/C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,QAAQ;AAC1C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAE;;;AAGF,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;AClJsD;AACC;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,0CAAG,EAAE,4CAAK,EAAE,6CAAM,EAAE,2CAAI;AAClC;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,oEAAc;AACxC;AACA,GAAG;AACH,0BAA0B,oEAAc;AACxC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,GAAG;AACH,EAAE;;;AAGF,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5DyD;AACZ;AACgB;AACE;AACpB;AACA;AACI;AACc;;;;;;;;;;;;;;;;;;ACPF;AACD,CAAC;;AAErD;AACP,sBAAsB,sEAAgB;AACtC,wBAAwB,2CAAI,EAAE,0CAAG;;AAEjC,mEAAmE;AACnE;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,UAAU,2CAAI,EAAE,4CAAK;AACrB;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iDAAU;AACvB;AACA;AACA,GAAG,IAAI;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,EAAE;;;AAGF,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;ACrDuD;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oEAAc;AAC5C;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;;AAGF,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACxB6D;AACF;AACgB;AAC5B;AACY;AACF;AACI;AACN;AACJ;AACY;AACE;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,oEAAc;AAC/B;AACA;AACA;AACA;AACA,GAAG;AACH,sBAAsB,sEAAgB;AACtC,kBAAkB,kEAAY;AAC9B;AACA,iBAAiB,8EAAwB;AACzC,gBAAgB,gEAAU;AAC1B;AACA;AACA;AACA,4FAA4F;AAC5F;AACA,GAAG;AACH;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,sCAAsC,0CAAG,GAAG,2CAAI;AAChD,qCAAqC,6CAAM,GAAG,4CAAK;AACnD;AACA;AACA;AACA;AACA;AACA,+BAA+B,4CAAK;AACpC,+BAA+B,4CAAK,2CAA2C;AAC/E;;AAEA;AACA,6CAA6C,uEAAa;AAC1D;AACA;AACA;AACA,yHAAyH,wEAAkB;AAC3I;AACA,uDAAuD;AACvD;AACA;AACA;AACA;;AAEA,mBAAmB,wDAAM;AACzB;AACA;AACA,oDAAoD,yEAAe;AACnE;AACA;AACA;AACA;AACA,0BAA0B,wDAAM,UAAU,oDAAO,yCAAyC,oDAAO;AACjG;AACA;AACA;;AAEA;AACA;;AAEA,uCAAuC,0CAAG,GAAG,2CAAI;;AAEjD,sCAAsC,6CAAM,GAAG,4CAAK;;AAEpD;;AAEA;;AAEA;;AAEA;;AAEA,wBAAwB,0CAAG,EAAE,2CAAI;;AAEjC;;AAEA;;AAEA;;AAEA,oDAAoD,gEAAc,oCAAoC,wDAAM;;AAE5G;AACA;AACA;;AAEA;AACA,EAAE;;;AAGF,iEAAe;AACf;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;;;;;;;;;;;AC7ImE;AACT;AACF;AACA;AACJ;AACrD,wBAAwB,oEAAc,EAAE,mEAAa,EAAE,mEAAa,EAAE,iEAAW;AACjF,gCAAgC,iEAAe;AAC/C;AACA,CAAC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRgE;AACT;AACF;AACA;AACJ;AACV;AACJ;AACsB;AACpB;AACF;AACvC,wBAAwB,oEAAc,EAAE,mEAAa,EAAE,mEAAa,EAAE,iEAAW,EAAE,4DAAM,EAAE,0DAAI,EAAE,qEAAe,EAAE,2DAAK,EAAE,0DAAI;AAC7H,gCAAgC,iEAAe;AAC/C;AACA,CAAC,GAAG;;AAEuE,CAAC;;AAER,CAAC;;;;;;;;;;;;;;;;;;;;ACjBxB;AACkD;AAC9C;AACI;AACtC;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,iDAAa;AAC9E,kBAAkB,4DAAY;AAC9B,gDAAgD,0DAAmB,GAAG,0DAAmB;AACzF,WAAW,4DAAY;AACvB,GAAG,IAAI,qDAAc;AACrB;AACA;AACA,GAAG;;AAEH;AACA;AACA,IAAI;;;AAGJ;AACA,qBAAqB,8DAAc;AACnC;AACA;AACA;AACA;AACA,KAAK,EAAE,gEAAgB;AACvB;AACA,GAAG,IAAI;AACP;AACA;AACA,GAAG;AACH;;;;;;;;;;;;;;;;;;AC1CqD;AACR;AACwB;AACF;AACpD;AACf;AACA;AACA;AACA,kCAAkC,gEAAgB;AAClD,8BAA8B,4DAAY;AAC1C;AACA;AACA;;AAEA;AACA,SAAS,0CAAG;AACZ;AACA;AACA;AACA;AACA;;AAEA,SAAS,6CAAM;AACf;AACA;AACA;AACA;AACA;;AAEA,SAAS,4CAAK;AACd;AACA;AACA;AACA;AACA;;AAEA,SAAS,2CAAI;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,wEAAwB;;AAEzD;AACA;;AAEA;AACA,WAAW,4CAAK;AAChB;AACA;;AAEA,WAAW,0CAAG;AACd;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;ACrEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACd8D;AACM;AACM;AACzB;AACI;AAC0D;AACxD;AACE;AACN,CAAC;;AAErC;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,sDAAe;AAC/D;AACA,wDAAwD,+CAAQ;AAChE;AACA,0DAA0D,6CAAM;AAChE;AACA;AACA;AACA;AACA,sBAAsB,kEAAkB,yCAAyC,+DAAe,UAAU,qDAAc;AACxH,sCAAsC,6CAAM,GAAG,gDAAS,GAAG,6CAAM;AACjE;AACA;AACA,2BAA2B,yEAAe,CAAC,mEAAS,gDAAgD,4EAAkB;AACtH,4BAA4B,+EAAqB;AACjD,sBAAsB,8DAAc;AACpC;AACA;AACA;AACA;AACA,GAAG;AACH,yBAAyB,gEAAgB,iBAAiB;AAC1D,6CAA6C,6CAAM,2CAA2C;AAC9F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;;AAE/C,yBAAyB,6CAAM;AAC/B;AACA;AACA,sBAAsB,4CAAK,EAAE,6CA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","sources":["webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/createPopper.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/enums.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/modifiers/index.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/popper-lite.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/popper.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/math.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://pro-sidebar-template/./node_modules/@popperjs/core/lib/utils/within.js","webpack://pro-sidebar-template/./src/libs/constants.js","webpack://pro-sidebar-template/./src/libs/popper.js","webpack://pro-sidebar-template/./src/libs/poppers.js","webpack://pro-sidebar-template/./src/libs/slide.js","webpack://pro-sidebar-template/./src/styles/styles.scss?77c0","webpack://pro-sidebar-template/webpack/bootstrap","webpack://pro-sidebar-template/webpack/runtime/define property getters","webpack://pro-sidebar-template/webpack/runtime/hasOwnProperty shorthand","webpack://pro-sidebar-template/webpack/runtime/make namespace object","webpack://pro-sidebar-template/./src/index.js"],"sourcesContent":["import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n });\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref) {\n var name = _ref.name,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n effect = _ref.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref, win) {\n var x = _ref.x,\n y = _ref.y;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }, getWindow(popper)) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","export { default as applyStyles } from \"./applyStyles.js\";\nexport { default as arrow } from \"./arrow.js\";\nexport { default as computeStyles } from \"./computeStyles.js\";\nexport { default as eventListeners } from \"./eventListeners.js\";\nexport { default as flip } from \"./flip.js\";\nexport { default as hide } from \"./hide.js\";\nexport { default as offset } from \"./offset.js\";\nexport { default as popperOffsets } from \"./popperOffsets.js\";\nexport { default as preventOverflow } from \"./preventOverflow.js\";","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","export const ANIMATION_DURATION = 300;\n\nexport const SIDEBAR_EL = document.getElementById('sidebarMain');\n\nexport const SUB_MENU_ELS = document.querySelectorAll(\n '.sidebar-main-menu > ul > .menu-item.sub-menu'\n);\n\nexport const FIRST_SUB_MENUS_BTN = document.querySelectorAll(\n '.sidebar-main-menu > ul > .menu-item.sub-menu > a'\n);\n\nexport const INNER_SUB_MENUS_BTN = document.querySelectorAll(\n '.sidebar-main-menu > ul > .menu-item.sub-menu .menu-item.sub-menu > a'\n);\n","import { createPopper } from '@popperjs/core';\r\nimport { SIDEBAR_EL } from './constants';\r\n\r\nclass Popper {\r\n instance = null;\r\n reference = null;\r\n popperTarget = null;\r\n\r\n constructor(reference, popperTarget) {\r\n this.init(reference, popperTarget);\r\n }\r\n\r\n init(reference, popperTarget) {\r\n this.reference = reference;\r\n this.popperTarget = popperTarget;\r\n this.instance = createPopper(this.reference, this.popperTarget, {\r\n placement: 'right',\r\n strategy: 'fixed',\r\n resize: true,\r\n modifiers: [\r\n {\r\n name: 'computeStyles',\r\n options: {\r\n adaptive: false,\r\n },\r\n },\r\n {\r\n name: 'flip',\r\n options: {\r\n fallbackPlacements: ['left', 'right'],\r\n },\r\n },\r\n ],\r\n });\r\n\r\n document.addEventListener(\r\n 'click',\r\n (e) => this.clicker(e, this.popperTarget, this.reference),\r\n false,\r\n );\r\n\r\n const ro = new ResizeObserver(() => {\r\n this.instance.update();\r\n });\r\n\r\n ro.observe(this.popperTarget);\r\n ro.observe(this.reference);\r\n }\r\n\r\n clicker(event, popperTarget, reference) {\r\n if (\r\n SIDEBAR_EL.classList.contains('collapsed') &&\r\n !popperTarget.contains(event.target) &&\r\n !reference.contains(event.target)\r\n ) {\r\n this.hide();\r\n }\r\n }\r\n\r\n hide() {\r\n this.instance.state.elements.popper.style.visibility = 'hidden';\r\n }\r\n}\r\n\r\nexport default Popper;\r\n","import { SUB_MENU_ELS } from './constants';\nimport Popper from './popper';\n\nclass Poppers {\n subMenuPoppers = [];\n\n constructor() {\n this.init();\n }\n\n init() {\n SUB_MENU_ELS.forEach((element) => {\n this.subMenuPoppers.push(new Popper(element, element.lastElementChild));\n this.closePoppers();\n });\n }\n\n togglePopper(target) {\n if (window.getComputedStyle(target).visibility === 'hidden') {\n target.style.visibility = 'visible';\n target.style.height = '100%'; \n } else {\n target.style.visibility = 'hidden';\n target.style.height = 0; \n }\n }\n\n updatePoppers() {\n this.subMenuPoppers.forEach((element) => {\n if (!element.instance.state.elements.popper.parentElement.classList.contains('open')) {\n element.instance.state.elements.popper.style.display = 'none';\n }\n element.instance.update();\n });\n }\n\n closePoppers() {\n this.subMenuPoppers.forEach((element) => {\n element.hide();\n });\n }\n}\n\nexport default Poppers;\n","/* eslint-disable no-param-reassign */\n/* eslint-disable no-unused-expressions */\nimport { ANIMATION_DURATION } from './constants';\n\nexport const slideUp = (target, duration = ANIMATION_DURATION) => {\n const { parentElement } = target;\n parentElement.classList.remove('open');\n target.style.transitionProperty = 'height, margin, padding';\n target.style.transitionDuration = `${duration}ms`;\n target.style.boxSizing = 'border-box';\n target.style.height = `${target.offsetHeight}px`;\n target.offsetHeight;\n target.style.overflow = 'hidden';\n target.style.height = 0;\n target.style.paddingTop = 0;\n target.style.paddingBottom = 0;\n target.style.marginTop = 0;\n target.style.marginBottom = 0;\n window.setTimeout(() => {\n target.style.display = 'none';\n target.style.removeProperty('height');\n target.style.removeProperty('padding-top');\n target.style.removeProperty('padding-bottom');\n target.style.removeProperty('margin-top');\n target.style.removeProperty('margin-bottom');\n target.style.removeProperty('overflow');\n target.style.removeProperty('transition-duration');\n target.style.removeProperty('transition-property');\n }, duration);\n};\n\nexport const slideDown = (target, duration = ANIMATION_DURATION) => {\n const { parentElement } = target;\n parentElement.classList.add('open');\n target.style.removeProperty('display');\n let { display } = window.getComputedStyle(target);\n if (display === 'none') display = 'block';\n target.style.display = display;\n const height = target.offsetHeight;\n target.style.overflow = 'hidden';\n target.style.height = 0;\n target.style.paddingTop = 0;\n target.style.paddingBottom = 0;\n target.style.marginTop = 0;\n target.style.marginBottom = 0;\n target.offsetHeight;\n target.style.boxSizing = 'border-box';\n target.style.transitionProperty = 'height, margin, padding';\n target.style.transitionDuration = `${duration}ms`;\n target.style.height = `${height}px`;\n target.style.removeProperty('padding-top');\n target.style.removeProperty('padding-bottom');\n target.style.removeProperty('margin-top');\n target.style.removeProperty('margin-bottom');\n window.setTimeout(() => {\n //target.style.height = '100%'; // Зачем-то я хотел так сделать.....\n target.style.removeProperty('height');\n target.style.removeProperty('overflow');\n target.style.removeProperty('transition-duration');\n target.style.removeProperty('transition-property');\n }, duration);\n};\n\nexport const slideToggle = (target, duration = ANIMATION_DURATION) => {\n if (window.getComputedStyle(target).display === 'none') return slideDown(target, duration);\n return slideUp(target, duration);\n};\n","// extracted by mini-css-extract-plugin\nexport {};","// 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))","// 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};","import './styles/styles.scss';\r\nimport { slideToggle, slideUp, slideDown } from './libs/slide';\r\nimport {\r\n ANIMATION_DURATION,\r\n FIRST_SUB_MENUS_BTN,\r\n INNER_SUB_MENUS_BTN,\r\n SIDEBAR_EL,\r\n} from './libs/constants';\r\nimport Poppers from './libs/poppers';\r\n\r\nconst PoppersInstance = new Poppers();\r\n\r\n/**\r\n * wait for the current animation to finish and update poppers position\r\n */\r\nconst updatePoppersTimeout = () => {\r\n setTimeout(() => {\r\n PoppersInstance.updatePoppers();\r\n }, ANIMATION_DURATION);\r\n};\r\n\r\n/**\r\n * sidebar collapse handler\r\n */\r\nconst btnCollapse = document.getElementById('btn-collapse');\r\nif (btnCollapse) {\r\n btnCollapse.addEventListener('click', () => {\r\n SIDEBAR_EL.classList.toggle('collapsed');\r\n PoppersInstance.closePoppers();\r\n if (SIDEBAR_EL.classList.contains('collapsed'))\r\n FIRST_SUB_MENUS_BTN.forEach((element) => {\r\n element.parentElement.classList.remove('open');\r\n });\r\n\r\n updatePoppersTimeout();\r\n });\r\n}\r\n\r\n/**\r\n * sidebar toggle handler (on break point )\r\n */\r\nconst btnToggle = document.getElementById('btn-toggle');\r\nif (btnToggle) {\r\n btnToggle.addEventListener('click', () => {\r\n SIDEBAR_EL.classList.toggle('toggled');\r\n\r\n updatePoppersTimeout();\r\n });\r\n}\r\n\r\n/**\r\n * toggle sidebar on overlay click\r\n */\r\nconst btnOverlay = document.getElementById('overlay');\r\nif (btnOverlay) {\r\n btnOverlay.addEventListener('click', () => {\r\n SIDEBAR_EL.classList.toggle('toggled');\r\n });\r\n}\r\n\r\nconst defaultOpenMenus = document.querySelectorAll('.menu-item.sub-menu.open');\r\n\r\ndefaultOpenMenus.forEach((element) => {\r\n element.lastElementChild.style.display = 'block';\r\n});\r\n\r\n/**\r\n * handle top level submenu click\r\n */\r\nFIRST_SUB_MENUS_BTN.forEach((element) => {\r\n element.addEventListener('click', () => {\r\n if (SIDEBAR_EL.classList.contains('collapsed'))\r\n PoppersInstance.togglePopper(element.nextElementSibling);\r\n else {\r\n /**\r\n * if menu has \"open-current-only\" class then only one submenu opens at a time\r\n */\r\n const parentMenu = element.closest('.menuLeft.open-current-submenu');\r\n if (parentMenu)\r\n parentMenu\r\n .querySelectorAll(':scope > ul > .menu-item.sub-menu > a')\r\n .forEach(\r\n (el) =>\r\n window.getComputedStyle(el.nextElementSibling).display !==\r\n 'none' && slideUp(el.nextElementSibling)\r\n );\r\n slideToggle(element.nextElementSibling);\r\n }\r\n });\r\n});\r\n\r\n/**\r\n * handle inner submenu click\r\n */\r\nINNER_SUB_MENUS_BTN.forEach((element) => {\r\n element.addEventListener('click', () => {\r\n slideToggle(element.nextElementSibling);\r\n });\r\n});\r\n"],"names":["ANIMATION_DURATION","SIDEBAR_EL","document","getElementById","SUB_MENU_ELS","querySelectorAll","FIRST_SUB_MENUS_BTN","INNER_SUB_MENUS_BTN","createPopper","Popper","instance","reference","popperTarget","constructor","init","placement","strategy","resize","modifiers","name","options","adaptive","fallbackPlacements","addEventListener","e","clicker","ro","ResizeObserver","update","observe","event","classList","contains","target","hide","state","elements","popper","style","visibility","Poppers","subMenuPoppers","forEach","element","push","lastElementChild","closePoppers","togglePopper","window","getComputedStyle","height","updatePoppers","parentElement","display","slideUp","duration","remove","transitionProperty","transitionDuration","boxSizing","offsetHeight","overflow","paddingTop","paddingBottom","marginTop","marginBottom","setTimeout","removeProperty","slideDown","add","slideToggle","PoppersInstance","updatePoppersTimeout","btnCollapse","toggle","btnToggle","btnOverlay","defaultOpenMenus","nextElementSibling","parentMenu","closest","el"],"sourceRoot":""}
\ No newline at end of file
diff --git a/web/skins/classic/assets/pro-sidebar-template/postcss.config.js b/web/skins/classic/assets/pro-sidebar-template/postcss.config.js
new file mode 100644
index 00000000000..391d35b18ed
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/postcss.config.js
@@ -0,0 +1,3 @@
+module.exports = {
+ plugins: ['postcss-preset-env'],
+};
diff --git a/web/skins/classic/assets/pro-sidebar-template/src/index.js b/web/skins/classic/assets/pro-sidebar-template/src/index.js
new file mode 100644
index 00000000000..753fc8ad420
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/src/index.js
@@ -0,0 +1,99 @@
+import './styles/styles.scss';
+import { slideToggle, slideUp, slideDown } from './libs/slide';
+import {
+ ANIMATION_DURATION,
+ FIRST_SUB_MENUS_BTN,
+ INNER_SUB_MENUS_BTN,
+ SIDEBAR_EL,
+} from './libs/constants';
+import Poppers from './libs/poppers';
+
+const PoppersInstance = new Poppers();
+
+/**
+ * wait for the current animation to finish and update poppers position
+ */
+const updatePoppersTimeout = () => {
+ setTimeout(() => {
+ PoppersInstance.updatePoppers();
+ }, ANIMATION_DURATION);
+};
+
+/**
+ * sidebar collapse handler
+ */
+const btnCollapse = document.getElementById('btn-collapse');
+if (btnCollapse) {
+ btnCollapse.addEventListener('click', () => {
+ SIDEBAR_EL.classList.toggle('collapsed');
+ PoppersInstance.closePoppers();
+ if (SIDEBAR_EL.classList.contains('collapsed'))
+ FIRST_SUB_MENUS_BTN.forEach((element) => {
+ element.parentElement.classList.remove('open');
+ });
+
+ updatePoppersTimeout();
+ });
+}
+
+/**
+ * sidebar toggle handler (on break point )
+ */
+const btnToggle = document.getElementById('btn-toggle');
+if (btnToggle) {
+ btnToggle.addEventListener('click', () => {
+ SIDEBAR_EL.classList.toggle('toggled');
+
+ updatePoppersTimeout();
+ });
+}
+
+/**
+ * toggle sidebar on overlay click
+ */
+const btnOverlay = document.getElementById('overlay');
+if (btnOverlay) {
+ btnOverlay.addEventListener('click', () => {
+ SIDEBAR_EL.classList.toggle('toggled');
+ });
+}
+
+const defaultOpenMenus = document.querySelectorAll('.menu-item.sub-menu.open');
+
+defaultOpenMenus.forEach((element) => {
+ element.lastElementChild.style.display = 'block';
+});
+
+/**
+ * handle top level submenu click
+ */
+FIRST_SUB_MENUS_BTN.forEach((element) => {
+ element.addEventListener('click', () => {
+ if (SIDEBAR_EL.classList.contains('collapsed'))
+ PoppersInstance.togglePopper(element.nextElementSibling);
+ else {
+ /**
+ * if menu has "open-current-only" class then only one submenu opens at a time
+ */
+ const parentMenu = element.closest('.menuLeft.open-current-submenu');
+ if (parentMenu)
+ parentMenu
+ .querySelectorAll(':scope > ul > .menu-item.sub-menu > a')
+ .forEach(
+ (el) =>
+ window.getComputedStyle(el.nextElementSibling).display !==
+ 'none' && slideUp(el.nextElementSibling)
+ );
+ slideToggle(element.nextElementSibling);
+ }
+ });
+});
+
+/**
+ * handle inner submenu click
+ */
+INNER_SUB_MENUS_BTN.forEach((element) => {
+ element.addEventListener('click', () => {
+ slideToggle(element.nextElementSibling);
+ });
+});
diff --git a/web/skins/classic/assets/pro-sidebar-template/src/libs/constants.js b/web/skins/classic/assets/pro-sidebar-template/src/libs/constants.js
new file mode 100644
index 00000000000..71f6683535e
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/src/libs/constants.js
@@ -0,0 +1,15 @@
+export const ANIMATION_DURATION = 300;
+
+export const SIDEBAR_EL = document.getElementById('sidebarMain');
+
+export const SUB_MENU_ELS = document.querySelectorAll(
+ '.sidebar-main-menu > ul > .menu-item.sub-menu'
+);
+
+export const FIRST_SUB_MENUS_BTN = document.querySelectorAll(
+ '.sidebar-main-menu > ul > .menu-item.sub-menu > a'
+);
+
+export const INNER_SUB_MENUS_BTN = document.querySelectorAll(
+ '.sidebar-main-menu > ul > .menu-item.sub-menu .menu-item.sub-menu > a'
+);
diff --git a/web/skins/classic/assets/pro-sidebar-template/src/libs/popper.js b/web/skins/classic/assets/pro-sidebar-template/src/libs/popper.js
new file mode 100644
index 00000000000..c20e44c8c1c
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/src/libs/popper.js
@@ -0,0 +1,65 @@
+import { createPopper } from '@popperjs/core';
+import { SIDEBAR_EL } from './constants';
+
+class Popper {
+ instance = null;
+ reference = null;
+ popperTarget = null;
+
+ constructor(reference, popperTarget) {
+ this.init(reference, popperTarget);
+ }
+
+ init(reference, popperTarget) {
+ this.reference = reference;
+ this.popperTarget = popperTarget;
+ this.instance = createPopper(this.reference, this.popperTarget, {
+ placement: 'right',
+ strategy: 'fixed',
+ resize: true,
+ modifiers: [
+ {
+ name: 'computeStyles',
+ options: {
+ adaptive: false,
+ },
+ },
+ {
+ name: 'flip',
+ options: {
+ fallbackPlacements: ['left', 'right'],
+ },
+ },
+ ],
+ });
+
+ document.addEventListener(
+ 'click',
+ (e) => this.clicker(e, this.popperTarget, this.reference),
+ false,
+ );
+
+ const ro = new ResizeObserver(() => {
+ this.instance.update();
+ });
+
+ ro.observe(this.popperTarget);
+ ro.observe(this.reference);
+ }
+
+ clicker(event, popperTarget, reference) {
+ if (
+ SIDEBAR_EL.classList.contains('collapsed') &&
+ !popperTarget.contains(event.target) &&
+ !reference.contains(event.target)
+ ) {
+ this.hide();
+ }
+ }
+
+ hide() {
+ this.instance.state.elements.popper.style.visibility = 'hidden';
+ }
+}
+
+export default Popper;
diff --git a/web/skins/classic/assets/pro-sidebar-template/src/libs/poppers.js b/web/skins/classic/assets/pro-sidebar-template/src/libs/poppers.js
new file mode 100644
index 00000000000..93dd6d88913
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/src/libs/poppers.js
@@ -0,0 +1,44 @@
+import { SUB_MENU_ELS } from './constants';
+import Popper from './popper';
+
+class Poppers {
+ subMenuPoppers = [];
+
+ constructor() {
+ this.init();
+ }
+
+ init() {
+ SUB_MENU_ELS.forEach((element) => {
+ this.subMenuPoppers.push(new Popper(element, element.lastElementChild));
+ this.closePoppers();
+ });
+ }
+
+ togglePopper(target) {
+ if (window.getComputedStyle(target).visibility === 'hidden') {
+ target.style.visibility = 'visible';
+ target.style.height = '100%';
+ } else {
+ target.style.visibility = 'hidden';
+ target.style.height = 0;
+ }
+ }
+
+ updatePoppers() {
+ this.subMenuPoppers.forEach((element) => {
+ if (!element.instance.state.elements.popper.parentElement.classList.contains('open')) {
+ element.instance.state.elements.popper.style.display = 'none';
+ }
+ element.instance.update();
+ });
+ }
+
+ closePoppers() {
+ this.subMenuPoppers.forEach((element) => {
+ element.hide();
+ });
+ }
+}
+
+export default Poppers;
diff --git a/web/skins/classic/assets/pro-sidebar-template/src/libs/slide.js b/web/skins/classic/assets/pro-sidebar-template/src/libs/slide.js
new file mode 100644
index 00000000000..ac3e737513d
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/src/libs/slide.js
@@ -0,0 +1,67 @@
+/* eslint-disable no-param-reassign */
+/* eslint-disable no-unused-expressions */
+import { ANIMATION_DURATION } from './constants';
+
+export const slideUp = (target, duration = ANIMATION_DURATION) => {
+ const { parentElement } = target;
+ parentElement.classList.remove('open');
+ target.style.transitionProperty = 'height, margin, padding';
+ target.style.transitionDuration = `${duration}ms`;
+ target.style.boxSizing = 'border-box';
+ target.style.height = `${target.offsetHeight}px`;
+ target.offsetHeight;
+ target.style.overflow = 'hidden';
+ target.style.height = 0;
+ target.style.paddingTop = 0;
+ target.style.paddingBottom = 0;
+ target.style.marginTop = 0;
+ target.style.marginBottom = 0;
+ window.setTimeout(() => {
+ target.style.display = 'none';
+ target.style.removeProperty('height');
+ target.style.removeProperty('padding-top');
+ target.style.removeProperty('padding-bottom');
+ target.style.removeProperty('margin-top');
+ target.style.removeProperty('margin-bottom');
+ target.style.removeProperty('overflow');
+ target.style.removeProperty('transition-duration');
+ target.style.removeProperty('transition-property');
+ }, duration);
+};
+
+export const slideDown = (target, duration = ANIMATION_DURATION) => {
+ const { parentElement } = target;
+ parentElement.classList.add('open');
+ target.style.removeProperty('display');
+ let { display } = window.getComputedStyle(target);
+ if (display === 'none') display = 'block';
+ target.style.display = display;
+ const height = target.offsetHeight;
+ target.style.overflow = 'hidden';
+ target.style.height = 0;
+ target.style.paddingTop = 0;
+ target.style.paddingBottom = 0;
+ target.style.marginTop = 0;
+ target.style.marginBottom = 0;
+ target.offsetHeight;
+ target.style.boxSizing = 'border-box';
+ target.style.transitionProperty = 'height, margin, padding';
+ target.style.transitionDuration = `${duration}ms`;
+ target.style.height = `${height}px`;
+ target.style.removeProperty('padding-top');
+ target.style.removeProperty('padding-bottom');
+ target.style.removeProperty('margin-top');
+ target.style.removeProperty('margin-bottom');
+ window.setTimeout(() => {
+ //target.style.height = '100%'; // Зачем-то я хотел так сделать.....
+ target.style.removeProperty('height');
+ target.style.removeProperty('overflow');
+ target.style.removeProperty('transition-duration');
+ target.style.removeProperty('transition-property');
+ }, duration);
+};
+
+export const slideToggle = (target, duration = ANIMATION_DURATION) => {
+ if (window.getComputedStyle(target).display === 'none') return slideDown(target, duration);
+ return slideUp(target, duration);
+};
diff --git a/web/skins/classic/assets/pro-sidebar-template/src/styles/_layout.scss b/web/skins/classic/assets/pro-sidebar-template/src/styles/_layout.scss
new file mode 100644
index 00000000000..a02aedaf684
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/src/styles/_layout.scss
@@ -0,0 +1,22 @@
+/*
+.layout {
+ z-index: 1;
+ .header {
+ display: flex;
+ align-items: center;
+ padding: 20px;
+ }
+ .content {
+ padding: 12px 50px;
+ display: flex;
+ flex-direction: column;
+ }
+
+ .footer {
+ text-align: center;
+ margin-top: auto;
+ margin-bottom: 20px;
+ padding: 20px;
+ }
+}
+*/
\ No newline at end of file
diff --git a/web/skins/classic/assets/pro-sidebar-template/src/styles/_menu.scss b/web/skins/classic/assets/pro-sidebar-template/src/styles/_menu.scss
new file mode 100644
index 00000000000..51ed9b244f2
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/src/styles/_menu.scss
@@ -0,0 +1,301 @@
+@keyframes swing {
+ 0%,
+ 30%,
+ 50%,
+ 70%,
+ 100% {
+ transform: rotate(0deg);
+ }
+
+ 10% {
+ transform: rotate(10deg);
+ }
+
+ 40% {
+ transform: rotate(-10deg);
+ }
+
+ 60% {
+ transform: rotate(5deg);
+ }
+
+ 80% {
+ transform: rotate(-5deg);
+ }
+}
+
+.layout-main {
+ .sidebar-main {
+ .sidebar-main-menu {
+ ul {
+ list-style-type: none;
+ padding: 0;
+ margin: 0;
+ }
+ .menu-header {
+ font-weight: 600;
+ padding: 10px 25px;
+ font-size: 0.8em;
+ letter-spacing: 2px;
+ transition: opacity 0.3s;
+ opacity: 0.5;
+ }
+ .menu-item {
+ a {
+ display: flex;
+ align-items: center;
+ height: 38px;
+ padding: 0 20px;
+ color: $text-color;
+
+ .menu-icon {
+ font-size: 1.2rem;
+ width: 35px;
+ min-width: 35px;
+ height: 35px;
+ line-height: 35px;
+ text-align: center;
+ display: inline-block;
+ margin-right: 10px;
+ border-radius: 2px;
+ transition: color 0.3s;
+ i {
+ // display: inline-block;
+ }
+ }
+
+ .menu-title {
+ font-size: 0.9em;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ flex-grow: 1;
+ transition: color 0.3s;
+ }
+ .menu-prefix,
+ .menu-suffix {
+ display: inline-block;
+ padding: 5px;
+ opacity: 1;
+ transition: opacity 0.3s;
+ }
+ &:hover {
+ .menu-title {
+ color: $secondary-text-color;
+ }
+ .menu-icon {
+ color: $secondary-text-color;
+ i {
+ animation: swing ease-in-out 0.5s 1 alternate;
+ }
+ }
+ &::after {
+ border-color: $secondary-text-color !important;
+ }
+ }
+ }
+
+ &.sub-menu {
+ position: relative;
+ > a {
+ &::after {
+ content: '';
+ transition: transform 0.3s;
+ border-right: 2px solid currentcolor;
+ border-bottom: 2px solid currentcolor;
+ width: 5px;
+ height: 5px;
+ transform: rotate(-45deg);
+ }
+ }
+
+ > .sub-menu-list {
+ padding-left: 20px;
+ display: none;
+ overflow: hidden;
+ z-index: 999;
+ }
+ &.open {
+ > a {
+ color: $secondary-text-color;
+ &::after {
+ transform: rotate(45deg);
+ }
+ }
+ }
+ }
+
+ &.active {
+ > a {
+ .menu-title {
+ color: $secondary-text-color;
+ }
+ &::after {
+ border-color: $secondary-text-color;
+ }
+ .menu-icon {
+ color: $secondary-text-color;
+ }
+ }
+ }
+ }
+ > ul > .sub-menu > .sub-menu-list {
+ background-color: $secondary-bg-color;
+ }
+
+ &.icon-shape-circle,
+ &.icon-shape-rounded,
+ &.icon-shape-square {
+ .menu-item a .menu-icon {
+ background-color: $secondary-bg-color;
+ }
+ }
+
+ &.icon-shape-circle .menu-item a .menu-icon {
+ border-radius: 50%;
+ }
+ &.icon-shape-rounded .menu-item a .menu-icon {
+ border-radius: 4px;
+ }
+ &.icon-shape-square .menu-item a .menu-icon {
+ border-radius: 0;
+ }
+ }
+
+ &:not(.collapsed) {
+ .sidebar-main-menu > ul {
+ > .menu-item {
+ &.sub-menu {
+ > .sub-menu-list {
+ visibility: visible !important;
+ position: static !important;
+ transform: translate(0, 0) !important;
+ }
+ }
+ }
+ }
+ }
+
+ &.collapsed {
+ .sidebar-main-menu > ul {
+ > .menu-header {
+ opacity: 0;
+ }
+ > .menu-item {
+ > a {
+ .menu-prefix,
+ .menu-suffix {
+ opacity: 0;
+ }
+ }
+ &.sub-menu {
+ > a {
+ &::after {
+ content: '';
+ width: 5px;
+ height: 5px;
+ background-color: currentcolor;
+ border-radius: 50%;
+ display: inline-block;
+ position: absolute;
+ right: 10px;
+ top: 50%;
+ border: none;
+ transform: translateY(-50%);
+ }
+ &:hover {
+ &::after {
+ background-color: $secondary-text-color;
+ }
+ }
+ }
+ > .sub-menu-list {
+ transition: none !important;
+ width: 200px;
+ margin-left: 3px !important;
+ border-radius: 4px;
+ display: block !important;
+ }
+ }
+ &.active {
+ > a {
+ &::after {
+ background-color: $secondary-text-color;
+ }
+ }
+ }
+ }
+ }
+ }
+ &.has-bg-image {
+ .sidebar-main-menu {
+ &.icon-shape-circle,
+ &.icon-shape-rounded,
+ &.icon-shape-square {
+ .menu-item a .menu-icon {
+ background-color: rgba($secondary-bg-color, 0.6);
+ }
+ }
+ }
+ &:not(.collapsed) {
+ .sidebar-main-menu {
+ > ul > .sub-menu > .sub-menu-list {
+ background-color: rgba($secondary-bg-color, 0.6);
+ }
+ }
+ }
+ }
+ }
+
+ &.rtl {
+ .sidebar-main {
+ .sidebar-main-menu {
+ .menu-item {
+ a {
+ .menu-icon {
+ margin-left: 10px;
+ margin-right: 0;
+ }
+ }
+
+ &.sub-menu {
+ > a {
+ &::after {
+ transform: rotate(135deg);
+ }
+ }
+
+ > .sub-menu-list {
+ padding-left: 0;
+ padding-right: 20px;
+ }
+ &.open {
+ > a {
+ &::after {
+ transform: rotate(45deg);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ &.collapsed {
+ .sidebar-main-menu > ul {
+ > .menu-item {
+ &.sub-menu {
+ a::after {
+ right: auto;
+ left: 10px;
+ }
+
+ > .sub-menu-list {
+ margin-left: -3px !important;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/web/skins/classic/assets/pro-sidebar-template/src/styles/_sidebar.scss b/web/skins/classic/assets/pro-sidebar-template/src/styles/_sidebar.scss
new file mode 100644
index 00000000000..46937ef9f5b
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/src/styles/_sidebar.scss
@@ -0,0 +1,92 @@
+.sidebar-main {
+ color: $text-color;
+ position: relative;
+ height: 100%;
+ max-height: 100%;
+ overflow: hidden !important;
+
+ .image-wrapper {
+ overflow: hidden;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1;
+ display: none;
+ > img {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ object-position: center;
+ }
+ }
+ &.has-bg-image {
+ .sidebar-layout {
+ background-color: rgba($bg-color, 0.85);
+ }
+ .image-wrapper {
+ display: block;
+ opacity: 0.8;
+ // filter: blur(3px);
+ }
+ }
+
+ .sidebar-layout {
+ height: 100%;
+ max-height: 100%;
+ min-height: 100%;
+ overflow-x: hidden;
+ overflow-y: auto;
+ display: flex;
+ flex-direction: column;
+ position: relative;
+ background-color: $bg-color;
+ z-index: 2;
+ opacity: 0.85;
+
+ &::-webkit-scrollbar-thumb {
+ border-radius: 4px;
+ }
+
+ &:hover {
+ &::-webkit-scrollbar-thumb {
+ background-color: lighten($bg-color, 15);
+ }
+ }
+
+ &::-webkit-scrollbar {
+ width: 6px;
+ background-color: $bg-color;
+ }
+
+ .sidebar-header {
+ height: $sidebar-header-height;
+ min-height: $sidebar-header-height;
+ display: flex;
+ align-items: center;
+ padding: 8px 22px;
+ > span {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
+ }
+ .sidebar-content {
+ flex-grow: 1;
+ padding: 10px 0;
+ }
+ .sidebar-footer {
+ height: $sidebar-footer-height;
+ min-height: $sidebar-footer-height;
+ display: flex;
+ align-items: center;
+ padding: 0 20px;
+ > span {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ }
+ }
+ }
+}
diff --git a/web/skins/classic/assets/pro-sidebar-template/src/styles/_variables.scss b/web/skins/classic/assets/pro-sidebar-template/src/styles/_variables.scss
new file mode 100644
index 00000000000..a8894c35371
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/src/styles/_variables.scss
@@ -0,0 +1,10 @@
+$text-color: #44b8eb;
+$secondary-text-color: #dee2ec;
+
+$bg-color: #0c1e35;
+$secondary-bg-color: #0b1a2c;
+
+$border-color: rgba(#535d7d, 0.3);
+
+$sidebar-header-height: 40px;
+$sidebar-footer-height: 230px;
diff --git a/web/skins/classic/assets/pro-sidebar-template/src/styles/css-pro-layout.scss b/web/skins/classic/assets/pro-sidebar-template/src/styles/css-pro-layout.scss
new file mode 100644
index 00000000000..2545f725cdd
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/src/styles/css-pro-layout.scss
@@ -0,0 +1,165 @@
+@import './variables_css-pro-layout.scss';
+
+@mixin break-point {
+ position: fixed;
+ left: -$sidebar-width;
+ height: 100%;
+ top: 0;
+ z-index: 100;
+ &.collapsed {
+ left: -$sidebar-collapsed-width;
+ }
+ &.toggled {
+ left: 0;
+ ~ .overlay {
+ display: block;
+ }
+ }
+
+ ~ .layout-main {
+ .header {
+ width: 100% !important;
+ transition: none;
+ }
+ }
+}
+
+$breakpoints: (
+ 'break-point-xs': $breakpoint-xs,
+ 'break-point-sm': $breakpoint-sm,
+ 'break-point-md': $breakpoint-md,
+ 'break-point-lg': $breakpoint-lg,
+ 'break-point-xl': $breakpoint-xl,
+ 'break-point-xxl': $breakpoint-xxl,
+);
+
+@mixin break-point-rtl {
+ left: auto;
+ right: -$sidebar-width;
+ &.collapsed {
+ left: auto;
+ right: -$sidebar-collapsed-width;
+ }
+ &.toggled {
+ left: auto;
+ right: 0;
+ }
+}
+
+@mixin setBreakPoint($name, $value) {
+ &.#{$name} {
+ @media (max-width: $value) {
+ @include break-point;
+ }
+ }
+}
+
+.layout-main {
+ min-height: 100%;
+ display: flex;
+ flex-direction: column;
+ position: relative;
+ flex-grow: 1;
+
+ &.has-sidebar {
+ flex-direction: row;
+ }
+ .header {
+ transition: width, 0.3s;
+ height: $header-height;
+ min-height: $header-height;
+ position: relative;
+ }
+ .sidebar-main {
+ width: $sidebar-width;
+ min-width: $sidebar-width;
+ transition: width, left, right, 0.3s;
+ &.collapsed {
+ width: $sidebar-collapsed-width;
+ min-width: $sidebar-collapsed-width;
+ }
+
+ @each $key, $value in $breakpoints {
+ @include setBreakPoint($key, $value);
+ }
+ }
+ .footer {
+ height: $footer-height;
+ min-height: $footer-height;
+ }
+ .content {
+ flex-grow: 1;
+ }
+
+ .overlay {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ background-color: rgba(#000, 0.3);
+ z-index: 99;
+ display: none;
+ }
+
+ .sidebar-toggler {
+ display: none;
+
+ @each $key, $value in $breakpoints {
+ &.#{$key} {
+ @media (max-width: $value) {
+ display: initial;
+ }
+ }
+ }
+ }
+
+ &.fixed-sidebar {
+ height: 100%;
+ .sidebar {
+ height: 100%;
+ overflow: auto;
+ ~ .layout-main {
+ height: 100%;
+ overflow: auto;
+ }
+ }
+ }
+
+ &.fixed-header {
+ .header {
+ position: fixed;
+ width: 100%;
+ z-index: 2;
+ ~ .layout-main,
+ ~ .content {
+ margin-top: $header-height;
+ }
+ }
+ &.fixed-sidebar {
+ .header {
+ width: calc(100% - #{$sidebar-width});
+ }
+ .sidebar.collapsed {
+ ~ .layout-main {
+ .header {
+ width: calc(100% - #{$sidebar-collapsed-width});
+ }
+ }
+ }
+ }
+ }
+
+ &.rtl {
+ direction: rtl;
+ .sidebar {
+ @each $key, $value in $breakpoints {
+ &.#{$key} {
+ @media (max-width: $value) {
+ @include break-point-rtl;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/web/skins/classic/assets/pro-sidebar-template/src/styles/styles.scss b/web/skins/classic/assets/pro-sidebar-template/src/styles/styles.scss
new file mode 100644
index 00000000000..3b0752287d9
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/src/styles/styles.scss
@@ -0,0 +1,179 @@
+$sidebar-width: 250px;
+$sidebar-collapsed-width: 80px;
+
+/*@import 'css-pro-layout/dist/scss/css-pro-layout.scss';*/
+@import './css-pro-layout.scss';
+@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@100;200;300;400;500;600;700;800;900&display=swap');
+/*@import '../../public//assets//remixicon/remixicon.css';*/
+@import './variables';
+@import './layout';
+@import './sidebar';
+@import './menu';
+
+/*
+* {
+ box-sizing: border-box;
+}
+
+body {
+ margin: 0;
+ height: 100vh;
+ font-family: 'Poppins', sans-serif;
+ color: #3f4750;
+ font-size: 0.9rem;
+}
+*/
+a {
+ text-decoration: none;
+}
+
+@media (max-width: $breakpoint-lg) {
+ #btn-collapse {
+ display: none;
+ }
+}
+
+.layout-main {
+ .sidebar-main {
+ .pro-sidebar-logo {
+ color: #ffa801;
+ display: flex;
+ align-items: center;
+
+ > div {
+ width: 45px;
+ min-width: 45px;
+ height: 25px;
+ min-height: 25px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 8px;
+ color: white;
+ font-size: 22px;
+ font-weight: 700;
+ background-color: #ffa801;
+ margin-right: 10px;
+ margin-left: -10px;
+ }
+
+ > h5 {
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ font-size: 22px;
+ line-height: 25px;
+ transition: opacity 0.3s;
+ opacity: 1;
+ margin: 0 17px;
+ }
+ }
+
+ .footer-box {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+ /* font-size: 0.8em; */
+ padding: 20px 0;
+ border-radius: 8px;
+ width: 180px;
+ min-width: 190px;
+ margin: 0 auto;
+ background-color: #162d4a;
+ img.react-logo {
+ width: 40px;
+ height: 40px;
+ margin-bottom: 10px;
+ }
+ a {
+ color: #fff;
+ font-weight: 600;
+ margin-bottom: 10px;
+ }
+ }
+
+ .sidebar-collapser {
+ transition: left, right, 0.3s;
+ position: fixed;
+ left: calc(#{$sidebar-width} - 20px);
+ top: 40px;
+ width: 20px;
+ height: 20px;
+ border-radius: 50%;
+ background-color: #00829f;
+ display: -webkit-box;
+ display: -ms-flexbox;
+ display: flex;
+ -ms-flex-align: center;
+ align-items: center;
+ justify-content: center;
+ font-size: 1.2em;
+ transform: translateX(50%);
+ z-index: 111;
+ cursor: pointer;
+ color: white;
+ box-shadow: 1px 1px 4px $bg-color;
+ }
+
+ &.has-bg-image {
+ .footer-box {
+ /* background-color: rgba(#162d4a, 0.7); */
+ background-color: #34495e;
+ }
+ }
+
+ &.collapsed {
+ .pro-sidebar-logo {
+ > h5 {
+ opacity: 0;
+ }
+ }
+ .footer-box {
+ display: none;
+ }
+ .sidebar-collapser {
+ left: calc(#{$sidebar-collapsed-width} - 20px);
+ i {
+ transform: rotate(180deg);
+ }
+ }
+ }
+ }
+}
+
+.badge {
+ display: inline-block;
+ padding: 0.25em 0.4em;
+ font-size: 75%;
+ font-weight: 700;
+ line-height: 1;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: 0.25rem;
+ color: #fff;
+ background-color: #6c757d;
+
+ &.primary {
+ background-color: #ab2dff;
+ }
+
+ &.secondary {
+ background-color: #079b0b;
+ }
+}
+
+.sidebar-toggler {
+ position: fixed;
+ right: 20px;
+ top: 20px;
+}
+
+.social-links {
+ a {
+ margin: 0 10px;
+ color: #3f4750;
+ }
+}
diff --git a/web/skins/classic/assets/pro-sidebar-template/src/styles/variables_css-pro-layout.scss b/web/skins/classic/assets/pro-sidebar-template/src/styles/variables_css-pro-layout.scss
new file mode 100644
index 00000000000..8711a67214a
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/src/styles/variables_css-pro-layout.scss
@@ -0,0 +1,11 @@
+$sidebar-width: 280px !default;
+$sidebar-collapsed-width: 80px !default;
+$header-height: 64px !default;
+$footer-height: 64px !default;
+
+$breakpoint-xs: 480px !default;
+$breakpoint-sm: 576px !default;
+$breakpoint-md: 768px !default;
+$breakpoint-lg: 992px !default;
+$breakpoint-xl: 1200px !default;
+$breakpoint-xxl: 1600px !default;
diff --git a/web/skins/classic/assets/pro-sidebar-template/webpack.config.js b/web/skins/classic/assets/pro-sidebar-template/webpack.config.js
new file mode 100644
index 00000000000..fdeaf7917f1
--- /dev/null
+++ b/web/skins/classic/assets/pro-sidebar-template/webpack.config.js
@@ -0,0 +1,47 @@
+const MiniCssExtractPlugin = require('mini-css-extract-plugin');
+//const CopyWebpackPlugin = require('copy-webpack-plugin');
+const path = require('path');
+
+module.exports = {
+ plugins: [
+ new MiniCssExtractPlugin(),
+// new CopyWebpackPlugin({
+// patterns: [{ from: 'public' }],
+// }),
+ ],
+ module: {
+ rules: [
+ {
+ test: /\.js$/,
+ use: { loader: 'babel-loader' },
+ exclude: /node_modules/,
+ },
+ {
+ test: /\.(css|scss|sass|less)$/i,
+ use: [
+ MiniCssExtractPlugin.loader,
+ 'css-loader',
+ 'sass-loader',
+ // 'less-loader',
+ 'postcss-loader',
+ ],
+ },
+ {
+ test: /\.(png|svg|jpg|gif)$/,
+ use: ['file-loader'],
+ },
+ {
+ test: /\.(woff|woff2|eot|ttf|otf)$/,
+ use: ['file-loader'],
+ },
+ ],
+ },
+ mode: 'production',
+ target: 'web',
+ devtool: 'source-map',
+ devServer: {
+ static: {
+ directory: path.join(__dirname, 'public'),
+ },
+ },
+};
diff --git a/web/skins/classic/assets/swiped-events/dist/swiped-events.min.js b/web/skins/classic/assets/swiped-events/dist/swiped-events.min.js
new file mode 100644
index 00000000000..9bd634655eb
--- /dev/null
+++ b/web/skins/classic/assets/swiped-events/dist/swiped-events.min.js
@@ -0,0 +1,9 @@
+/*!
+ * swiped-events.js - v1.2.0
+ * Pure JavaScript swipe events
+ * https://github.com/john-doherty/swiped-events
+ * @inspiration https://stackoverflow.com/questions/16348031/disable-scrolling-when-touch-moving-certain-element
+ * @author John Doherty
+ * @license MIT
+ */
+!function(t,e){"use strict";"function"!=typeof t.CustomEvent&&(t.CustomEvent=function(t,n){n=n||{bubbles:!1,cancelable:!1,detail:void 0};var a=e.createEvent("CustomEvent");return a.initCustomEvent(t,n.bubbles,n.cancelable,n.detail),a},t.CustomEvent.prototype=t.Event.prototype),e.addEventListener("touchstart",function(t){if("true"===t.target.getAttribute("data-swipe-ignore"))return;l=t.target,r=Date.now(),n=t.touches[0].clientX,a=t.touches[0].clientY,u=0,i=0,o=t.touches.length},!1),e.addEventListener("touchmove",function(t){if(!n||!a)return;var e=t.touches[0].clientX,r=t.touches[0].clientY;u=n-e,i=a-r},!1),e.addEventListener("touchend",function(t){if(l!==t.target)return;var c=parseInt(s(l,"data-swipe-threshold","20"),10),d=s(l,"data-swipe-unit","px"),p=parseInt(s(l,"data-swipe-timeout","500"),10),h=Date.now()-r,v="",b=t.changedTouches||t.touches||[];"vh"===d&&(c=Math.round(c/100*e.documentElement.clientHeight));"vw"===d&&(c=Math.round(c/100*e.documentElement.clientWidth));Math.abs(u)>Math.abs(i)?Math.abs(u)>c&&h0?"swiped-left":"swiped-right"):Math.abs(i)>c&&h
0?"swiped-up":"swiped-down");if(""!==v){var E={dir:v.replace(/swiped-/,""),touchType:(b[0]||{}).touchType||"direct",fingers:o,xStart:parseInt(n,10),xEnd:parseInt((b[0]||{}).clientX||-1,10),yStart:parseInt(a,10),yEnd:parseInt((b[0]||{}).clientY||-1,10)};l.dispatchEvent(new CustomEvent("swiped",{bubbles:!0,cancelable:!0,detail:E})),l.dispatchEvent(new CustomEvent(v,{bubbles:!0,cancelable:!0,detail:E}))}n=null,a=null,r=null},!1);var n=null,a=null,u=null,i=null,r=null,l=null,o=0;function s(t,n,a){for(;t&&t!==e.documentElement;){var u=t.getAttribute(n);if(u)return u;t=t.parentNode}return a}}(window,document);
\ No newline at end of file
diff --git a/web/skins/classic/assets/version b/web/skins/classic/assets/version
index 2676b3e6ba9..77f7a6f9ffe 100644
--- a/web/skins/classic/assets/version
+++ b/web/skins/classic/assets/version
@@ -5,3 +5,12 @@ https://unpkg.com/@panzoom/panzoom@4.5.1/dist/panzoom.min.js
***********************************
gridstack - v11.1.2 on Dec 9, 2024 (Newer versions have a significant bug: https://github.com/gridstack/gridstack.js/issues/2978)
https://github.com/gridstack/gridstack.js
+***********************************
+pro-sidebar-template - Feb 1, 2023 with minor changes IgorA100
+https://github.com/azouaoui-med/pro-sidebar-template
+***********************************
+swiped-events - v. 1.2.0 Apr 27, 2024
+https://github.com/john-doherty/swiped-events
+***********************************
+mb.extruder Oct 24, 2018 with magor changes IgorA100
+https://github.com/pupunzi/jquery.mb.extruder
diff --git a/web/skins/classic/css/base/sidebar.css b/web/skins/classic/css/base/sidebar.css
new file mode 100644
index 00000000000..18cc7e04c89
--- /dev/null
+++ b/web/skins/classic/css/base/sidebar.css
@@ -0,0 +1,323 @@
+.layout-main .sidebar-main a.text-success:focus,
+.layout-main .sidebar-main a.text-success:hover { /* FIX bootstrap on a dark background*/
+ color: #007bff !important;
+}
+
+.layout-main .sidebar-main.collapsed .hidden-for-collapsed {
+ display: none;
+}
+
+/* +++ Scrollbar for menu in left sidebar NEEDS MORE COMPACT */
+#navbar-container,
+.layout-main .sidebar-main .sidebar-layout,
+.layout-main .sidebar-main .sidebar-content::-webkit-scrollbar-track,
+.layout-main .sidebar-main .sidebar-layout::-webkit-scrollbar-track ,
+.layout-main .sidebar-main .extruder-wrapper::-webkit-scrollbar-track ,
+.layout-main .sidebar-main .extruder-content .filter-block::-webkit-scrollbar-track {
+ background-color: var(--backgroundMediumDark); /* #485460 */
+}
+
+.layout-main .sidebar-main .sidebar-content::-webkit-scrollbar-thumb,
+.layout-main .sidebar-main .sidebar-layout::-webkit-scrollbar-thumb,
+.layout-main .sidebar-main .extruder-wrapper::-webkit-scrollbar-thumb,
+.layout-main .sidebar-main .extruder-content .filter-block::-webkit-scrollbar-thumb {
+ background-color: var(--sliderBG);
+ border-radius: 6px;
+ border: 0px solid var(--scrollbarBG);
+ width: 6px;
+ height: 6px;
+}
+
+.layout-main .sidebar-main .sidebar-content::-webkit-scrollbar,
+.layout-main .sidebar-main .sidebar-layout::-webkit-scrollbar,
+.layout-main .sidebar-main .extruder-wrapper::-webkit-scrollbar,
+.layout-main .sidebar-main .extruder-content .filter-block::-webkit-scrollbar {
+ width: 6px;
+ height: 6px;
+}
+
+.layout-main .sidebar-main .sidebar-layout:hover::-webkit-scrollbar-thumb { /* this is also defined in the _sidebar.scss file */
+ background-color: var(--sliderBG);
+}
+/* --- Scrollbar for menu in left sidebar */
+
+.layout-main .sidebar-main .sidebar-post-header {
+ padding: 5px 0 5px 0;
+}
+
+.layout-main .sidebar-main .sidebar-main-menu,
+.layout-main .sidebar-main .sidebar-post-header {
+ text-align: left;
+}
+
+.layout-main .sidebar-main .sidebar-layout .sidebar-content {
+ overflow-x: hidden;
+ overflow-y: auto;
+}
+
+.layout-main .sidebar-main.has-bg-image:not(.collapsed) .sidebar-main-menu > ul > .sub-menu > .sub-menu-list {
+ background-color: #34495e;
+}
+
+.layout-main .sidebar-main .sidebar-main-menu .menu-item a .menu-title, /* FIX _menu.scss */
+.layout-main .sidebar-main .sidebar-post-header .menu-item a .menu-title {
+ /*font-size: 0.9rem;*/
+ font-size: inherit;
+ overflow: hidden;
+ white-space: nowrap;
+}
+
+.layout-main .sidebar-main .sidebar-post-header .menu-item a {
+ display: flex;
+ align-items: center;
+ padding: 0 20px;
+}
+
+.layout-main .sidebar-main .sidebar-post-header .menu-item a .menu-icon {
+ font-size: 1.2rem;
+ width: 35px;
+ min-width: 35px;
+ height: 35px;
+ line-height: 35px;
+ text-align: center;
+ display: inline-block;
+ margin-right: 10px;
+ border-radius: 2px;
+ transition: color 0.3s;
+}
+
+/* +++ MontageRewiev Filter Alignment */
+.layout-main .sidebar-main .chosen-container {
+ text-align: left;
+ min-width: 11em;
+ width: 100% !important;
+}
+/* --- */
+
+body.sticky .content-main {
+ display: flex;
+ flex-direction: column;
+ overflow: hidden;
+}
+
+.content-main {
+ width: 100%;
+ overflow: auto;
+ position: relative;
+}
+
+/* We don't need to see the filter and other things (that we cut out). */
+.montagereview-page .content-main .controlHeader,
+.montagereview-page .content-main #fieldsTable,
+.console-page .content-main #fbpanel,
+.console-page a[data-flip-control-object="#fbpanel"], /* Filter visibility control button */
+.montage-page .content-main #filters_form,
+.watch-page .content-main .controlHeader,
+.report_event_audit-page #content form,
+.events-page .content-main #fieldsTable,
+.events-page a[data-flip-control-object="#fieldsTable"], /* Filter visibility control button */
+.options-page .content-main #sidebar,
+.navbar-brand,
+#navbar-one {
+ display: none !important;
+}
+
+#monitorList {
+ overflow-y: auto; /* CHECK!!! PROBABLY THIS SHOULD ALWAYS BE USED, AND NOT JUST FOR STICK MODE!!! */
+}
+
+/* Align the entire bar to the left side */
+.navbars {
+ text-align: left;
+}
+
+#btn-collapse {
+ top: 11px;
+}
+
+#wrapperBtnCloseExtruder{ /* Extruder block close button on mobile devices */
+ display: none;
+}
+
+@media (max-width: 992px) {
+ /* +++ Manage the collapse/expand menu button for mobile devices with hidden menu */
+ #btn-collapse {
+ display: flex;
+ }
+
+ #sidebarMain.sidebar-main:not(.toggled) #btn-collapse {
+ left: -50px; /* Ideally, you need to set the value here as for ".layout-main .sidebar-main.break-point-lg" or -250 or -80. But even now the icon motion looks very good */
+ }
+ /* --- */
+
+ #extruderLeft {
+ top: 0 !important;
+ left: 0 !important;
+ }
+
+ #wrapperBtnCloseExtruder{
+ position: relative;
+ top: 0px;
+ right: 0px;
+ display: flex;
+ justify-content: flex-end;
+ }
+
+ .extruder-content > .text:first-child {
+ width: 100% !important;
+ }
+}
+
+@media (max-height: 500px) {
+ .layout-main .sidebar-main .sidebar-content,
+ .layout-main .sidebar-main .sidebar-footer { /* Sidebar is not divided into Header, Footer and content. Everything is one and everything is scrollable */
+ display: contents;
+ }
+}
+
+.sidebar-toggler { /* also set in pro-sidebar-template/src/styles/styles.scss */
+ position: relative;
+ right: 0;
+ top: 0;
+}
+
+#navbar-two { /* THE PANEL MUST ALWAYS BE VISIBLE, OTHERWISE IT COULD BE HIDDEN BY A BUTTON (id="flip") */
+ display: block !important;
+}
+
+/* Choice at the bar */
+#panel .dropdown-menu.show.overflown {
+ display: contents;
+}
+
+#panel .dropdown-menu.show:not(.overflown) {
+ display: block;
+ top: 27px;
+}
+
+/* +++ THIS IS REMAINING FROM THE TOP STATUS LINE */
+#reload {
+ position: relative;
+ display: inline-block;
+ white-space: nowrap;
+ overflow-x: auto;
+ padding: 10px 5px 10px 15px
+}
+
+@media (max-width: 992px) { /* moment hamburger menu button appears */
+ #reload {
+ left: 35px;
+ }
+}
+
+#reload > ul,
+#reload > ul > ul,
+#reload > ul > li { /* remove the first part with the divas */
+ display: inline-block;
+ white-space: nowrap;
+}
+
+#reload > ul:last-child{ /* the last element when scrolling should have an indent */
+ margin-right: 30px;
+}
+
+#reload::-webkit-scrollbar {
+ width: 3px;
+ height: 3px;
+}
+
+#reload::-webkit-scrollbar-thumb {
+ border: 0px solid;
+}
+
+.high-scroll-bar::-webkit-scrollbar {
+ width: 7px !important;
+ height: 7px !important;
+}
+/* --- THIS IS REMAINING FROM THE TOP STATUS LINE */
+
+
+#sidebarMain.collapsed .sub-menu-list {
+ height: 0; /* Otherwise it will flicker when the page loads. */
+}
+
+/* Set submenu to scroll vertically (for narrow option) when submenu is displayed on the side */
+body #sidebarMain .sub-menu-list {
+ max-height: 100%;
+ overflow: auto;
+}
+
+/* +++ TRANSFERRED FILTERS */
+.extruder-wrapper span.term .term-label-wrapper,
+.extruder-wrapper span.term label {
+ display: flex !important;
+ text-align: left !important;
+ width: auto !important;
+ padding-right: 10px;
+ white-space: nowrap;
+}
+
+.extruder-wrapper span.term .term-value-wrapper {
+ display: flex !important;
+ justify-content: flex-end !important;
+ width: 100% !important;
+}
+
+.extruder-wrapper span.term,
+.extruder-wrapper span.term .term-value-wrapper input,
+.extruder-wrapper span.term > span { /* Aligning input fields */
+ width: 100%;
+}
+
+.extruder-wrapper span.term > span:first-child{
+ text-align: left;
+}
+
+.extruder-content {
+ background-color: var(--backgroundMediumDark);
+}
+
+.extruder-content > .text {
+ overflow: visible !important; /* Allows dropdowns to extend beyond the block if there is space on the screen */
+}
+
+.extruder-content .filter-block {
+ margin: 0;
+ padding: 10px;
+}
+
+.extruder-content > .text .term {
+ flex-direction: row;
+ margin-left: 0;
+ padding-bottom: 10px;
+}
+
+@media (max-width: 564px) {
+ .extruder-content span.term {
+ margin: 0;
+ }
+
+ .extruder-content button .material-icons {
+ font-size: 18px;
+ }
+}
+
+.extruder .extruder-content .chosen-container .chosen-single,
+.extruder-wrapper span.term .term-value-wrapper input {
+ height: 27px !important;
+}
+
+/* Clear Filter Button Select Multiple Selection */
+.extruder .extruder-content .btn-term-remove-all {
+ display: flex;
+ flex-direction: row-reverse;
+ width: auto;
+ padding-left: 10px;
+ max-height: 35px;
+}
+/* --- TRANSFERRED FILTERS */
+
+/* !HACK! Otherwise the height of the parent block will be calculated based on the height of the drop-down list, even if the selection is not active! */
+div:not(.chosen-container-active) > .chosen-drop {
+ display: none;
+}
diff --git a/web/skins/classic/css/base/skin.css b/web/skins/classic/css/base/skin.css
index 7dbd7f940b1..f2d78c78b2b 100644
--- a/web/skins/classic/css/base/skin.css
+++ b/web/skins/classic/css/base/skin.css
@@ -26,6 +26,7 @@
--sliderBG: #C1C1C1;
--alarmBG: #FFC0C0;
--alarmText: inherit;
+ --backgroundMediumDark: #485460;
}
html,
diff --git a/web/skins/classic/css/dark/skin.css b/web/skins/classic/css/dark/skin.css
index a37b2b717a4..3d91e5ba20e 100644
--- a/web/skins/classic/css/dark/skin.css
+++ b/web/skins/classic/css/dark/skin.css
@@ -25,6 +25,7 @@
--scrollbarBG: #CFD8DC;
--sliderBG: #95AFC0;
--alarmBG: #352424;
+ --backgroundMediumDark: #485460;
}
body {
diff --git a/web/skins/classic/includes/functions.php b/web/skins/classic/includes/functions.php
index 2b8fb9036ca..62d293a669d 100644
--- a/web/skins/classic/includes/functions.php
+++ b/web/skins/classic/includes/functions.php
@@ -18,6 +18,8 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
+$useOldMenuView = (isset($_COOKIE['zmUseOldMenuView']) and $_COOKIE["zmUseOldMenuView"] === 'true') ? true : false;
+
function xhtmlHeaders($file, $title) {
xhtmlHeadersStart($file, $title);
xhtmlHeadersEnd();
@@ -117,6 +119,14 @@ function xhtmlHeadersStart($file, $title) {
'css/'.$css.'/jquery-ui-theme.css',
));
+ global $useOldMenuView;
+ if (!$useOldMenuView) {
+ echo output_link_if_exists(array(
+ '/assets/pro-sidebar-template/dist/main.css',
+ '/css/base/sidebar.css',
+ ));
+ }
+
if ( $basename == 'watch' ) {
echo output_link_if_exists(array('/css/base/views/control.css'));
if ( $css != 'base' )
@@ -146,8 +156,11 @@ function xhtmlHeadersEnd() {
// Outputs an opening body tag, and any additional content that should go at the very top, like warnings and error messages.
function getBodyTopHTML() {
+ global $view;
+ //Needed for more flexible global governance
+ $classHTML = ' class="'.$view.'-page'.((defined('ZM_WEB_NAVBAR_STICKY') and ZM_WEB_NAVBAR_STICKY) ? ' sticky"' : '"');
echo '
-
+
'. validHtmlStr(ZM_WEB_TITLE) .' requires Javascript. Please enable Javascript in your browser for this site.
@@ -159,8 +172,200 @@ function getBodyTopHTML() {
if ( $error_message ) {
echo '
'.$error_message.'
';
}
+ global $useOldMenuView;
+ if ($useOldMenuView !== true) {
+ getSidebarTopHTML();
+ }
} // end function getBodyTopHTML
+function buildMenuItem($viewItemName, $id, $itemName, $href, $icon, $classNameForTag_A = '', $subMenu = '') {
+ global $view;
+ /* Highlighting the active menu section */
+ if ($viewItemName == 'watch') {
+ $activeClass = ($view == $viewItemName && (isset($_REQUEST['cycle']) && $_REQUEST['cycle'] == "true")) ? ' active' : '';
+ } else {
+ $activeClass = $view == $viewItemName ? ' active' : '';
+ }
+ $itemName = translate($itemName);
+ $result = '
+ '.PHP_EOL;
+
+ return $result;
+}
+
+function buildSidebarMenu() {
+ global $view;
+ global $useOldMenuView;
+ global $user;
+ if ( $user and $user->Username() ) {
+ $menuForAuthUser = '
+ ' .
+ getConsoleHTML($forLeftBar = true) .
+ getMontageHTML($view, $forLeftBar = true) .
+ getCycleHTML($view, $forLeftBar = true) .
+ getMontageReviewHTML($view, $forLeftBar = true) .
+ getEventsHTML($view, $forLeftBar = true) .
+ getOptionsHTML($forLeftBar = true) .
+ getLogHTML($forLeftBar = true) .
+ getDevicesHTML($forLeftBar = true) .
+ getGroupsHTML($view, $forLeftBar = true) .
+ getFilterHTML($view, $forLeftBar = true) .
+ getSnapshotsHTML($view, $forLeftBar = true) .
+ getReportsHTML($view, $forLeftBar = true) .
+ getRprtEvntAuditHTML($view, $forLeftBar = true) .
+ getMapHTML($view, $forLeftBar = true)
+ ;
+ } else { // USER IS NOT AUTHORIZED!
+ $menuForAuthUser = '';
+ }
+ $menu = '
+
+
+' . $menuForAuthUser . '
+
+
+
+
+
+
+
+
+
+
+ ';
+ return $menu;
+}
+
+function getSidebarTopHTML() {
+ global $skin;
+ global $user;
+ global $running;
+
+ $blockExtruder = '
+
+';
+
+ $block = '
+
+
+' . $blockExtruder . '
+
+
+
+
+
+
+
+
+';
+echo $block;
+} // end function getSidebarTopHTML
+
+function getSidebarBottomHTML() {
+ global $skin;
+ $block = '
+
+
+
+
+';
+echo $block;
+} // end function getSidebarBottomHTML
+
function getNavBarHTML() {
# Provide a facility to turn off the headers if you put navbar=0 into the url
if ( isset($_REQUEST['navbar']) and $_REQUEST['navbar'] == '0' )
@@ -297,9 +502,7 @@ function getNormalNavBarHTML($running, $user, $bandwidth_options, $view, $skin)
echo getRprtEvntAuditHTML($view);
echo getMapHTML($view);
echo getHeaderFlipHTML();
- echo '
-';
-
+ echo '
';
echo '
';
echo getAccountCircleHTML($skin, $user);
echo getStatusBtnHTML($status);
@@ -316,27 +519,12 @@ function getNormalNavBarHTML($running, $user, $bandwidth_options, $view, $skin)
-
-
@@ -350,6 +538,46 @@ function getNormalNavBarHTML($running, $user, $bandwidth_options, $view, $skin)
+
+
+ ';
+ return $block;
+}
+
//
// A new, slimmer navigation bar, permanently collapsed into a dropdown
//
@@ -462,7 +690,7 @@ function getSysLoadHTML() {
$thisServer->ReadStats();
$result .= '
'.PHP_EOL;
}
@@ -479,7 +707,7 @@ function getDbConHTML() {
$class = ( $percent_used > 90 ) ? ' text-warning' : '';
$result .= '
'.PHP_EOL;
@@ -527,7 +755,7 @@ function getStorageHTML() {
$result .= ''.PHP_EOL;
} else {
$result .= '