{"version":3,"file":"button.cjs","sources":["../../../components/button/button.tsx"],"sourcesContent":["import { Badge } from '@/components/badge'\nimport { CollapseTransition } from '@/components/collapse-transition'\nimport { Icon } from '@/components/icon'\nimport { FIELD_OPTIONS } from '@/components/form/symbol'\nimport { Renderer } from '@/components/renderer'\n\nimport { computed, defineComponent, inject, onBeforeUnmount, reactive, ref, renderSlot } from 'vue'\n\nimport {\n  createIconProp,\n  createSizeProp,\n  emitEvent,\n  useIcons,\n  useNameHelper,\n  useProps,\n} from '@vexip-ui/config'\nimport { adjustAlpha, isClient, mixColor, parseColorToRgba } from '@vexip-ui/utils'\nimport { buttonProps } from './props'\nimport { GROUP_STATE, buttonTypes } from './symbol'\n\nexport default defineComponent({\n  name: 'Button',\n  props: buttonProps,\n  emits: [],\n  setup(_props, { slots }) {\n    const fieldActions = inject(FIELD_OPTIONS, null)\n\n    const props = useProps('button', _props, {\n      size: createSizeProp(fieldActions ? fieldActions.size : undefined),\n      type: {\n        default: null,\n        validator: value => buttonTypes.includes(value),\n      },\n      dashed: false,\n      text: false,\n      simple: false,\n      ghost: false,\n      disabled: () => (fieldActions ? fieldActions.disabled.value : false),\n      loading: () => (fieldActions ? fieldActions.loading.value : false),\n      circle: false,\n      loadingIcon: createIconProp(),\n      loadingEffect: null,\n      icon: createIconProp(),\n      color: null,\n      buttonType: {\n        default: 'button',\n        validator: value => ['button', 'submit', 'reset'].includes(value),\n      },\n      block: false,\n      tag: 'button',\n      noPulse: false,\n      badge: null,\n      slots: () => ({}),\n    })\n\n    const groupState = inject(GROUP_STATE, null)\n\n    const nh = useNameHelper('button')\n    const icons = useIcons()\n    const pulsing = ref(false)\n    const index = ref(0)\n    const isLast = ref(false)\n\n    const isIconOnly = computed(() => {\n      return !slots.default && !props.slots.default\n    })\n    const type = computed(() => {\n      return props.type ?? groupState?.type ?? 'default'\n    })\n    const size = computed(() => {\n      return groupState?.size ?? props.size\n    })\n    const className = computed(() => {\n      return {\n        [nh.b()]: true,\n        [nh.bs('vars')]: true,\n        [nh.bm('inherit')]: props.inherit,\n        [nh.bm(type.value)]: type.value !== 'default',\n        [nh.bm('simple')]: !props.ghost && props.simple,\n        [nh.bm('ghost')]: props.ghost,\n        [nh.bm('text')]: props.text,\n        [nh.bm('dashed')]: props.dashed,\n        [nh.bm('disabled')]: props.disabled,\n        [nh.bm('loading')]: props.loading,\n        [nh.bm('circle')]: props.circle,\n        [nh.bm('icon-only')]: isIconOnly.value,\n        [nh.bm(size.value)]: size.value !== 'default',\n        [nh.bm('pulsing')]: pulsing.value,\n        [nh.bm('first')]: index.value === 1,\n        [nh.bm('last')]: isLast.value,\n        [nh.bm('block')]: props.block,\n      }\n    })\n    const colorMap = computed(() => {\n      if (!props.color) return null\n\n      const rootStyle = isClient ? getComputedStyle(document.documentElement) : null\n      const black = parseColorToRgba(rootStyle?.getPropertyValue(nh.nv('color-black')) || '#000')\n      const white = parseColorToRgba(rootStyle?.getPropertyValue(nh.nv('color-white')) || '#fff')\n      const baseColor = parseColorToRgba(props.color)\n\n      return {\n        base: baseColor.toString(),\n        light2: mixColor(white, baseColor, 0.2).toString(),\n        dark1: mixColor(black, baseColor, 0.1).toString(),\n        opacity1: adjustAlpha(baseColor, 0.9).toString(),\n        opacity3: adjustAlpha(baseColor, 0.7).toString(),\n        opacity4: adjustAlpha(baseColor, 0.6).toString(),\n        opacity7: adjustAlpha(baseColor, 0.3).toString(),\n        opacity8: adjustAlpha(baseColor, 0.2).toString(),\n        white8: adjustAlpha(white, 0.2).toString(),\n        white9: adjustAlpha(white, 0.1).toString(),\n      }\n    })\n    const style = computed<Record<string, string>>(() => {\n      if (!colorMap.value) return {}\n\n      const {\n        base,\n        light2,\n        dark1,\n        opacity1,\n        opacity3,\n        opacity4,\n        opacity7,\n        opacity8,\n        white8,\n        white9,\n      } = colorMap.value\n      const { cvm, gnv } = nh\n\n      if (props.ghost) {\n        return cvm({\n          color: base,\n          'color-hover': base,\n          'color-focus': base,\n          'color-active': base,\n          'color-disabled': base,\n          'bg-color': 'transparent',\n          'bg-color-hover': white9,\n          'bg-color-focus': white9,\n          'bg-color-active': white8,\n          'bg-color-disabled': 'transparent',\n          'b-color': base,\n          'b-color-hover': light2,\n          'b-color-focus': light2,\n          'b-color-active': dark1,\n          'b-color-disabled': gnv('content-color-disabled'),\n          'pulse-s-color': dark1,\n        })\n      }\n\n      if (props.simple) {\n        return cvm({\n          color: base,\n          'color-hover': base,\n          'color-focus': gnv('color-white'),\n          'color-active': gnv('color-white'),\n          'color-disabled': gnv('content-color-disabled'),\n          'bg-color': opacity8,\n          'bg-color-hover': opacity7,\n          'bg-color-focus': opacity1,\n          'bg-color-active': opacity1,\n          'bg-color-disabled': gnv('fill-color-background'),\n          'b-color': opacity4,\n          'b-color-hover': opacity4,\n          'b-color-focus': opacity3,\n          'b-color-active': opacity3,\n          'b-color-disabled': gnv('border-color-light-1'),\n          'pulse-s-color': dark1,\n        })\n      }\n\n      if (props.text || props.dashed) {\n        return cvm({\n          ...(props.dashed\n            ? {\n                'b-color': base,\n                'b-color-hover': light2,\n                'b-color-focus': light2,\n                'b-color-active': dark1,\n                'pulse-s-color': dark1,\n              }\n            : {}),\n          color: base,\n          'color-hover': light2,\n          'color-focus': light2,\n          'color-active': dark1,\n          'color-disabled': opacity4,\n        })\n      }\n\n      return cvm({\n        color: gnv('color-white'),\n        'color-hover': gnv('color-white'),\n        'color-focus': gnv('color-white'),\n        'color-active': gnv('color-white'),\n        'color-disabled': gnv('content-color-disabled'),\n        'bg-color': base,\n        'bg-color-hover': light2,\n        'bg-color-focus': light2,\n        'bg-color-active': dark1,\n        'bg-color-disabled': gnv('fill-color-background'),\n        'b-color': base,\n        'b-color-hover': light2,\n        'b-color-focus': light2,\n        'b-color-active': dark1,\n        'b-color-disabled': gnv('border-color-light-1'),\n        'pulse-s-color': dark1,\n      })\n    })\n\n    if (groupState) {\n      const state = reactive({ index, isLast })\n\n      groupState.increaseItem(state)\n\n      onBeforeUnmount(() => {\n        groupState.decreaseItem(state)\n      })\n    }\n\n    function handleClick(event: MouseEvent) {\n      if (props.disabled || props.loading || event.button) return\n\n      if (!props.noPulse) {\n        pulsing.value = false\n        requestAnimationFrame(() => {\n          pulsing.value = true\n        })\n      }\n\n      emitEvent(props.onClick, event)\n    }\n\n    function handleAnimationEnd() {\n      pulsing.value = false\n    }\n\n    function renderLoadingIcon() {\n      return (\n        <div class={[nh.be('icon'), nh.bem('icon', 'loading')]}>\n          {renderSlot(slots, 'loading', undefined, () => [\n            <Renderer renderer={props.slots.loading}>\n              <Icon\n                {...icons.value.loading}\n                effect={props.loadingEffect || icons.value.loading.effect}\n                icon={props.loadingIcon || icons.value.loading.icon}\n                label={'loading'}\n              ></Icon>\n            </Renderer>,\n          ])}\n        </div>\n      )\n    }\n\n    function renderSingleIcon() {\n      return props.loading ? (\n        renderLoadingIcon()\n      ) : (\n        <div class={nh.be('icon')}>\n          {renderSlot(slots, 'icon', undefined, () => [\n            <Renderer renderer={props.slots.icon}>\n              {props.icon ? <Icon icon={props.icon}></Icon> : null}\n            </Renderer>,\n          ])}\n        </div>\n      )\n    }\n\n    function renderCollapseIcon() {\n      if (props.icon || slots.icon || props.slots.icon) {\n        return props.loading ? (\n          renderLoadingIcon()\n        ) : (\n          <div class={nh.be('icon')}>\n            {renderSlot(slots, 'icon', undefined, () => [\n              <Renderer renderer={props.slots.icon}>\n                <Icon icon={props.icon}></Icon>\n              </Renderer>,\n            ])}\n          </div>\n        )\n      }\n\n      return (\n        <CollapseTransition appear horizontal fade-effect>\n          {props.loading && renderLoadingIcon()}\n        </CollapseTransition>\n      )\n    }\n\n    function renderBadge() {\n      const badgeType = props.disabled\n        ? 'disabled'\n        : props.type === 'default'\n          ? 'error'\n          : props.type\n\n      return (\n        <Badge\n          inherit\n          class={[nh.be('badge'), nh.bem('badge', badgeType)]}\n          content={props.badge}\n          type={badgeType}\n        ></Badge>\n      )\n    }\n\n    return () => {\n      const Button = (props.tag || 'button') as any\n\n      return (\n        <Button\n          type={props.buttonType}\n          class={className.value}\n          role={'button'}\n          style={style.value}\n          disabled={props.disabled}\n          onClick={handleClick}\n          onAnimationend={handleAnimationEnd}\n        >\n          {isIconOnly.value ? renderSingleIcon() : renderCollapseIcon()}\n          {!isIconOnly.value &&\n            renderSlot(slots, 'default', undefined, () => [\n              <Renderer renderer={props.slots.default}></Renderer>,\n            ])}\n          {!isIconOnly.value && (props.badge || props.badge === 0) ? renderBadge() : null}\n        </Button>\n      )\n    }\n  },\n})\n"],"names":["defineComponent","name","props","buttonProps","emits","setup","_props","slots","fieldActions","inject","FIELD_OPTIONS","useProps","size","createSizeProp","undefined","type","default","validator","value","buttonTypes","includes","dashed","text","simple","ghost","disabled","loading","circle","loadingIcon","createIconProp","loadingEffect","icon","color","buttonType","block","tag","noPulse","badge","groupState","GROUP_STATE","nh","useNameHelper","icons","useIcons","pulsing","ref","index","isLast","isIconOnly","computed","className","b","bs","bm","inherit","colorMap","rootStyle","isClient","getComputedStyle","document","documentElement","black","parseColorToRgba","getPropertyValue","nv","white","baseColor","base","toString","light2","mixColor","dark1","opacity1","adjustAlpha","opacity3","opacity4","opacity7","opacity8","white8","white9","style","cvm","gnv","state","reactive","increaseItem","onBeforeUnmount","decreaseItem","handleClick","event","button","requestAnimationFrame","emitEvent","onClick","handleAnimationEnd","renderLoadingIcon","_createVNode","be","bem","renderSlot","Renderer","Icon","_mergeProps","effect","renderSingleIcon","renderCollapseIcon","CollapseTransition","renderBadge","badgeType","Badge","Button"],"mappings":"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"}