UNPKG

bootstrap-vue-next

Version:

Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development

1 lines 25.7 kB
{"version":3,"file":"BAvatar-D7aFEXLH.mjs","names":[],"sources":["../src/components/BAvatar/BAvatar.vue","../src/components/BAvatar/BAvatar.vue","../src/components/BAvatar/BAvatarGroup.vue","../src/components/BAvatar/BAvatarGroup.vue"],"sourcesContent":["<template>\n <component\n :is=\"computedTag\"\n class=\"b-avatar\"\n :class=\"computedClasses\"\n :style=\"computedStyle\"\n v-bind=\"computedLinkProps\"\n :type=\"props.button && !computedLink ? props.buttonType : undefined\"\n :disabled=\"props.disabled || null\"\n :variant=\"null\"\n @click=\"clicked\"\n >\n <span v-if=\"hasDefaultSlot\" class=\"b-avatar-custom\">\n <slot />\n </span>\n <span v-else-if=\"!!localSrc\" class=\"b-avatar-img\">\n <img :src=\"localSrc\" :alt=\"props.alt\" @error=\"onImgError\" />\n </span>\n <span v-else-if=\"!!props.text\" class=\"b-avatar-text\" :style=\"textFontStyle\">\n {{ props.text }}\n </span>\n <span v-else class=\"b-avatar-img\"\n ><svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"80%\"\n height=\"80%\"\n fill=\"currentColor\"\n class=\"bi bi-person-fill\"\n viewBox=\"0 0 16 16\"\n >\n <path d=\"M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6\" />\n </svg>\n </span>\n <BBadge\n v-if=\"showBadge\"\n :pill=\"props.badgePill\"\n :dot-indicator=\"props.badgeDotIndicator || badgeImplicitlyDot\"\n :variant=\"props.badgeVariant\"\n :bg-variant=\"props.badgeBgVariant\"\n :text-variant=\"props.badgeTextVariant\"\n :style=\"badgeStyle\"\n :placement=\"props.badgePlacement\"\n >\n <slot name=\"badge\">\n {{ badgeText }}\n </slot>\n </BBadge>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {avatarGroupInjectionKey} from '../../utils/keys'\nimport {computed, type CSSProperties, inject, ref, type StyleValue, watch} from 'vue'\nimport type {BAvatarProps} from '../../types/ComponentProps'\nimport BLink from '../BLink/BLink.vue'\nimport BBadge from '../BBadge/BBadge.vue'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useNumberishToStyle} from '../../composables/useNumberishToStyle'\nimport {useRadiusElementClasses} from '../../composables/useRadiusElementClasses'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BAvatarEmits, BAvatarSlots, Size} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BAvatarProps>(), {\n alt: 'avatar',\n badge: false,\n badgeBgVariant: null,\n badgeTextVariant: null,\n badgeVariant: 'primary',\n badgePlacement: 'bottom-end',\n badgeDotIndicator: false,\n badgePill: false,\n button: false,\n buttonType: 'button',\n size: undefined,\n square: false,\n src: undefined,\n text: undefined,\n // Link props\n variant: 'secondary',\n // All others use defaults\n active: undefined,\n activeClass: undefined,\n disabled: undefined,\n exactActiveClass: undefined,\n href: undefined,\n opacity: undefined,\n opacityHover: undefined,\n rel: undefined,\n replace: undefined,\n stretched: false,\n routerComponentName: undefined,\n target: undefined,\n underlineOffset: undefined,\n underlineOffsetHover: undefined,\n underlineOpacity: undefined,\n underlineOpacityHover: undefined,\n underlineVariant: undefined,\n // End link props\n // ColorExtendables props\n // Variant is here as well\n bgVariant: null,\n textVariant: null,\n // End ColorExtendables props\n // RadiusElementExtendables props\n rounded: 'circle',\n roundedBottom: undefined,\n roundedEnd: undefined,\n roundedStart: undefined,\n roundedTop: undefined,\n // End RadiusElementExtendables props\n})\nconst props = useDefaults(_props, 'BAvatar')\nconst emit = defineEmits<BAvatarEmits>()\nconst slots = defineSlots<BAvatarSlots>()\n\nconst localSrc = ref(props.src)\nwatch(\n () => props.src,\n (value) => {\n localSrc.value = value\n }\n)\n\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst parentData = inject(avatarGroupInjectionKey, null)\n\nconst SIZES = Object.freeze([\n null,\n ...Object.keys({\n lg: null,\n md: null,\n sm: null,\n } satisfies Record<Size, null>),\n] as (string | null)[])\nconst FONT_SIZE_SCALE = 0.4\nconst BADGE_FONT_SIZE_SCALE = FONT_SIZE_SCALE * 0.7\n\nconst hasDefaultSlot = computed(() => !isEmptySlot(slots.default))\nconst hasBadgeSlot = computed(() => !isEmptySlot(slots.badge))\n\nconst showBadge = computed(() => !!props.badge || props.badge === '' || hasBadgeSlot.value)\nconst computedSquare = computed(() => parentData?.square.value || props.square)\n\n// const computedPropSize = useNumberishToStyle(() => props.size)\n// const propSizeIsLiteralSize = (val: unknown): val is Size =>\n// !!val && typeof val === 'string' && SIZES.includes(val)\n// const computedParentSize = useNumberishToStyle(() => parentData?.size.value)\n// const computedSize = computed(() => computedParentSize.value ?? computedPropSize.value)\n// const computedPropSizeIsLiteralSize = computed(() => propSizeIsLiteralSize(computedSize.value))\n\nconst computedSize = useNumberishToStyle(() => parentData?.size.value ?? props.size)\nconst computedSizeIsLiteralSize = computed(\n () => !!computedSize.value && SIZES.includes(computedSize.value)\n)\n\nconst computedVariant = computed(() => parentData?.variant.value ?? props.variant)\nconst computedRounded = computed(() => parentData?.rounded.value ?? props.rounded)\nconst computedRoundedTop = computed(() => parentData?.roundedTop.value ?? props.roundedTop)\nconst computedRoundedBottom = computed(() => parentData?.roundedBottom.value ?? props.roundedBottom)\nconst computedRoundedStart = computed(() => parentData?.roundedStart.value ?? props.roundedStart)\nconst computedRoundedEnd = computed(() => parentData?.roundedEnd.value ?? props.roundedEnd)\n\nconst radiusElementClasses = useRadiusElementClasses(() => ({\n rounded: computedRounded.value,\n roundedTop: computedRoundedTop.value,\n roundedBottom: computedRoundedBottom.value,\n roundedStart: computedRoundedStart.value,\n roundedEnd: computedRoundedEnd.value,\n}))\n\nconst badgeText = computed(() => (props.badge === true ? '' : props.badge))\nconst badgeImplicitlyDot = computed(() => !badgeText.value && !hasBadgeSlot.value)\n\nconst colorClasses = useColorVariantClasses(() => ({\n bgVariant: parentData?.bgVariant.value ?? props.bgVariant,\n textVariant: parentData?.textVariant.value ?? props.textVariant,\n variant: computedVariant.value,\n}))\nconst computedClasses = computed(() => [\n colorClasses.value,\n // Square overwrites all else\n computedSquare.value === true ? undefined : radiusElementClasses.value,\n {\n [`b-avatar-${computedSize.value}`]:\n computedSizeIsLiteralSize.value && computedSize.value !== 'md',\n [`btn-${computedVariant.value}`]: props.button ? computedVariant.value !== null : false,\n 'badge': !props.button && computedVariant.value !== null && hasDefaultSlot.value,\n 'btn': props.button,\n // Square is the same as rounded-0 class\n 'rounded-0': computedSquare.value === true,\n },\n])\n\nconst badgeStyle = computed<StyleValue>(() => ({\n fontSize:\n (!computedSizeIsLiteralSize.value\n ? `calc(${computedSize.value} * ${BADGE_FONT_SIZE_SCALE})`\n : '') || '',\n}))\n\nconst textFontStyle = computed<StyleValue>(() => {\n const fontSize = !computedSizeIsLiteralSize.value\n ? `calc(${computedSize.value} * ${FONT_SIZE_SCALE})`\n : null\n return fontSize ? {fontSize} : {}\n})\n\nconst marginStyle = computed(() => {\n const overlapScale = parentData?.overlapScale?.value || 0\n\n const value =\n computedSize.value && overlapScale ? `calc(${computedSize.value} * -${overlapScale})` : null\n return value ? {marginLeft: value, marginRight: value} : {}\n})\n\nconst computedTag = computed(() => (computedLink.value ? BLink : props.button ? 'button' : 'span'))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n ...marginStyle.value,\n ...(!computedSizeIsLiteralSize.value\n ? {\n width: computedSize.value,\n height: computedSize.value,\n }\n : undefined),\n}))\n\nconst clicked = (e: Readonly<MouseEvent>): void => {\n if (!props.disabled && (computedLink.value || props.button)) emit('click', e)\n}\n\nconst onImgError = (e: Readonly<Event>) => {\n localSrc.value = undefined\n emit('img-error', e)\n}\n</script>\n","<template>\n <component\n :is=\"computedTag\"\n class=\"b-avatar\"\n :class=\"computedClasses\"\n :style=\"computedStyle\"\n v-bind=\"computedLinkProps\"\n :type=\"props.button && !computedLink ? props.buttonType : undefined\"\n :disabled=\"props.disabled || null\"\n :variant=\"null\"\n @click=\"clicked\"\n >\n <span v-if=\"hasDefaultSlot\" class=\"b-avatar-custom\">\n <slot />\n </span>\n <span v-else-if=\"!!localSrc\" class=\"b-avatar-img\">\n <img :src=\"localSrc\" :alt=\"props.alt\" @error=\"onImgError\" />\n </span>\n <span v-else-if=\"!!props.text\" class=\"b-avatar-text\" :style=\"textFontStyle\">\n {{ props.text }}\n </span>\n <span v-else class=\"b-avatar-img\"\n ><svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"80%\"\n height=\"80%\"\n fill=\"currentColor\"\n class=\"bi bi-person-fill\"\n viewBox=\"0 0 16 16\"\n >\n <path d=\"M3 14s-1 0-1-1 1-4 6-4 6 3 6 4-1 1-1 1zm5-6a3 3 0 1 0 0-6 3 3 0 0 0 0 6\" />\n </svg>\n </span>\n <BBadge\n v-if=\"showBadge\"\n :pill=\"props.badgePill\"\n :dot-indicator=\"props.badgeDotIndicator || badgeImplicitlyDot\"\n :variant=\"props.badgeVariant\"\n :bg-variant=\"props.badgeBgVariant\"\n :text-variant=\"props.badgeTextVariant\"\n :style=\"badgeStyle\"\n :placement=\"props.badgePlacement\"\n >\n <slot name=\"badge\">\n {{ badgeText }}\n </slot>\n </BBadge>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {avatarGroupInjectionKey} from '../../utils/keys'\nimport {computed, type CSSProperties, inject, ref, type StyleValue, watch} from 'vue'\nimport type {BAvatarProps} from '../../types/ComponentProps'\nimport BLink from '../BLink/BLink.vue'\nimport BBadge from '../BBadge/BBadge.vue'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useNumberishToStyle} from '../../composables/useNumberishToStyle'\nimport {useRadiusElementClasses} from '../../composables/useRadiusElementClasses'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BAvatarEmits, BAvatarSlots, Size} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BAvatarProps>(), {\n alt: 'avatar',\n badge: false,\n badgeBgVariant: null,\n badgeTextVariant: null,\n badgeVariant: 'primary',\n badgePlacement: 'bottom-end',\n badgeDotIndicator: false,\n badgePill: false,\n button: false,\n buttonType: 'button',\n size: undefined,\n square: false,\n src: undefined,\n text: undefined,\n // Link props\n variant: 'secondary',\n // All others use defaults\n active: undefined,\n activeClass: undefined,\n disabled: undefined,\n exactActiveClass: undefined,\n href: undefined,\n opacity: undefined,\n opacityHover: undefined,\n rel: undefined,\n replace: undefined,\n stretched: false,\n routerComponentName: undefined,\n target: undefined,\n underlineOffset: undefined,\n underlineOffsetHover: undefined,\n underlineOpacity: undefined,\n underlineOpacityHover: undefined,\n underlineVariant: undefined,\n // End link props\n // ColorExtendables props\n // Variant is here as well\n bgVariant: null,\n textVariant: null,\n // End ColorExtendables props\n // RadiusElementExtendables props\n rounded: 'circle',\n roundedBottom: undefined,\n roundedEnd: undefined,\n roundedStart: undefined,\n roundedTop: undefined,\n // End RadiusElementExtendables props\n})\nconst props = useDefaults(_props, 'BAvatar')\nconst emit = defineEmits<BAvatarEmits>()\nconst slots = defineSlots<BAvatarSlots>()\n\nconst localSrc = ref(props.src)\nwatch(\n () => props.src,\n (value) => {\n localSrc.value = value\n }\n)\n\nconst {computedLink, computedLinkProps} = useBLinkHelper(props)\n\nconst parentData = inject(avatarGroupInjectionKey, null)\n\nconst SIZES = Object.freeze([\n null,\n ...Object.keys({\n lg: null,\n md: null,\n sm: null,\n } satisfies Record<Size, null>),\n] as (string | null)[])\nconst FONT_SIZE_SCALE = 0.4\nconst BADGE_FONT_SIZE_SCALE = FONT_SIZE_SCALE * 0.7\n\nconst hasDefaultSlot = computed(() => !isEmptySlot(slots.default))\nconst hasBadgeSlot = computed(() => !isEmptySlot(slots.badge))\n\nconst showBadge = computed(() => !!props.badge || props.badge === '' || hasBadgeSlot.value)\nconst computedSquare = computed(() => parentData?.square.value || props.square)\n\n// const computedPropSize = useNumberishToStyle(() => props.size)\n// const propSizeIsLiteralSize = (val: unknown): val is Size =>\n// !!val && typeof val === 'string' && SIZES.includes(val)\n// const computedParentSize = useNumberishToStyle(() => parentData?.size.value)\n// const computedSize = computed(() => computedParentSize.value ?? computedPropSize.value)\n// const computedPropSizeIsLiteralSize = computed(() => propSizeIsLiteralSize(computedSize.value))\n\nconst computedSize = useNumberishToStyle(() => parentData?.size.value ?? props.size)\nconst computedSizeIsLiteralSize = computed(\n () => !!computedSize.value && SIZES.includes(computedSize.value)\n)\n\nconst computedVariant = computed(() => parentData?.variant.value ?? props.variant)\nconst computedRounded = computed(() => parentData?.rounded.value ?? props.rounded)\nconst computedRoundedTop = computed(() => parentData?.roundedTop.value ?? props.roundedTop)\nconst computedRoundedBottom = computed(() => parentData?.roundedBottom.value ?? props.roundedBottom)\nconst computedRoundedStart = computed(() => parentData?.roundedStart.value ?? props.roundedStart)\nconst computedRoundedEnd = computed(() => parentData?.roundedEnd.value ?? props.roundedEnd)\n\nconst radiusElementClasses = useRadiusElementClasses(() => ({\n rounded: computedRounded.value,\n roundedTop: computedRoundedTop.value,\n roundedBottom: computedRoundedBottom.value,\n roundedStart: computedRoundedStart.value,\n roundedEnd: computedRoundedEnd.value,\n}))\n\nconst badgeText = computed(() => (props.badge === true ? '' : props.badge))\nconst badgeImplicitlyDot = computed(() => !badgeText.value && !hasBadgeSlot.value)\n\nconst colorClasses = useColorVariantClasses(() => ({\n bgVariant: parentData?.bgVariant.value ?? props.bgVariant,\n textVariant: parentData?.textVariant.value ?? props.textVariant,\n variant: computedVariant.value,\n}))\nconst computedClasses = computed(() => [\n colorClasses.value,\n // Square overwrites all else\n computedSquare.value === true ? undefined : radiusElementClasses.value,\n {\n [`b-avatar-${computedSize.value}`]:\n computedSizeIsLiteralSize.value && computedSize.value !== 'md',\n [`btn-${computedVariant.value}`]: props.button ? computedVariant.value !== null : false,\n 'badge': !props.button && computedVariant.value !== null && hasDefaultSlot.value,\n 'btn': props.button,\n // Square is the same as rounded-0 class\n 'rounded-0': computedSquare.value === true,\n },\n])\n\nconst badgeStyle = computed<StyleValue>(() => ({\n fontSize:\n (!computedSizeIsLiteralSize.value\n ? `calc(${computedSize.value} * ${BADGE_FONT_SIZE_SCALE})`\n : '') || '',\n}))\n\nconst textFontStyle = computed<StyleValue>(() => {\n const fontSize = !computedSizeIsLiteralSize.value\n ? `calc(${computedSize.value} * ${FONT_SIZE_SCALE})`\n : null\n return fontSize ? {fontSize} : {}\n})\n\nconst marginStyle = computed(() => {\n const overlapScale = parentData?.overlapScale?.value || 0\n\n const value =\n computedSize.value && overlapScale ? `calc(${computedSize.value} * -${overlapScale})` : null\n return value ? {marginLeft: value, marginRight: value} : {}\n})\n\nconst computedTag = computed(() => (computedLink.value ? BLink : props.button ? 'button' : 'span'))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n ...marginStyle.value,\n ...(!computedSizeIsLiteralSize.value\n ? {\n width: computedSize.value,\n height: computedSize.value,\n }\n : undefined),\n}))\n\nconst clicked = (e: Readonly<MouseEvent>): void => {\n if (!props.disabled && (computedLink.value || props.button)) emit('click', e)\n}\n\nconst onImgError = (e: Readonly<Event>) => {\n localSrc.value = undefined\n emit('img-error', e)\n}\n</script>\n","<template>\n <component :is=\"props.tag\" class=\"b-avatar-group\" role=\"group\">\n <div class=\"b-avatar-group-inner\" :style=\"paddingStyle\">\n <slot />\n </div>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, provide, type StyleValue, toRef} from 'vue'\nimport type {BAvatarGroupProps} from '../../types/ComponentProps'\nimport {avatarGroupInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useToNumber} from '@vueuse/core'\nimport {useNumberishToStyle} from '../../composables/useNumberishToStyle'\nimport type {BAvatarGroupSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BAvatarGroupProps>(), {\n overlap: 0.3,\n size: undefined,\n square: false,\n tag: 'div',\n // RadiusElementExtendables props\n rounded: 'circle',\n roundedBottom: undefined,\n roundedEnd: undefined,\n roundedStart: undefined,\n roundedTop: undefined,\n // End RadiusElementExtendables props\n // ColorExtendables props\n bgVariant: null,\n textVariant: null,\n variant: null,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BAvatarGroup')\ndefineSlots<BAvatarGroupSlots>()\n\nconst overlapNumber = useToNumber(() => props.overlap)\n\nconst computedSize = useNumberishToStyle(() => props.size)\nconst overlapScale = computed(() => Math.min(Math.max(overlapNumber.value, 0), 1) / 2)\n\nconst paddingStyle = computed<StyleValue>(() => {\n const value = computedSize.value ? `calc(${computedSize.value} * ${overlapScale.value})` : null\n return value ? {paddingLeft: value, paddingRight: value} : {}\n})\n\nprovide(avatarGroupInjectionKey, {\n overlapScale,\n size: toRef(() => props.size),\n square: toRef(() => props.square),\n rounded: toRef(() => props.rounded),\n roundedTop: toRef(() => props.roundedTop),\n roundedBottom: toRef(() => props.roundedBottom),\n roundedStart: toRef(() => props.roundedStart),\n roundedEnd: toRef(() => props.roundedEnd),\n variant: toRef(() => props.variant),\n bgVariant: toRef(() => props.bgVariant),\n textVariant: toRef(() => props.textVariant),\n})\n</script>\n","<template>\n <component :is=\"props.tag\" class=\"b-avatar-group\" role=\"group\">\n <div class=\"b-avatar-group-inner\" :style=\"paddingStyle\">\n <slot />\n </div>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, provide, type StyleValue, toRef} from 'vue'\nimport type {BAvatarGroupProps} from '../../types/ComponentProps'\nimport {avatarGroupInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useToNumber} from '@vueuse/core'\nimport {useNumberishToStyle} from '../../composables/useNumberishToStyle'\nimport type {BAvatarGroupSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BAvatarGroupProps>(), {\n overlap: 0.3,\n size: undefined,\n square: false,\n tag: 'div',\n // RadiusElementExtendables props\n rounded: 'circle',\n roundedBottom: undefined,\n roundedEnd: undefined,\n roundedStart: undefined,\n roundedTop: undefined,\n // End RadiusElementExtendables props\n // ColorExtendables props\n bgVariant: null,\n textVariant: null,\n variant: null,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BAvatarGroup')\ndefineSlots<BAvatarGroupSlots>()\n\nconst overlapNumber = useToNumber(() => props.overlap)\n\nconst computedSize = useNumberishToStyle(() => props.size)\nconst overlapScale = computed(() => Math.min(Math.max(overlapNumber.value, 0), 1) / 2)\n\nconst paddingStyle = computed<StyleValue>(() => {\n const value = computedSize.value ? `calc(${computedSize.value} * ${overlapScale.value})` : null\n return value ? {paddingLeft: value, paddingRight: value} : {}\n})\n\nprovide(avatarGroupInjectionKey, {\n overlapScale,\n size: toRef(() => props.size),\n square: toRef(() => props.square),\n rounded: toRef(() => props.rounded),\n roundedTop: toRef(() => props.roundedTop),\n roundedBottom: toRef(() => props.roundedBottom),\n roundedStart: toRef(() => props.roundedStart),\n roundedEnd: toRef(() => props.roundedEnd),\n variant: toRef(() => props.variant),\n bgVariant: toRef(() => props.bgVariant),\n textVariant: toRef(() => props.textVariant),\n})\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAyIA,IAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAxBxB,MAAM,QAAQ,YAjDC,SAiDmB,UAAS;EAC3C,MAAM,OAAO;EACb,MAAM,QAAQ,UAAA;EAEd,MAAM,WAAW,IAAI,MAAM,IAAG;AAC9B,cACQ,MAAM,MACX,UAAU;AACT,YAAS,QAAQ;IAErB;EAEA,MAAM,EAAC,cAAc,sBAAqB,eAAe,MAAK;EAE9D,MAAM,aAAa,OAAO,yBAAyB,KAAI;EAEvD,MAAM,QAAQ,OAAO,OAAO,CAC1B,MACA,GAAG,OAAO,KAAK;GACb,IAAI;GACJ,IAAI;GACJ,IAAI;GACL,CAA8B,CAChC,CAAqB;EAEtB,MAAM,wBAAwB,kBAAkB;EAEhD,MAAM,iBAAiB,eAAe,CAAC,YAAY,MAAM,QAAQ,CAAA;EACjE,MAAM,eAAe,eAAe,CAAC,YAAY,MAAM,MAAM,CAAA;EAE7D,MAAM,YAAY,eAAe,CAAC,CAAC,MAAM,SAAS,MAAM,UAAU,MAAM,aAAa,MAAK;EAC1F,MAAM,iBAAiB,eAAe,YAAY,OAAO,SAAS,MAAM,OAAM;EAS9E,MAAM,eAAe,0BAA0B,YAAY,KAAK,SAAS,MAAM,KAAI;EACnF,MAAM,4BAA4B,eAC1B,CAAC,CAAC,aAAa,SAAS,MAAM,SAAS,aAAa,MAAK,CACjE;EAEA,MAAM,kBAAkB,eAAe,YAAY,QAAQ,SAAS,MAAM,QAAO;EACjF,MAAM,kBAAkB,eAAe,YAAY,QAAQ,SAAS,MAAM,QAAO;EACjF,MAAM,qBAAqB,eAAe,YAAY,WAAW,SAAS,MAAM,WAAU;EAC1F,MAAM,wBAAwB,eAAe,YAAY,cAAc,SAAS,MAAM,cAAa;EACnG,MAAM,uBAAuB,eAAe,YAAY,aAAa,SAAS,MAAM,aAAY;EAChG,MAAM,qBAAqB,eAAe,YAAY,WAAW,SAAS,MAAM,WAAU;EAE1F,MAAM,uBAAuB,+BAA+B;GAC1D,SAAS,gBAAgB;GACzB,YAAY,mBAAmB;GAC/B,eAAe,sBAAsB;GACrC,cAAc,qBAAqB;GACnC,YAAY,mBAAmB;GAChC,EAAC;EAEF,MAAM,YAAY,eAAgB,MAAM,UAAU,OAAO,KAAK,MAAM,MAAM;EAC1E,MAAM,qBAAqB,eAAe,CAAC,UAAU,SAAS,CAAC,aAAa,MAAK;EAEjF,MAAM,eAAe,8BAA8B;GACjD,WAAW,YAAY,UAAU,SAAS,MAAM;GAChD,aAAa,YAAY,YAAY,SAAS,MAAM;GACpD,SAAS,gBAAgB;GAC1B,EAAC;EACF,MAAM,kBAAkB,eAAe;GACrC,aAAa;GAEb,eAAe,UAAU,OAAO,KAAA,IAAY,qBAAqB;GACjE;KACG,YAAY,aAAa,UACxB,0BAA0B,SAAS,aAAa,UAAU;KAC3D,OAAO,gBAAgB,UAAU,MAAM,SAAS,gBAAgB,UAAU,OAAO;IAClF,SAAS,CAAC,MAAM,UAAU,gBAAgB,UAAU,QAAQ,eAAe;IAC3E,OAAO,MAAM;IAEb,aAAa,eAAe,UAAU;;GAEzC,CAAA;EAED,MAAM,aAAa,gBAA4B,EAC7C,WACG,CAAC,0BAA0B,QACxB,QAAQ,aAAa,MAAM,KAAK,sBAAsB,KACtD,OAAO,IACd,EAAC;EAEF,MAAM,gBAAgB,eAA2B;GAC/C,MAAM,WAAW,CAAC,0BAA0B,QACxC,QAAQ,aAAa,MAAM,KAAK,gBAAgB,KAChD;AACJ,UAAO,WAAW,EAAC,UAAS,GAAG,EAAC;IACjC;EAED,MAAM,cAAc,eAAe;GACjC,MAAM,eAAe,YAAY,cAAc,SAAS;GAExD,MAAM,QACJ,aAAa,SAAS,eAAe,QAAQ,aAAa,MAAM,MAAM,aAAa,KAAK;AAC1F,UAAO,QAAQ;IAAC,YAAY;IAAO,aAAa;IAAM,GAAG,EAAC;IAC3D;EAED,MAAM,cAAc,eAAgB,aAAa,QAAQ,gBAAQ,MAAM,SAAS,WAAW,OAAO;EAElG,MAAM,gBAAgB,gBAA+B;GACnD,GAAG,YAAY;GACf,GAAI,CAAC,0BAA0B,QAC3B;IACE,OAAO,aAAa;IACpB,QAAQ,aAAa;IACvB,GACA,KAAA;GACL,EAAC;EAEF,MAAM,WAAW,MAAkC;AACjD,OAAI,CAAC,MAAM,aAAa,aAAa,SAAS,MAAM,QAAS,MAAK,SAAS,EAAC;;EAG9E,MAAM,cAAc,MAAuB;AACzC,YAAS,QAAQ,KAAA;AACjB,QAAK,aAAa,EAAC;;;uBA3OnB,YA8CY,wBA7CL,YAAA,MAAW,EADlB,WA8CY;IA5CV,OAAK,CAAC,YACE,gBAAA,MAAe;IACtB,OAAO,cAAA;MACA,MAAA,kBAAiB,EAAA;IACxB,MAAM,MAAA,MAAK,CAAC,UAAM,CAAK,MAAA,aAAY,GAAG,MAAA,MAAK,CAAC,aAAa,KAAA;IACzD,UAAU,MAAA,MAAK,CAAC,YAAQ;IACxB,SAAS;IACT,SAAO;;2BAID,CAFK,eAAA,SAAA,WAAA,EAAZ,mBAEO,QAFP,YAEO,CADL,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA,IAAA,CAAA,CAES,SAAA,SAAA,WAAA,EAAnB,mBAEO,QAFP,YAEO,CADL,mBAA4D,OAAA;KAAtD,KAAK,SAAA;KAAW,KAAK,MAAA,MAAK,CAAC;KAAM,SAAO;oCAE7B,MAAA,MAAK,CAAC,QAAA,WAAA,EAAzB,mBAEO,QAAA;;KAFwB,OAAM;KAAiB,OAAK,eAAE,cAAA,MAAA;uBACxD,MAAA,MAAK,CAAC,KAAI,EAAA,EAAA,KAAA,WAAA,EAEf,mBAWO,QAXP,YAWO,CAAA,GAAA,OAAA,OAAA,OAAA,KAAA,CAVJ,mBASK,OAAA;KARJ,OAAM;KACN,OAAM;KACN,QAAO;KACP,MAAK;KACL,OAAM;KACN,SAAQ;QAER,mBAAoF,QAAA,EAA9E,GAAE,2EAAyE,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,CAAA,GAI7E,UAAA,SAAA,WAAA,EADR,YAaS,gBAAA;;KAXN,MAAM,MAAA,MAAK,CAAC;KACZ,iBAAe,MAAA,MAAK,CAAC,qBAAqB,mBAAA;KAC1C,SAAS,MAAA,MAAK,CAAC;KACf,cAAY,MAAA,MAAK,CAAC;KAClB,gBAAc,MAAA,MAAK,CAAC;KACpB,OAAK,eAAE,WAAA,MAAU;KACjB,WAAW,MAAA,MAAK,CAAC;;4BAIX,CAFP,WAEO,KAAA,QAAA,SAAA,EAAA,QAAA,CAAA,gBAAA,gBADF,UAAA,MAAS,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EETpB,MAAM,QAAQ,YAlBC,SAkBmB,eAAc;EAGhD,MAAM,gBAAgB,kBAAkB,MAAM,QAAO;EAErD,MAAM,eAAe,0BAA0B,MAAM,KAAI;EACzD,MAAM,eAAe,eAAe,KAAK,IAAI,KAAK,IAAI,cAAc,OAAO,EAAE,EAAE,EAAE,GAAG,EAAC;EAErF,MAAM,eAAe,eAA2B;GAC9C,MAAM,QAAQ,aAAa,QAAQ,QAAQ,aAAa,MAAM,KAAK,aAAa,MAAM,KAAK;AAC3F,UAAO,QAAQ;IAAC,aAAa;IAAO,cAAc;IAAM,GAAG,EAAC;IAC7D;AAED,UAAQ,yBAAyB;GAC/B;GACA,MAAM,YAAY,MAAM,KAAK;GAC7B,QAAQ,YAAY,MAAM,OAAO;GACjC,SAAS,YAAY,MAAM,QAAQ;GACnC,YAAY,YAAY,MAAM,WAAW;GACzC,eAAe,YAAY,MAAM,cAAc;GAC/C,cAAc,YAAY,MAAM,aAAa;GAC7C,YAAY,YAAY,MAAM,WAAW;GACzC,SAAS,YAAY,MAAM,QAAQ;GACnC,WAAW,YAAY,MAAM,UAAU;GACvC,aAAa,YAAY,MAAM,YAAA;GAChC,CAAA;;uBA3DC,YAIY,wBAJI,MAAA,MAAK,CAAC,IAAG,EAAA;IAAE,OAAM;IAAiB,MAAK;;2BAG/C,CAFN,mBAEM,OAAA;KAFD,OAAM;KAAwB,OAAK,eAAE,aAAA,MAAA;QACxC,WAAQ,KAAA,QAAA,UAAA,CAAA,EAAA,EAAA,CAAA,CAAA"}