{"version":3,"file":"UListItemGroup.mjs","names":["makeComponentProps","computed","ref","watch","watchEffect","UIcon","UListItem","genericComponent","propsFactory","useRender","makeUListItemGroupProps","_objectSpread","disabled","type","Boolean","position","String","color","listItems","Array","required","currentItemId","prependIcon","UListItemGroup","name","props","emits","click","e","value","setup","_ref","emit","slots","isActive","isHover","itemsListRef","getListItems","isArray","updatedItems","map","item","title","itemId","badge","filteredItems","filter","changeCurrentIndex","id","onListItemClick","renderListItems","index","_createVNode","_default","navItemClasses","navItemTextClasses","chevronIconClasses","itemsListHeight","element","scrollHeight","toString","getParentWidth","parentElement","getComputedStyle","clientWidth","newValue","length","style","transition","paddingTop","paddingBottom","maxHeight","concat","top","left","overflowY","visibility","opacity","height","setTimeout","right","width","itemsListClasses","_defineProperty","subTitleClasses","prependIconColor","chevronIconColor","_slots$default","_slots$default2","onMouseover","onMouseleave","onClick","call"],"sources":["../../../src/components/UListItemGroup/UListItemGroup.tsx"],"sourcesContent":["import { makeComponentProps } from '@/composables/component'\nimport { computed, ref, watch, watchEffect } from 'vue'\n\nimport { UIcon } from '@/components/UIcon/UIcon'\nimport { UListItem } from '@/components/UListItemGroup/UListItem'\n\nimport { genericComponent, propsFactory, useRender } from '@/utils'\n\nexport const makeUListItemGroupProps = propsFactory(\n  {\n    disabled: {\n      type: Boolean,\n      default: false,\n    },\n    position: {\n      type: String,\n      default: 'bottom',\n    },\n    type: {\n      type: String,\n      default: 'default',\n    },\n    color: {\n      type: String,\n      default: 'transparent',\n    },\n    listItems: {\n      type: Array<{\n        title: string\n        badge: number\n        itemId: string\n        prependIcon: string\n      }>,\n      required: true,\n    },\n    currentItemId: String,\n    prependIcon: String,\n    ...makeComponentProps(),\n  },\n  'UListItemGroup'\n)\n\nexport type UListItemGroupSlots = {\n  default: never\n  header: never\n}\n\nexport const UListItemGroup = genericComponent<UListItemGroupSlots>()({\n  name: 'UListItemGroup',\n\n  props: makeUListItemGroupProps(),\n\n  emits: {\n    click: (e: MouseEvent) => true,\n    currentItemId: (value: string) => true,\n  },\n\n  setup(props, { emit, slots }) {\n    const isActive = ref(false)\n    const isHover = ref(false)\n    const itemsListRef = ref<HTMLElement | null>(null)\n\n    type listItem = {\n      title: string\n      badge: number\n      itemId: string\n      prependIcon: string\n    }\n\n    const getListItems = (): listItem[] => {\n      const listItems: listItem[] = props.listItems\n\n      if (Array.isArray(listItems)) {\n        const updatedItems = listItems.map((item) => {\n          if (item.title && item.itemId && item.prependIcon && item.badge) {\n            return item\n          } else {\n            return {\n              title: item.title || '',\n              badge: item.badge || 0,\n              itemId: item.itemId || '',\n              prependIcon: item.prependIcon || '',\n            }\n          }\n        })\n\n        const filteredItems = updatedItems.filter((item) => {\n          return (\n            item.title !== '' ||\n            item.badge !== 0 ||\n            item.itemId !== '' ||\n            item.prependIcon !== ''\n          )\n        })\n\n        return filteredItems\n      } else {\n        return []\n      }\n    }\n\n    function changeCurrentIndex(id: string) {\n      if (props.disabled) return\n      emit('currentItemId', id)\n    }\n\n    function onListItemClick(e: MouseEvent) {\n      if (props.disabled) return\n      emit('click', e)\n    }\n\n    const renderListItems = (): JSX.Element[] => {\n      const filteredItems = getListItems()\n\n      return filteredItems.map((item, index) => (\n        <UListItem\n          prependIcon={item.prependIcon}\n          isActive={props.currentItemId === item.itemId}\n          badge={item.badge}\n          itemId={item.itemId}\n          key={index}\n          onCurrentItemId={changeCurrentIndex}\n          onClick={onListItemClick}\n        >\n          {item.title}\n        </UListItem>\n      ))\n    }\n\n    const navItemClasses = computed(() => ({\n      'flex items-center p-3 w-full rounded-md overflow-hidden': true,\n      ...(!props.disabled && {\n        'cursor-pointer active:shadow-xs-btn active:shadow-gray-100': true,\n      }),\n      ...(props.disabled && {\n        'cursor-not-allowed': true,\n      }),\n      ...(isActive.value === false &&\n        !props.disabled && {\n          'active:bg-transparent hover:bg-gray-50': true,\n        }),\n      ...(isActive.value === true &&\n        !props.disabled && {\n          'bg-gray-200 hover:bg-gray-100 active:bg-gray-50': true,\n        }),\n      ...(props.type !== 'small' && {\n        'justify-between': true,\n      }),\n      ...(props.type === 'small' &&\n        !props.disabled && {\n          'h-48 max-w-[48px] flex-shrink-none justify-center': true,\n        }),\n    }))\n\n    const navItemTextClasses = computed(() => ({\n      'text-text-md font-semibold select-none whitespace-nowrap': true,\n      ...(isHover.value === false && {\n        'text-gray-700': true,\n      }),\n      ...(isHover.value === true && {\n        'text-gray-700': true,\n      }),\n      ...(isActive.value === true && {\n        'text-gray-700': true,\n      }),\n    }))\n\n    const chevronIconClasses = computed(() => ({\n      'transition-transform': true,\n      ...(isActive.value === true &&\n        props.position === 'bottom' &&\n        !props.disabled && {\n          'rotate-180': true,\n        }),\n      ...(isActive.value === true &&\n        props.position !== 'bottom' &&\n        !props.disabled && {\n          'opacity-0': true,\n        }),\n    }))\n\n    const itemsListHeight = () => {\n      const element = itemsListRef.value\n      if (element) {\n        return (element.scrollHeight + 16).toString()\n      }\n      return '0'\n    }\n\n    function getParentWidth() {\n      const element = itemsListRef.value\n      if (element) {\n        let parentElement = element.parentElement\n        while (\n          parentElement &&\n          getComputedStyle(parentElement).position !== 'relative'\n        ) {\n          parentElement = parentElement.parentElement\n        }\n\n        if (parentElement) {\n          return parentElement.clientWidth\n        } else {\n          return 0\n        }\n      } else {\n        return 0\n      }\n    }\n\n    watch(isActive, (newValue) => {\n      if (\n        getListItems().length !== 0 &&\n        props.position == 'bottom' &&\n        !props.disabled\n      ) {\n        const element = itemsListRef.value\n        if (element) {\n          if (newValue) {\n            element.style.transition =\n              'max-height 0.15s ease-in-out, padding 0.15s ease-in-out'\n            element.style.paddingTop = '8px'\n            element.style.paddingBottom = '8px'\n            element.style.maxHeight = `${itemsListHeight()}px`\n          } else {\n            element.style.transition =\n              'max-height 0.15s ease-in-out, padding 0.15s ease-in-out'\n            element.style.paddingTop = ''\n            element.style.paddingBottom = ''\n            element.style.maxHeight = ''\n          }\n        }\n      }\n      if (\n        getListItems().length !== 0 &&\n        props.position == 'right' &&\n        !props.disabled\n      ) {\n        const element = itemsListRef.value\n        if (element) {\n          if (newValue) {\n            element.style.transition =\n              'transform 0.15s ease-in-out, opacity 0.15s ease-in-out'\n            element.style.position = 'absolute'\n            element.style.top = '0'\n            element.style.left = `${getParentWidth()}px`\n            element.style.overflowY = `visible`\n            element.style.visibility = `visible`\n            element.style.paddingTop = '36px'\n            element.style.opacity = `1`\n            element.style.maxHeight = `100%`\n            element.style.height = `100%`\n          } else {\n            element.style.transition =\n              'transform 0.15s ease-in-out, opacity 0.15s ease-in-out'\n            element.style.opacity = `0`\n            element.style.visibility = `visible`\n            setTimeout(() => {\n              element.style.visibility = 'hidden'\n              element.style.transition = ''\n            }, 150)\n          }\n        }\n      }\n      if (\n        getListItems().length !== 0 &&\n        props.position == 'left' &&\n        !props.disabled\n      ) {\n        const element = itemsListRef.value\n        if (element) {\n          if (newValue) {\n            element.style.transition =\n              'transform 0.15s ease-in-out, opacity 0.15s ease-in-out'\n            element.style.position = 'absolute'\n            element.style.top = '0'\n            element.style.right = `${getParentWidth()}px`\n            element.style.overflowY = `visible`\n            element.style.visibility = `visible`\n            element.style.paddingTop = '36px'\n            element.style.opacity = `1`\n            element.style.maxHeight = `100%`\n            element.style.height = `100%`\n          } else {\n            element.style.transition =\n              'transform 0.15s ease-in-out, opacity 0.15s ease-in-out'\n            element.style.opacity = `0`\n            element.style.visibility = `visible`\n            setTimeout(() => {\n              element.style.visibility = 'hidden'\n              element.style.transition = ''\n            }, 150)\n          }\n        }\n      }\n      if (\n        getListItems().length !== 0 &&\n        props.position !== 'left' &&\n        props.type == 'small' &&\n        !props.disabled\n      ) {\n        const element = itemsListRef.value\n        if (element) {\n          if (newValue) {\n            element.style.transition =\n              'transform 0.15s ease-in-out, opacity 0.15s ease-in-out'\n            element.style.position = 'absolute'\n            element.style.top = '0'\n            element.style.left = `76px`\n            element.style.width = `${getParentWidth() - 76}px`\n            element.style.overflowY = `visible`\n            element.style.visibility = `visible`\n            element.style.paddingTop = '36px'\n            element.style.opacity = `1`\n            element.style.maxHeight = `100%`\n            element.style.height = `100%`\n          } else {\n            element.style.transition =\n              'transform 0.15s ease-in-out, opacity 0.15s ease-in-out'\n            element.style.opacity = `0`\n            element.style.visibility = `visible`\n            element.style.paddingTop = '36px'\n            setTimeout(() => {\n              element.style.visibility = 'hidden'\n              element.style.transition = ''\n            }, 150)\n          }\n        }\n      }\n      if (\n        getListItems().length !== 0 &&\n        props.position === 'left' &&\n        props.type == 'small' &&\n        !props.disabled\n      ) {\n        const element = itemsListRef.value\n        if (element) {\n          if (newValue) {\n            element.style.transition =\n              'transform 0.15s ease-in-out, opacity 0.15s ease-in-out'\n            element.style.position = 'absolute'\n            element.style.top = '0'\n            element.style.right = `76px`\n            element.style.width = `${getParentWidth() - 76}px`\n            element.style.overflowY = `visible`\n            element.style.visibility = `visible`\n            element.style.paddingTop = '36px'\n            element.style.opacity = `1`\n            element.style.maxHeight = `100%`\n            element.style.height = `100%`\n          } else {\n            element.style.transition =\n              'transform 0.15s ease-in-out, opacity 0.15s ease-in-out'\n            element.style.position = 'absolute'\n            element.style.opacity = `0`\n            element.style.visibility = `visible`\n            setTimeout(() => {\n              element.style.visibility = 'hidden'\n              element.style.transition = ''\n            }, 150)\n          }\n        }\n      }\n    })\n\n    watchEffect(() => {\n      if (props.type !== 'small') {\n        const element = itemsListRef.value\n        if (element) {\n          element.style.transition = ''\n          element.style.opacity = ''\n          element.style.visibility = ''\n          element.style.position = ''\n          element.style.overflowY = ''\n          element.style.paddingTop = ''\n          element.style.width = ''\n        }\n      }\n    })\n\n    const itemsListClasses = computed(() => ({\n      // eslint-disable-next-line max-len\n      'w-calc-100%-plus-8px flex flex-col gap-1 px-1 ml-[-4px] overflow-y-hidden transition-max-height max-h-0 select-none':\n        true,\n      ...(props.position !== 'bottom' && {\n        'opacity-0': true,\n      }),\n      ...(props.type === 'small' &&\n        props.position !== 'bottom' && {\n          'w-[0px] px-3': true,\n        }),\n      [`bg-${props.color}`]: true,\n    }))\n\n    const subTitleClasses = computed(() => ({\n      'text-md text-gray-900 px-3 pb-4 font-medium': true,\n    }))\n\n    const prependIconColor = () => {\n      if (isActive.value === true || isHover.value === true) {\n        return 'gray-500'\n      }\n      return 'gray-500'\n    }\n\n    const chevronIconColor = () => {\n      if (\n        (isActive.value === true || isHover.value === true) &&\n        !props.disabled\n      ) {\n        return 'gray-400'\n      }\n      return 'gray-500'\n    }\n\n    useRender(() => (\n      <div class=\"w-full\">\n        <div\n          onMouseover={() => (isHover.value = true)}\n          onMouseleave={() => (isHover.value = false)}\n          onClick={() => (isActive.value = !isActive.value)}\n          class={[navItemClasses.value, 'item']}\n        >\n          <div class=\"flex gap-3 items-center\">\n            {props.prependIcon ? (\n              <UIcon\n                color={prependIconColor()}\n                size=\"24\"\n                icon={`$${props.prependIcon}`}\n              ></UIcon>\n            ) : null}\n            {slots.default && props.type !== 'small' && (\n              <div class={navItemTextClasses.value}>{slots.default?.()}</div>\n            )}\n          </div>\n\n          {getListItems().length !== 0 && props.type !== 'small' ? (\n            <div class={chevronIconClasses.value}>\n              <UIcon\n                color={chevronIconColor()}\n                size=\"20\"\n                icon={`$chevronDown`}\n              ></UIcon>\n            </div>\n          ) : null}\n        </div>\n        <div ref={itemsListRef} class={itemsListClasses.value}>\n          {slots.default && props.type === 'small' && (\n            <div class={subTitleClasses.value}>{slots.default?.()}</div>\n          )}\n          {renderListItems()}\n        </div>\n      </div>\n    ))\n\n    return {\n      isActive,\n    }\n  },\n})\n\nexport type UListItemGroup = InstanceType<typeof UListItemGroup>\n"],"mappings":"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"}