{"version":3,"file":"dialog2.mjs","sources":["../../../../../../packages/components/dialog/src/dialog.vue"],"sourcesContent":["<template>\n  <hl-teleport\n    :to=\"appendTo\"\n    :disabled=\"appendTo !== 'body' ? false : !appendToBody\"\n  >\n    <transition name=\"fade\">\n      <hl-overlay\n        v-show=\"visible\"\n        :mask=\"modal\"\n        :overlay-class=\"modalClass\"\n        :z-index=\"zIndex\"\n        @click=\"overlayEvent.onClick\"\n        @mousedown=\"overlayEvent.onMousedown\"\n        @mouseup=\"overlayEvent.onMouseup\"\n      />\n    </transition>\n\n    <transition :name=\"animName\" @after-enter=\"afterEnter\" @after-leave=\"afterLeave\" @before-leave=\"beforeLeave\">\n      <div\n        v-show=\"visible\"\n        :role=\"showAs\"\n        aria-modal=\"true\"\n        :aria-label=\"title || undefined\"\n        :aria-labelledby=\"!title ? titleId : undefined\"\n        :aria-describedby=\"bodyId\"\n        :class=\"[namespace + '-dialog', 'at-' + placement]\"\n        :style=\"{\n          zIndex: zIndex + 1,\n        }\"\n        @click=\"overlayEvent.onClick\"\n        @mousedown=\"overlayEvent.onMousedown\"\n        @mouseup=\"overlayEvent.onMouseup\"\n      >\n        <focus-trap\n          loop\n          :trapped=\"visible\"\n          focus-start-el=\"container\"\n          @focus-after-trapped=\"onOpenAutoFocus\"\n          @focus-after-released=\"onCloseAutoFocus\"\n          @focusout-prevented=\"onFocusoutPrevented\"\n          @release-requested=\"onCloseRequested\"\n        >\n          <dialog-content\n            v-if=\"rendered\"\n            ref=\"dialogContentRef\"\n            :show-as=\"showAs\"\n            :show-close=\"showClose\"\n            :custom-class=\"customClass\"\n            :placement=\"placement\"\n            :top=\"top\"\n            :title=\"title\"\n            :height=\"height\"\n            :width=\"width\"\n            :draggable=\"draggable\"\n            :resizable=\"resizable\"\n            :aria-level=\"headerAriaLevel\"\n            v-bind=\"$attrs\"\n          >\n            <template v-if=\"$slots.header\" #header>\n              <slot\n                name=\"header\"\n                :close=\"handleClose\"\n                :title-id=\"titleId\"\n                title-class=\"panel-title\"\n              ></slot>\n            </template>\n            <template v-if=\"$slots.title\" #title>\n              <slot name=\"title\"></slot>\n            </template>\n            <slot></slot>\n            <template v-if=\"$slots.footer\" #footer>\n              <slot name=\"footer\"></slot>\n            </template>\n          </dialog-content>\n        </focus-trap>\n      </div>\n    </transition>\n  </hl-teleport>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, provide, ref } from 'vue'\nimport { HlOverlay } from '@hongluan-ui/components/overlay'\nimport { usePanelProps } from '@hongluan-ui/components/panel'\nimport { dialogInjectionKey } from '@hongluan-ui/tokens'\nimport FocusTrap from '@hongluan-ui/components/focus-trap'\nimport HlTeleport from '@hongluan-ui/components/teleport'\nimport { useDeprecated, useNamespace, useSameTarget } from '@hongluan-ui/hooks'\nimport { dialogProps, dialogEmits } from './dialog'\nimport { useDialog } from './use-dialog'\nimport DialogContent from './dialog-content.vue'\n\nexport default defineComponent({\n  name: 'Dialog',\n  components: {\n    HlOverlay,\n    DialogContent,\n    FocusTrap,\n    HlTeleport,\n  },\n  inheritAttrs: false,\n  props: dialogProps,\n  emits: dialogEmits,\n  setup(props) {\n    const dialogRef = ref<HTMLElement>()\n    const headerRef = ref<HTMLElement>()\n    const dialogContentRef = ref()\n\n    useDeprecated(\n      {\n        scope: 'hl-dialog',\n        from: 'custom-class',\n        replacement: 'class',\n        version: '2.5.0',\n        ref: 'https://element-plus.org/en-US/component/dialog.html#attributes',\n        type: 'Attribute',\n      },\n      computed(() => !!props.customClass),\n    )\n\n    const { namespace } = useNamespace()\n    const {\n      titleId,\n      bodyId,\n      afterEnter,\n      afterLeave,\n      beforeLeave,\n      handleClose,\n      onModalClick,\n      onOpenAutoFocus,\n      onCloseAutoFocus,\n      onCloseRequested,\n      onFocusoutPrevented,\n      close,\n      rendered,\n      animName,\n      visible,\n      zIndex,\n    } = useDialog(props, dialogRef)\n\n    const {\n      panelStyle,\n      panelClass,\n      headerClass: panelHeaderClass,\n      bodyClass: panelBodyClass,\n      footerClass: panelFooterClass,\n    } = usePanelProps(props)\n\n    provide(dialogInjectionKey, {\n      dialogRef,\n      headerRef,\n      bodyId,\n      handleClose,\n      onModalClick,\n      visible,\n      zIndex,\n      panelStyle,\n      panelClass,\n      panelHeaderClass,\n      panelBodyClass,\n      panelFooterClass,\n    })\n\n    const overlayEvent = useSameTarget(onModalClick)\n\n    return {\n      namespace,\n      titleId,\n      bodyId,\n      dialogContentRef,\n      onOpenAutoFocus,\n      onCloseAutoFocus,\n      onCloseRequested,\n      onFocusoutPrevented,\n      afterEnter,\n      afterLeave,\n      beforeLeave,\n      onModalClick,\n      overlayEvent,\n      handleClose,\n      close,\n      rendered,\n      animName,\n      visible,\n      zIndex,\n    }\n  },\n})\n</script>\n"],"names":["FocusTrap","_createBlock","_createVNode","_Transition","_createElementVNode","_normalizeClass","_normalizeStyle","_mergeProps","_renderSlot"],"mappings":"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"}