{"version":3,"file":"vue-awesome-sidebar.cjs","sources":["../src/components/HeaderItem.vue","../src/components/MenuItemIcon.vue","../src/components/MenuItem.vue","../src/components/Menuline.vue","../src/hooks/useAwseomeSideBar.ts","../src/hooks/useClickOutSide.ts","../src/hooks/useAwsomeRouter.ts","../src/components/Menu.vue","../src/VueAwesomeSidebar.ts"],"sourcesContent":["<script setup>\nimport { inject } from 'vue'\nconst getSlots = inject('getSlotByName')\n\nconst headerSlot = getSlots('headerItem')\n</script>\n\n<template>\n  <component\n    v-if=\"headerSlot\"\n    :is=\"headerSlot\"\n    :header=\"data.header\"\n  ></component>\n  <div\n    class=\"vsss-header\"\n    :class=\"data?.class ? data?.class : ''\"\n    v-bind=\"data?.attributes\"\n    v-else\n  >\n    {{ data.header }}\n  </div>\n</template>\n\n<script>\nexport default {\n  props: ['data']\n}\n</script>\n","<template>\n  <component\n    :is=\"icon?.element ? icon.element : 'i'\"\n    class=\"menu-icon\"\n    :class=\"icon?.class ? icon?.class : ''\"\n    aria-hidden=\"true\"\n    v-bind=\"icon?.attributes\"\n  >\n    {{ icon.text }}\n  </component>\n</template>\n\n<script>\nexport default {\n  name: 'MenuItemIcon',\n  props: {\n    icon: {\n      default: ''\n    }\n  }\n}\n</script>\n","<template>\n  <div\n    :class=\"menuItemClass\"\n    ref=\"menuItem\"\n    class=\"menu-item-base alignCenter\"\n    :style=\"{\n      float: miniMenu && depth === 1 ? menuDirection : menuDirectionOposite\n    }\"\n  >\n    <div v-if=\"active\" class=\"BlockBack\"></div>\n    <!-- ========================= -->\n    <!-- ========================= -->\n    <!-- 1 this is the menu label  -->\n    <!-- ========================= -->\n    <!-- ========================= -->\n\n    <div\n      class=\"label\"\n      @[shouldMouseEnterEvent]=\"this.hover = true\"\n      @[shouldMouseLeaveEvent]=\"this.hover = false\"\n      :class=\"{\n        TransitionC: !miniMenu || (miniMenu && !showChildren),\n        menuexpand: showChildren,\n        [activeClass]: active,\n        [miniActiveClass]: miniActive,\n        labelHoverClass: (depth != 0 && miniMenu) || !miniMenu\n      }\"\n      @[keyOrClick]=\"labelClick\"\n      :style=\"{\n        [menuDirection == 'left' ? 'paddingLeft' : 'paddingRight']:\n          menuType === 'fully' ? `${depth * 18}px` : ``,\n        background: depth == 0 && !active && miniMenu ? 'none' : ''\n      }\"\n    >\n      <div\n        class=\"left\"\n        ref=\"labelRef\"\n        :class=\"{ marginAuto: miniMenu && depth === 0, collapseEnd: miniMenu }\"\n      >\n        <template\n          v-if=\"!removeIconSpace || (removeIconSpace && siblingsHaveIconProp)\"\n        >\n          <MenuItemIconVue v-if=\"!itemPrepandIcon\" :icon=\"item?.icon\" />\n          <!-- !!! slot for menuitem icon-->\n          <component\n            v-else-if=\"itemPrepandIcon\"\n            :is=\"itemPrepandIcon\"\n            :icon=\"item?.icon\"\n            :active=\"active\"\n            :miniActive=\"miniActive\"\n            :isChildrenMenuOpen=\"showChildren\"\n          ></component>\n        </template>\n        <template v-if=\"labelName\">\n          <span v-if=\"!menuItemLabel\" class=\"labelName\">{{ labelName }}</span>\n          <component\n            v-else\n            :labelName=\"labelName\"\n            :active=\"active\"\n            :miniActive=\"miniActive\"\n            :isChildrenMenuOpen=\"showChildren\"\n            :is=\"menuItemLabel\"\n          />\n        </template>\n      </div>\n      <template v-if=\"(miniMenu && depth != 0) || !miniMenu\">\n        <div\n          v-if=\"item.children && !itemApendIcon\"\n          class=\"icons postIconOpenAnima\"\n          :class=\"{ opened: showChildren }\"\n        ></div>\n        <!-- !!!  slot for menuitem prepand icon-->\n        <div v-if=\"item.children && itemApendIcon\">\n          <component\n            v-if=\"itemApendIcon\"\n            :is=\"itemApendIcon\"\n            :icon=\"item?.icon\"\n            :isChildrenMenuOpen=\"showChildren\"\n            :active=\"active\"\n            :miniActive=\"miniActive\"\n          >\n          </component>\n        </div>\n      </template>\n    </div>\n\n    <!-- ========================= -->\n    <!-- ========================= -->\n    <!--2 this container is for when menu Children when full width -->\n    <!-- ========================= -->\n    <!-- ========================= -->\n    <div v-if=\"!miniMenu || (depth != 0 && miniMenu)\">\n      <div\n        class=\"items-container\"\n        :class=\"{ 'small-menu': smallMenu }\"\n        :style=\"{ maxHeight: heifOfContainer, transition: transitionTime }\"\n        ref=\"container\"\n        v-if=\"item.children\"\n      >\n        <template v-if=\"renderChildren\">\n          <menu-item\n            v-for=\"(item, index) in item.children\"\n            :siblingsHaveIconProp=\"siblingsHaveIcon\"\n            :isParentFlat=\"siblingsHaveIconProp\"\n            :key=\"index\"\n            :item=\"item\"\n            :depth=\"depth + 1\"\n            :smallMenu=\"smallMenu\"\n          />\n        </template>\n      </div>\n    </div>\n\n    <!-- ========================= -->\n    <!-- ========================= -->\n    <!--3  this container is for mini Menu Children -->\n    <!-- ========================= -->\n    <!-- ========================= -->\n\n    <div\n      v-if=\"miniMenu && depth === 0 && !collapsed\"\n      :class=\"{ topContainer: depth == 0, vasopacitiy: !expanded }\"\n      ref=\"topContainerRef\"\n      :style=\"{\n        [MakeSpace\n          ? 'bottom'\n          : 'top']: `calc(${ContainerOffsetYConputed} - 1px)`,\n        [menuDirection]: `calc(${widthMiniMenu} - 1px)`,\n        maxHeight: TopcontainerHiefht,\n        width: showChildren ? '250px' : '0px',\n        zIndex: showChildren ? '850' : '849',\n        animationDelay: seTAnimationTimeOut ? '0.3s' : '0'\n      }\"\n    >\n      <div\n        @click=\"miniLabelClick\"\n        @mousewheel=\"mousewheelop\"\n        class=\"labelMini\"\n        :class=\"{\n          [miniActiveClass]: miniActive,\n          [activeClass]: active\n        }\"\n        :style=\"{\n          position: 'fixed',\n          whiteSpace: 'nowrap',\n          [menuDirection]: menuType === 'fully' ? '0px' : miniLabelDirection,\n          width: miniLabelWidth,\n          [MakeSpace ? 'bottom' : 'top']: ContainerOffsetYConputed,\n          opacity: depth === 0 && showChildren ? '1' : '0'\n        }\"\n      >\n        <!--main menu btn-->\n        <div\n          v-if=\"showChildren\"\n          class=\"left\"\n          :class=\"{ marginAuto: miniMenu && depth === 0 }\"\n          :style=\"{\n            [menuDirection]: widthMiniMenu,\n            top: labelMiniYYofsset + 'px'\n          }\"\n        >\n          <span v-if=\"!menuItemLabel\" class=\"labelName\">{{ item?.name }}</span>\n          <component\n            v-else\n            :labelName=\"item?.name\"\n            :active=\"active\"\n            :miniActive=\"miniActive\"\n            :isChildrenMenuOpen=\"showChildren\"\n            :is=\"menuItemLabel\"\n          />\n        </div>\n      </div>\n      <div class=\"labelminiSub\" v-if=\"depth == 0 && !MakeSpace\"></div>\n      <div\n        class=\"items-container\"\n        :class=\"{ 'small-menu': smallMenu }\"\n        :style=\"{\n          maxHeight: heifOfContainer,\n          transition: transitionTime\n        }\"\n        ref=\"container\"\n        v-if=\"item.children\"\n      >\n        <template v-if=\"renderChildren\">\n          <menu-item\n            v-for=\"(item, index) in item.children\"\n            :siblingsHaveIconProp=\"siblingsHaveIcon\"\n            :isParentFlat=\"siblingsHaveIconProp\"\n            :key=\"index\"\n            :item=\"item\"\n            :depth=\"depth + 1\"\n            :smallMenu=\"smallMenu\"\n            :setMaxHeightTopCProp=\"setMaxHeightTopC\"\n            :isMakeSpace=\"MakeSpace\"\n          />\n        </template>\n      </div>\n      <div class=\"labelminiSub\" v-if=\"depth == 0 && MakeSpace\"></div>\n    </div>\n  </div>\n</template>\n\n<script>\nimport MenuItemIconVue from './MenuItemIcon.vue'\nimport { inject, onBeforeUnmount } from 'vue'\nexport default {\n  name: 'menu-item',\n  components: { MenuItemIconVue },\n  data: () => ({\n    showChildren: false,\n    expanded: false,\n    containerHeight: '0',\n    hieghtTimeout: null,\n    renderTimeOut: null,\n    renderChildren: false,\n    cacheHieght: null,\n    active: false,\n    miniActive: false,\n    hover: false,\n    ContainerOffsetY: 0,\n    id: null,\n    siblingsHaveIcon: false,\n    MakeSpace: false,\n    TopcontainerHiefht: 'fit-content',\n    labelMiniYofsset: 0,\n    labelMiniYYofsset: 0,\n    miniMenuOffset: 50,\n    seTAnimationTimeOut: false,\n    topConTime: null\n  }),\n\n  props: [\n    'smallMenu',\n    'header',\n    'depth',\n    'siblingsHaveIconProp',\n    'isParentFlat',\n    'item',\n    'isMakeSpace',\n    'setMaxHeightTopCProp'\n  ],\n  setup() {\n    const getSlots = inject('getSlotByName')\n    const {\n      animationDuration,\n      menuType,\n      widthMiniMenu,\n      childrenOpenAnimation,\n      removeIconSpace,\n      vueRouterEnabel,\n      keepChildrenOpen,\n      checkButtonActive,\n      ChildrenOpenActiveRoute,\n      collapsed,\n      closeOpenMenuOnHrefPush,\n      position,\n      keepOneMenuOpenAtAtime\n    } = inject('sidebarProps')\n    const userAgentHeight = inject('browserAgent')\n    const currentRoute = inject('currentRoute')\n    const isSameUrl = inject('isSameUrl')\n    const extractChildrenRoutes = inject('extractChildrenRoutes')\n    const menuMounted = inject('menuMounted')\n    const miniMenu = inject('miniMenu')\n    const MenuScroll = inject('MenuScroll')\n    const MenuHover = inject('MenuHover')\n    const getRandomUid = inject('getRandomUid')\n    const updateCurrantItemHover = inject('updateCurrantItemHover')\n    const updateCurranContainerHover = inject('updateCurranContainerHover')\n    const CurrantItemHover = inject('CurrantItemHover')\n    const menuDirection = inject('menuDirection')\n    const emitOut = inject('emitOut')\n    const updateIsCollapsed = inject('updateIsCollapsed')\n    const routerPushBlockList = inject('routerPushBlockList')\n    const pushToRouterPush = inject('pushToRouterPush')\n    const symbolId = inject('symbolId')\n    let itemApendIcon = getSlots('itemApendIcon')\n    let itemPrepandIcon = getSlots('itemPrepandIcon')\n    let menuItemLabel = getSlots('menuItemLabel')\n\n    return {\n      animationDuration,\n      pushToRouterPush,\n      symbolId,\n      routerPushBlockList,\n      menuItemLabel,\n      updateIsCollapsed,\n      currentRoute,\n      menuMounted,\n      itemApendIcon,\n      itemPrepandIcon,\n      miniMenu,\n      MenuScroll,\n      MenuHover,\n      keepChildrenOpen,\n      ChildrenOpenActiveRoute,\n      closeOpenMenuOnHrefPush,\n      emitOut,\n      menuDirection,\n      checkButtonActive,\n      CurrantItemHover,\n      updateCurranContainerHover,\n      updateCurrantItemHover,\n      getRandomUid,\n      vueRouterEnabel,\n      extractChildrenRoutes,\n      isSameUrl,\n      menuType,\n      widthMiniMenu,\n      childrenOpenAnimation,\n      removeIconSpace,\n      collapsed,\n      userAgentHeight,\n      position,\n      keepOneMenuOpenAtAtime\n    }\n  },\n  watch: {\n    routerPushBlockList(valur){\n      if(!(this.keepOneMenuOpenAtAtime || this.closeOpenMenuOnHrefPush))return\n      if((this.item[this.symbolId]===valur))return\n      if(this.item.children){\n        let isFound = false\n        const self = this\n        function backTrack(arr){\n          if(isFound) return\n          for(let i=0;i<arr.length;i++){\n            if(arr[i][self.symbolId] === valur){\n              isFound = true\n              break;\n            }\n            if(arr[i].children){\n              backTrack(arr[i].children)\n            }\n          }\n        }\n        backTrack(this.item.children)\n        if(!isFound){\n          this.closeItemChildren()\n        }\n      }\n    },\n    currentRoute() {\n      this.checkActive()\n    },\n    collapsed(val) {\n      if (val && this.miniMenu && this.depth === 0) {\n        this.closeItemChildren()\n      }\n    },\n    hover() {\n      //TODO :MAKE THIS MORE EFFICEANT\n\n      if (!this.id) {\n        this.id = this.getRandomUid()\n      }\n      if (this.hover) {\n        this.seTAnimationTimeOut = true\n        this.updateCurrantItemHover(this.id)\n        this.openItemCildren()\n        this.$nextTick(() => {\n          setTimeout(() => {\n            this.setItemOffsetHeight()\n          }, 0)\n          const y = this.$refs['labelRef'].getBoundingClientRect()\n          this.labelMiniYofsset = y[this.menuDirection]\n          this.labelMiniYYofsset = y.top\n        })\n      } else {\n        if (this.CurrantItemHover === this.id && this.MenuHover) {\n        } else {\n          this.closeItemChildren()\n        }\n      }\n    },\n    MenuHover() {\n      if (!this.MenuHover) {\n        this.closeItemChildren()\n      }\n    },\n    CurrantItemHover() {\n      //   this.miniActive =this.CurrantItemHover != this.id\n      if (this.CurrantItemHover != this.id) {\n        //this.miniActive = false\n        this.closeItemChildren()\n      } else {\n        // this.miniActive = true\n      }\n    },\n    MenuScroll() {\n      if (this.isMobile) {\n        this.closeItemChildren()\n      } else {\n        this.setItemOffsetHeight()\n        const y = this.$refs['labelRef'].getBoundingClientRect()\n        this.labelMiniYofsset = y[this.menuDirection]\n        this.labelMiniYYofsset = y.top\n      }\n    },\n    miniMenu() {\n      this.closeItemChildren()\n      this.$nextTick(() => {\n        this.setItemOffsetHeight()\n      })\n    }\n  },\n  created() {\n    this.checkActive()\n  },\n  mounted() {\n    this.checkSiblingsForIcon()\n    this.setItemOffsetHeight()\n    if (this.position != 'fixed') {\n      const listenr = () => {\n        if ('ontouchstart' in document.documentElement) {\n          this.closeItemChildren()\n          return\n        }\n        this.setItemOffsetHeight()\n        const y = this.$refs['labelRef'].getBoundingClientRect()\n        this.labelMiniYofsset = y[this.menuDirection]\n        this.labelMiniYYofsset = y.top\n      }\n      const removeSideBarListner = () => {\n        window.removeEventListener('scroll', listenr)\n      }\n      window.addEventListener('scroll', listenr)\n      onBeforeUnmount(removeSideBarListner)\n    }\n  },\n  computed: {\n    isMobile() {\n      return 'ontouchstart' in document.documentElement\n    },\n    miniActiveClass() {\n      return this.item?.miniActiveClass\n        ? this.item?.miniActiveClass\n        : 'miniActive'\n    },\n    activeClass() {\n      return this.item?.activeClass ? this.item?.activeClass : 'activeClass'\n    },\n    menuDirectionOposite() {\n      return this.menuDirection === 'right' ? 'left' : 'right'\n    },\n    labelName() {\n      if (this.miniMenu) {\n        return this.depth != 0 ? this.item?.name : false\n      }\n      return this.item?.name\n    },\n    heifOfContainer() {\n      return this.containerHeight === this.userAgentHeight\n        ? this.containerHeight\n        : this.containerHeight + 'px'\n    },\n    transitionTime() {\n      return `all ${this.animationDuration / 1000}s ease-in-out`\n    },\n    menuItemSlotData() {\n      return {\n        icon: { icon: this.item?.icon || {}, name: this.item?.name }\n      }\n    },\n    shouldMouseEnterEvent() {\n      return this.miniMenu && this.depth == 0 ? 'mouseover' : null\n    },\n    keyOrClick() {\n      if(!this.miniMenu) return 'click'\n      if(this.depth == 0){\n        if(this.expanded){\n          return this.isMobile ? 'touchend' : 'click'\n        }\n        return  this.isMobile ? '' : 'click'\n      }\n      return 'click'\n    },\n    shouldMouseLeaveEvent() {\n      return this.miniMenu && this.depth == 0 ? 'mouseleave' : null\n    },\n    ContainerOffsetYConputed() {\n      return `${this.ContainerOffsetY}px`\n    },\n    menuItemClass() {\n      let obj = {}\n      obj[`vas-${this.menuType}`] = true\n      obj[this.item?.class || ''] = this.item?.class\n      return {\n        miniCollapseIconWidth: this.miniMenu && this.depth == 0,\n        MenuItemWidthOnMiniCollapse: this.miniMenu && this.depth != 0,\n        menuExpanded:\n          this.menuType === 'fully' &&\n          ((!this.miniMenu && this.expanded && this.depth == 0) ||\n            (this.miniMenu && this.depth == 1 && this.expanded)),\n        noIconWidth:\n          this.removeIconSpace &&\n          !this.miniMenu &&\n          !this.siblingsHaveIconProp &&\n          this.isParentFlat,\n        noIconwidthMiniMenu:\n          this.removeIconSpace &&\n          this.miniMenu &&\n          this.depth != 0 &&\n          !this.siblingsHaveIconProp &&\n          this.isParentFlat,\n        ...obj\n      }\n      // return `menu-item-type-${this.menuType}`\n    },\n    miniLabelWidth() {\n      const zarib = Number(this.menuType != 'fully')\n      return this.expanded\n        ? `calc(${this.widthMiniMenu}*${zarib}/2 - ${this.$refs['menuItem'].clientWidth}*${zarib}px/2 + ${this.$refs['menuItem'].clientWidth}px + 250px - 1.5px)`\n        : `35px`\n    },\n    miniLabelDirection() {\n      return `calc((${this.widthMiniMenu} - ${this.miniMenuOffset}px) / 2)`\n    }\n  },\n\n  methods: {\n    mousewheelop(w) {\n      document.querySelector('.vas-menu').scrollBy(0, w.deltaY)\n    },\n    PushToTopOfCallStack(cb) {\n      setTimeout(() => {\n        cb()\n      }, 0)\n    },\n    resloveHref(href) {\n      if (this?.$router) {\n        const x = this.$router.resolve(href)\n        return x.href\n      }\n      return href\n    },\n    checkActive() {\n      if (!this.checkButtonActive) return\n      if (\n        this.item?.href &&\n        this.isSameUrl(this.resloveHref(this.item?.href))\n      ) {\n        this.active = true\n        this.miniActive = false\n      } else {\n        this.active = false\n        if (!this.item?.children) return\n        let hasFound = false\n        let x = this.extractChildrenRoutes(this.item?.children, 'href') || []\n        for (var i = 0; i < x.length; i++) {\n          if (this.isSameUrl(this.resloveHref(x[i]))) {\n            hasFound = true\n            // clearTimeout(this.hieghtTimeout)\n            // clearTimeout(this.renderTimeOut)\n            this.miniActive = true\n            if (this.menuMounted || this.miniMenu) break\n            if (this.ChildrenOpenActiveRoute) {\n              this.openItemCildren()\n            }\n            break\n          }\n        }\n        this.miniActive = hasFound\n      }\n    },\n    labelClick() {\n      if (this.hover) {\n        this.miniLabelClick()\n      } else {\n        this.toggleMenu()\n      }\n    },\n    clickCompose() {\n      if (this.item?.collapseOnClick) {\n        this.updateIsCollapsed(true)\n      }\n      this.emitOut('item-click', this.item)\n      if ((this.vueRouterEnabel && this.item?.href && this.$router)||this.keepOneMenuOpenAtAtime){\n        this.pushToRouterPush(this.item[this.symbolId])\n        if(!(this.vueRouterEnabel && this.item?.href && this.$router)) return\n        this.$router?.push(this.item?.href)\n      }\n    },\n    miniLabelClick() {\n      this.clickCompose()\n    },\n    toggleMenu() {\n      this.clickCompose()\n      if (!this.item?.children) return\n      clearTimeout(this.hieghtTimeout)\n      clearTimeout(this.renderTimeOut)\n      if (this.showChildren) {\n        if(!(this.item?.href && this.closeOpenMenuOnHrefPush)){\n          this.closeItemChildren()\n        }\n      } else {\n        this.openItemCildren()\n      }\n      // this.showChildren ? this.openItemCildren() : this.closeItemChildren()\n    },\n    setSmallMenuDataForToggle(val) {\n      clearTimeout(this.topConTime)\n      clearTimeout(this.hieghtTimeout)\n      clearTimeout(this.renderTimeOut)\n      this.$nextTick(() => {\n        this.expanded = val\n      })\n      this.showChildren = val\n    },\n    checkSiblingsForIcon() {\n      if (!this.removeIconSpace && this.menuType == 'fully') return\n      if (!this.item?.children) return\n      for (var i = 0; i < this.item?.children.length; i++) {\n        if (this.item?.children[i]?.icon) {\n          this.siblingsHaveIcon = true\n          break\n        }\n      }\n    },\n    openItemCildren() {\n      if (this.depth === 1 && this.miniMenu) {\n        this.setMaxHeightTopCProp()\n      }\n      if (this.miniMenu && this.depth === 0) {\n        this.showChildren = true\n\n        this.$nextTick(() => {\n          this.expanded = true\n        })\n      }\n      if (!this.item?.children) return\n      if (this.expanded) return\n      this.setSmallMenuDataForToggle(true)\n      this.renderChildren = true\n      if (this.cacheHieght) {\n        this.containerHeight = this.cacheHieght\n      } else {\n        this.containerHeight = this.menuMounted\n          ? this.item?.children.length * this.$refs['menuItem']?.offsetHeight +\n            3\n          : this.userAgentHeight\n      }\n      this.cacheHieght = null\n      //if manue is not maounted remove a\n      if (!this.menuMounted) return\n      if (this.miniMenu && this.depth === 0) {\n        this.containerHeight = this.userAgentHeight\n      }\n      //add animation\n      this.hieghtTimeout = setTimeout(\n        () => {\n          this.containerHeight = this.userAgentHeight\n        },\n        this.childrenOpenAnimation ? this.animationDuration : 0\n      )\n    },\n    closeItemChildren() {\n      this.seTAnimationTimeOut = false\n      if (!this.menuCollapsed && this.miniMenu && this.depth === 0) {\n        this.setSmallMenuDataForToggle(false)\n        this.topConTime = setTimeout(() => {\n          this.containerHeight = 0\n          this.topConTime = null\n        }, this.animationDuration)\n        return\n      }\n      this.setSmallMenuDataForToggle(false)\n      if (!this.item?.children) return\n      if (!this.cacheHieght) {\n        this.cacheHieght = this.$refs['container']?.offsetHeight\n      }\n      this.containerHeight = this.$refs['container']?.offsetHeight\n      //this line must be pushed to top of call stack\n      this.PushToTopOfCallStack(() => {\n      })\n      setTimeout(() => {\n        this.$nextTick(()=>{\n          this.containerHeight = 0\n        })\n      }, 10);\n      //return if keepchildren open\n      if (this.keepChildrenOpen) return\n      this.renderTimeOut = setTimeout(\n        () => {\n          setTimeout(() => {\n             this.renderChildren = false\n          }, 20);\n           this.cacheHieght = null\n        },\n        this.childrenOpenAnimation ? this.animationDuration : 0\n      )\n    },\n    setMaxHeightTopC() {\n      const x = this.$refs['topContainerRef']?.getBoundingClientRect()\n      if (this.MakeSpace) {\n        this.TopcontainerHiefht = x.height + 'px'\n      } else {\n        this.TopcontainerHiefht =\n          x.height + innerHeight - (x.top + x.height) - 2 + 'px'\n      }\n    },\n    setItemOffsetHeight() {\n      if (this.depth == 0) {\n        const x = this.$refs['menuItem'].getBoundingClientRect()\n        const x1 = this.$refs['topContainerRef']?.getBoundingClientRect().height\n        let z = 0\n        if (this.item?.children) {\n          z = x.height * this.item?.children.length + x.height\n        }\n        if (x1 && z + x.top - 15 > innerHeight) {\n          this.ContainerOffsetY = innerHeight - x.bottom\n          this.MakeSpace = true\n        } else {\n          this.ContainerOffsetY = x.top\n          this.MakeSpace = false\n        }\n        this.miniMenuOffset = x.width\n      }\n    }\n  }\n}\n</script>\n","<template>\n  <component\n    :is=\"data?.element ? data.element : 'hr'\"\n    class=\"vas-hr\"\n    :class=\"data?.class ? data?.class : ''\"\n    v-bind=\"data?.attributes\"\n  >\n  </component>\n</template>\n\n<script>\nexport default {\n  name: 'MenuHl',\n  props: {\n    data: {\n      default: ''\n    }\n  }\n}\n</script>\n","import {\n  ref,\n  computed,\n  inject,\n  provide,\n  onMounted,\n  reactive,\n  toRefs\n} from 'vue'\n\nexport const initAwsomeSideBar = (props: any, context: any) => {\n  const {\n    menu,\n    menuType,\n    miniMenu: miniMenuProp,\n    collapsed,\n    animationDuration,\n    width,\n    widthMiniMenu,\n    removeIconSpace,\n    closeOnClickOutSide,\n    overLayerOnOpen,\n    childrenOpenAnimation,\n    position,\n    collapseBreakPoint,\n    dark,\n    vueRouterEnabel,\n    keepChildrenOpen,\n    checkButtonActive,\n    ChildrenOpenActiveRoute,\n    closeOpenMenuOnHrefPush,\n    keepOneMenuOpenAtAtime,\n    rtl\n  } = toRefs(props)\n  const isCollapsed = ref(collapsed.value)\n  const menuMounted = ref(false)\n  const MenuScroll = ref(false)\n  const miniMenu = ref(miniMenuProp.value)\n  const MenuHover = ref(false)\n  const CurrantItemHover = ref(null)\n  const CurranContainerHover = ref(null)\n  const routerPushBlockList: any = ref('')\n\n  const symbolId = Symbol(\"id\")\n  let id = 3\n\n  const getRandomUid = () => {\n    return id++\n  }\n\n  function addIdToMenuItems(arr: any) {\n    let array = [...arr]\n    function backTrack(array: any) {\n      for (let i = 0; i < array.length; i++) {\n        array[i][symbolId] = getRandomUid()\n        if (array[i].children) {\n          backTrack(array[i].children)\n        }\n      }\n    }\n    backTrack(array)\n    return array\n  }\n\n  function pushToRouterPush(id: any) {\n    routerPushBlockList.value = id\n  }\n\n  const getSlotByName = (slotName: any) => {\n    return context.slots.hasOwnProperty(slotName)\n      ? context.slots[slotName]\n      : null\n  }\n\n  const updateIsCollapsed = (val: boolean) => {\n    isCollapsed.value = val\n  }\n  const updateMenuScroll = () => {\n    MenuScroll.value = !MenuScroll.value\n  }\n  const updateMenuHover = (val: any) => {\n    MenuHover.value = val\n  }\n  const updateCurrantItemHover = (id: any) => {\n    CurrantItemHover.value = id\n  }\n  const updateCurranContainerHover = (id: any) => {\n    CurranContainerHover.value = id\n  }\n  const menuDirection = computed(() => {\n    return rtl.value ? 'right' : 'left'\n  })\n  const emitOut = (event: any, item: any) => {\n    context.emit(event, item)\n  }\n  const updateminiMenu = (val: boolean) => {\n    miniMenu.value = val\n  }\n  let userAgentHeight =\n    navigator.userAgent.indexOf('Firefox') != -1\n      ? '-moz-max-content'\n      : 'fit-content'\n\n  onMounted(() => {\n    menuMounted.value = true\n  })\n\n  provide('sidebarProps', {\n    menu,\n    menuType,\n    collapsed: isCollapsed,\n    miniMenu,\n    animationDuration,\n    width,\n    widthMiniMenu,\n    removeIconSpace,\n    closeOnClickOutSide,\n    overLayerOnOpen,\n    childrenOpenAnimation,\n    position,\n    collapseBreakPoint,\n    vueRouterEnabel,\n    checkButtonActive,\n    ChildrenOpenActiveRoute,\n    closeOpenMenuOnHrefPush,\n    keepChildrenOpen,\n    dark,\n    rtl,\n    keepOneMenuOpenAtAtime\n  })\n  provide('getSlotByName', getSlotByName)\n  provide('routerPushBlockList', routerPushBlockList)\n  provide('pushToRouterPush', pushToRouterPush)\n  provide('symbolId', symbolId)\n  provide('browserAgent', userAgentHeight)\n  provide('menuMounted', menuMounted)\n  provide('miniMenu', miniMenu)\n  provide('MenuScroll', MenuScroll)\n  provide('MenuHover', MenuHover)\n  provide('getRandomUid', getRandomUid)\n  provide('updateCurrantItemHover', updateCurrantItemHover)\n  provide('updateCurranContainerHover', updateCurranContainerHover)\n  provide('CurrantItemHover', CurrantItemHover)\n  provide('CurranContainerHover', CurranContainerHover)\n  provide('menuDirection', menuDirection)\n  provide('updateIsCollapsed', updateIsCollapsed)\n  provide('emitOut', emitOut)\n  return {\n    getIsCollapsed: isCollapsed,\n    getIsminiMenu: miniMenu,\n    updateIsCollapsed,\n    getSlotByName,\n    updateminiMenu,\n    menuMounted,\n    updateMenuScroll,\n    updateMenuHover,\n    menuDirection,\n    addIdToMenuItems\n  }\n}\n","import { onBeforeUnmount, onMounted, watch, ref } from 'vue'\n\nexport function useClickOutSide(target: any, callBack: any, isCollapsed: any) {\n  if (!target) return\n\n  const listner = (event: any) => {\n    if (isCollapsed.value) {\n      removeSideBarListner()\n      return\n    }\n    if (\n      event.target == target.value ||\n      event.composedPath().includes(target.value)\n    ) {\n      return\n    }\n    callBack()\n  }\n  const removeSideBarListner = () => {\n    window.removeEventListener('click', listner)\n  }\n  const addSideBarListner = () => {\n    removeSideBarListner()\n    setTimeout(() => {\n      //push this to the end of call stack\n      window.addEventListener('click', listner)\n    }, 0)\n  }\n\n  onBeforeUnmount(removeSideBarListner)\n\n  return { removeSideBarListner, addSideBarListner }\n}\nexport function useAutoCollapse(target: number, callBack: any) {\n  if (!target) return\n  callBack(target > innerWidth)\n  let initialWidth = window.innerWidth\n  const listner = () => {\n    if (initialWidth != window.innerWidth) {\n      callBack(target > innerWidth)\n      initialWidth = window.innerWidth\n    }\n  }\n  window.addEventListener('resize', listner)\n  onBeforeUnmount(() => {\n    window.removeEventListener('resize', listner)\n  })\n}\n","import { ref, computed, inject, watch, provide, reactive, toRefs } from 'vue'\n//import { useRoute } from 'vue-router';\n\nexport const initAwsomeRouter = (props: any, context: any) => {\n  const { autoCollapse, collapsed, relative, width, widthCollapsed, rtl } =\n    toRefs(props)\n  const currentRoute = ref(window.location)\n\n  function isSameUrl(url: any, location = currentRoute.value) {\n    return (\n      location.href === location.origin + url ||\n      location.pathname + location.hash === url ||\n      location.pathname + location.search === url ||\n      location.href === url ||\n      location.hash === url\n    )\n  }\n\n  function extractChildrenRoutes(obj: any, keyToFind: any): any {\n    if (!obj) return\n    return Object.entries(obj).reduce(\n      (acc: any, [key, value]: any) =>\n        key === keyToFind\n          ? acc.concat(value)\n          : typeof value === 'object'\n          ? acc.concat(extractChildrenRoutes(value, keyToFind))\n          : acc,\n      []\n    )\n  }\n\n  //  if(autoCollapse.value){\n  //  }\n\n  const updateCurrentRoute = (val: any) => {\n    currentRoute.value = { ...val }\n  }\n\n  provide('currentRoute', currentRoute)\n  provide('updateCurrentRoute', updateCurrentRoute)\n  provide('isSameUrl', isSameUrl)\n  provide('extractChildrenRoutes', extractChildrenRoutes)\n  return {\n    isSameUrl,\n    extractChildrenRoutes,\n    currentRoute,\n    updateCurrentRoute\n  }\n}\n","<template>\n  <nav\n    class=\"vas-menu\"\n    ref=\"sidebarmen\"\n    :class=\"sidebarClass\"\n    :style=\"{\n      width: sidebarMenuWidth,\n      position: position,\n      [menuDirection]: isCollapsed\n        ? `calc(-1*(${sidebarMenuWidth} + 2px))`\n        : '0px',\n      direction: rtl ? 'rtl' : 'ltr',\n      paddingTop: paddingTop\n    }\"\n    style=\"overflow: hidden\"\n    @[mouseEnterEvent]=\"onEnter\"\n    @[mouseLeaveEvent]=\"onLeave\"\n  >\n    <div\n      @[menuScrollEvent]=\"onMenuScroll\"\n      class=\"menu-wraper\"\n      :class=\"{\n        miniCoolapseMenu: miniMenuRef,\n        compeleteCoolapseMenu: isCollapsed\n      }\"\n      :style=\"{\n        width: sidebarMenuWidth\n      }\"\n    >\n      <slot name=\"header\" />\n      <template v-for=\"(item, index) in computedMenuList\" :key=\"index\">\n        <MenuItem\n          v-if=\"!item?.header && !item?.LineShow\"\n          :item=\"item\"\n          :depth=\"0\"\n          :smallMenu=\"smallMenu\"\n          :siblingsHaveIconProp=\"siblingsHaveIcon\"\n        />\n        <HeaderItem v-else-if=\"item?.header && !miniMenuRef\" :data=\"item\" />\n        <Menuline v-else-if=\"item?.LineShow\" :data=\"item\" />\n      </template>\n      <div class=\"vas-footer\">\n        <div class=\"footer-wrapper\"></div>\n        <slot name=\"footer\" />\n      </div>\n    </div>\n    <div v-if=\"BottomMiniMenuBtn\" class=\"bottomBtn\" @click=\"toggleMiniCollapse\">\n      <div\n        v-if=\"!$slots?.BottomMiniMenuBtn\"\n        class=\"icons bottomBtnIcon\"\n        :class=\"{ ssdSpin: !miniMenuRef }\"\n      ></div>\n      <slot v-else name=\"BottomMiniMenuBtn\" :miniMenu=\"miniMenuRef\" />\n    </div>\n  </nav>\n  <Transition name=\"vas-fade\">\n    <div v-if=\"overLayer\" class=\"vas-over-layer\"></div>\n  </Transition>\n</template>\n\n<script>\nimport HeaderItem from './HeaderItem.vue'\nimport MenuItem from './MenuItem.vue'\nimport Menuline from './Menuline.vue'\nimport { initAwsomeSideBar } from '../hooks/useAwseomeSideBar'\nimport { useClickOutSide, useAutoCollapse } from '../hooks/useClickOutSide'\nimport { initAwsomeRouter } from '../hooks/useAwsomeRouter'\nimport { ref, computed, watch } from 'vue'\n\nexport default {\n  name: 'vas-menu',\n  props: {\n    menu: {\n      type: Array,\n      required: true\n    },\n    menuType: {\n      type: String,\n      default: 'simple'\n    },\n    collapsed: {\n      type: Boolean,\n      default: false\n    },\n    miniMenu: {\n      type: Boolean,\n      default: false\n    },\n    animationDuration: {\n      type: Number,\n      default: 300\n    },\n    width: {\n      type: String,\n      default: '290px'\n    },\n    widthMiniMenu: {\n      type: String,\n      default: '65px'\n    },\n    autoCollapse: {\n      type: Number,\n      default: null\n    },\n    removeIconSpace: {\n      type: Boolean,\n      default: false\n    },\n    closeOnClickOutSide: {\n      type: Boolean,\n      default: false\n    },\n    overLayerOnOpen: {\n      type: Boolean,\n      default: false\n    },\n    childrenOpenAnimation: {\n      type: Boolean,\n      default: true\n    },\n    position: {\n      type: String,\n      default: 'fixed'\n    },\n    keepChildrenOpen: {\n      type: Boolean,\n      default: false\n    },\n    ChildrenOpenActiveRoute: {\n      type: Boolean,\n      default: true\n    },\n    checkButtonActive: {\n      type: Boolean,\n      default: true\n    },\n    vueRouterEnabel: {\n      type: Boolean,\n      default: false\n    },\n    BottomMiniMenuBtn: {\n      type: Boolean,\n      default: true\n    },\n    paddingTop: {\n      type: String,\n      default: '0px'\n    },\n    dark: {\n      type: Boolean\n    },\n    rtl: {\n      type: Boolean,\n      default: false\n    },\n    closeOpenMenuOnHrefPush:{\n      type: Boolean,\n      default: false\n    },\n    keepOneMenuOpenAtAtime:{\n      type: Boolean,\n      default: false\n    }\n  },\n  emits: {\n    'item-click'(item) {\n      return !!item\n    },\n    'update:collapsed'(collapsed) {\n      return !!(typeof collapsed === 'boolean')\n    },\n    'update:miniMenu'(collapsed) {\n      return !!(typeof collapsed === 'boolean')\n    }\n  },\n  data: () => ({\n    smallMenu: false,\n    siblingsHaveIcon: false\n  }),\n\n  components: {\n    MenuItem,\n    HeaderItem,\n    Menuline\n  },\n  mounted() {\n    this.checkSiblingsForIcon()\n    // USAGE\n    window.addEventListener(\n      'hashchange',\n      () => {\n        this.updateCurrentRoute(window.location)\n      },\n      false\n    )\n  },\n  watch: {\n    async $route() {\n      this.updateCurrentRoute(window.location)\n    },\n    miniMenuRef() {\n      if (this.miniMenuRef) {\n        this.updateMenuHover(true)\n      }\n    }\n  },\n  computed: {\n    menuScrollEvent() {\n      return this.miniMenuRef ? 'scroll' : null\n    },\n    mouseEnterEvent() {\n      return this.miniMenuRef ? 'mouseenter' : null\n    },\n    mouseLeaveEvent() {\n      return this.miniMenuRef ? 'mouseleave' : null\n    },\n    computedMenuList() {\n     return this.addIdToMenuItems(this.menu)\n    }\n  },\n  methods: {\n    onMenuScroll() {\n      this.updateMenuScroll()\n    },\n    onEnter() {\n      this.updateMenuHover(true)\n    },\n    onLeave() {\n      this.updateMenuHover(false)\n    },\n    checkSiblingsForIcon() {\n      if (!this.removeIconSpace && this.menuType == 'fully') return\n      for (var i = 0; i < this.menu.length; i++) {\n        if (this.menu[i]?.icon) {\n          this.siblingsHaveIcon = true\n          break\n        }\n      }\n    },\n    toggleMiniCollapse() {\n      const x = !this.miniMenuRef\n      this.updateminiMenu(x)\n      this.$emit('update:miniMenu', x)\n    }\n  },\n  setup(props, context) {\n    const {\n      getIsCollapsed: isCollapsed,\n      getIsminiMenu: miniMenuRef,\n      updateMenuScroll,\n      updateMenuHover,\n      updateminiMenu,\n      menuDirection,\n      updateIsCollapsed,\n      addIdToMenuItems\n    } = initAwsomeSideBar(props, context)\n    const { updateCurrentRoute } = initAwsomeRouter(props, context)\n\n    const sidebarmen = ref(null)\n    const overLayer = ref(props.overLayerOnOpen)\n\n    const { removeSideBarListner, addSideBarListner } = useClickOutSide(\n      sidebarmen,\n      () => {\n        updateIsCollapsed(!isCollapsed.value)\n      },\n      isCollapsed\n    )\n    if (props.closeOnClickOutSide) {\n      addSideBarListner()\n    }\n    watch(\n      () => isCollapsed.value,\n      (currentCollapsed) => {\n        context.emit('update:collapsed', currentCollapsed)\n        if (props.overLayerOnOpen) {\n          overLayer.value = !currentCollapsed\n        }\n        if (props.closeOnClickOutSide) {\n          currentCollapsed ? removeSideBarListner() : addSideBarListner()\n        }\n      }\n    )\n    watch(\n      () => props.collapsed,\n      (val) => {\n        updateIsCollapsed(val)\n      }\n    )\n    watch(\n      () => props.closeOnClickOutSide,\n      (val) => {\n        val ? addSideBarListner() : removeSideBarListner()\n      }\n    )\n    watch(\n      () => props.miniMenu,\n      (val) => {\n        updateminiMenu(val)\n      }\n    )\n    watch(\n      () => props.overLayerOnOpen,\n      (val) => {\n        if (val) {\n          overLayer.value = !isCollapsed.value\n        } else {\n          overLayer.value = false\n        }\n      }\n    )\n    const sidebarMenuWidth = computed(() => {\n      return miniMenuRef.value ? props.widthMiniMenu : props.width\n    })\n\n    const sidebarClass = computed(() => {\n      const theme = props.dark ? 'dark' : 'white'\n      return [\n        `${theme}-theme`,\n        props.rtl ? 'rtl' : 'ltr'\n        //isCollapsed.value ? 'compelete-coolapse-menu' : '',\n      ]\n    })\n    useAutoCollapse(props.autoCollapse, updateIsCollapsed)\n    if (props.overLayerOnOpen) {\n      overLayer.value = !isCollapsed.value\n    }\n    return {\n      sidebarMenuWidth,\n      updateMenuScroll,\n      sidebarClass,\n      sidebarmen,\n      updateCurrentRoute,\n      updateMenuHover,\n      overLayer,\n      isCollapsed,\n      updateminiMenu,\n      miniMenuRef,\n      menuDirection,\n      addIdToMenuItems\n    }\n  }\n}\n</script>\n\n<style lang=\"scss\">\n@use '../scss/vue-awesome-sidebar.scss';\n</style>\n","// This is where the package installs.\nimport type { App } from 'vue'\nimport VueAwesomeSideBar from './components/Menu.vue'\n\nexport default {\n  install: (app: App) => {\n    app.component('VueAwesomeSideBar', VueAwesomeSideBar)\n  }\n}\n\nexport { VueAwesomeSideBar }\n"],"names":["__default__","headerSlot","inject","_sfc_main","_createBlock","_resolveDynamicComponent","_a","$props","_mergeProps","_b","_c","_d","_createTextVNode","_toDisplayString","MenuItemIconVue","getSlots","animationDuration","menuType","widthMiniMenu","childrenOpenAnimation","removeIconSpace","vueRouterEnabel","keepChildrenOpen","checkButtonActive","ChildrenOpenActiveRoute","collapsed","closeOpenMenuOnHrefPush","position","keepOneMenuOpenAtAtime","userAgentHeight","currentRoute","isSameUrl","extractChildrenRoutes","menuMounted","miniMenu","MenuScroll","MenuHover","getRandomUid","updateCurrantItemHover","updateCurranContainerHover","CurrantItemHover","menuDirection","emitOut","updateIsCollapsed","routerPushBlockList","pushToRouterPush","symbolId","itemApendIcon","itemPrepandIcon","menuItemLabel","valur","backTrack","arr","isFound","i","self","val","y","listenr","removeSideBarListner","onBeforeUnmount","obj","zarib","w","cb","href","hasFound","x","_e","x1","z","_createElementBlock","_normalizeClass","$options","_normalizeStyle","$setup","_ctx","_openBlock","_hoisted_1","_createElementVNode","_toHandlerKey","args","_Fragment","_component_MenuItemIconVue","_hoisted_2","_hoisted_3","_hoisted_4","item","index","_component_menu_item","_hoisted_5","_hoisted_6","_hoisted_7","initAwsomeSideBar","props","context","menu","miniMenuProp","width","closeOnClickOutSide","overLayerOnOpen","collapseBreakPoint","dark","rtl","toRefs","isCollapsed","ref","CurranContainerHover","id","addIdToMenuItems","array","getSlotByName","slotName","updateMenuScroll","updateMenuHover","computed","event","updateminiMenu","onMounted","provide","useClickOutSide","target","callBack","listner","addSideBarListner","useAutoCollapse","initialWidth","initAwsomeRouter","url","location","keyToFind","acc","key","value","updateCurrentRoute","MenuItem","HeaderItem","Menuline","miniMenuRef","sidebarmen","overLayer","watch","currentCollapsed","sidebarMenuWidth","sidebarClass","_renderSlot","_renderList","_component_MenuItem","_component_HeaderItem","_component_Menuline","_createVNode","_Transition","VueAwesomeSidebar","app","VueAwesomeSideBar"],"mappings":"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"}