overlay.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var vue = require('vue');
  4. require('../../../utils/index.js');
  5. require('../../../hooks/index.js');
  6. var runtime = require('../../../utils/vue/props/runtime.js');
  7. var index = require('../../../hooks/use-namespace/index.js');
  8. var index$1 = require('../../../hooks/use-same-target/index.js');
  9. var vnode = require('../../../utils/vue/vnode.js');
  10. const overlayProps = runtime.buildProps({
  11. mask: {
  12. type: Boolean,
  13. default: true
  14. },
  15. customMaskEvent: {
  16. type: Boolean,
  17. default: false
  18. },
  19. overlayClass: {
  20. type: runtime.definePropType([
  21. String,
  22. Array,
  23. Object
  24. ])
  25. },
  26. zIndex: {
  27. type: runtime.definePropType([String, Number])
  28. }
  29. });
  30. const overlayEmits = {
  31. click: (evt) => evt instanceof MouseEvent
  32. };
  33. var Overlay = vue.defineComponent({
  34. name: "ElOverlay",
  35. props: overlayProps,
  36. emits: overlayEmits,
  37. setup(props, { slots, emit }) {
  38. const ns = index.useNamespace("overlay");
  39. const onMaskClick = (e) => {
  40. emit("click", e);
  41. };
  42. const { onClick, onMousedown, onMouseup } = index$1.useSameTarget(props.customMaskEvent ? void 0 : onMaskClick);
  43. return () => {
  44. return props.mask ? vue.createVNode("div", {
  45. class: [ns.b(), props.overlayClass],
  46. style: {
  47. zIndex: props.zIndex
  48. },
  49. onClick,
  50. onMousedown,
  51. onMouseup
  52. }, [vue.renderSlot(slots, "default")], vnode.PatchFlags.STYLE | vnode.PatchFlags.CLASS | vnode.PatchFlags.PROPS, ["onClick", "onMouseup", "onMousedown"]) : vue.h("div", {
  53. class: props.overlayClass,
  54. style: {
  55. zIndex: props.zIndex,
  56. position: "fixed",
  57. top: "0px",
  58. right: "0px",
  59. bottom: "0px",
  60. left: "0px"
  61. }
  62. }, [vue.renderSlot(slots, "default")]);
  63. };
  64. }
  65. });
  66. exports["default"] = Overlay;
  67. exports.overlayEmits = overlayEmits;
  68. exports.overlayProps = overlayProps;
  69. //# sourceMappingURL=overlay.js.map