3a1d998371033688a60e7ade60037745a0abdbabff4408dc47c506acdbbb13b97e8d67e22255cb932467f5ce722b637f6d1a8fc3b0b69737fa1f4cb85782c4 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var vue = require('vue');
  4. var index$1 = require('../../collapse-transition/index.js');
  5. var index = require('../../icon/index.js');
  6. var collapseItem = require('./collapse-item.js');
  7. var useCollapseItem = require('./use-collapse-item.js');
  8. var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
  9. const __default__ = vue.defineComponent({
  10. name: "ElCollapseItem"
  11. });
  12. const _sfc_main = /* @__PURE__ */ vue.defineComponent({
  13. ...__default__,
  14. props: collapseItem.collapseItemProps,
  15. setup(__props, { expose }) {
  16. const props = __props;
  17. const {
  18. focusing,
  19. id,
  20. isActive,
  21. handleFocus,
  22. handleHeaderClick,
  23. handleEnterClick
  24. } = useCollapseItem.useCollapseItem(props);
  25. const {
  26. arrowKls,
  27. headKls,
  28. rootKls,
  29. itemTitleKls,
  30. itemWrapperKls,
  31. itemContentKls,
  32. scopedContentId,
  33. scopedHeadId
  34. } = useCollapseItem.useCollapseItemDOM(props, { focusing, isActive, id });
  35. expose({
  36. isActive
  37. });
  38. return (_ctx, _cache) => {
  39. return vue.openBlock(), vue.createElementBlock("div", {
  40. class: vue.normalizeClass(vue.unref(rootKls))
  41. }, [
  42. vue.createElementVNode("div", {
  43. id: vue.unref(scopedHeadId),
  44. class: vue.normalizeClass(vue.unref(headKls)),
  45. "aria-expanded": vue.unref(isActive),
  46. "aria-controls": vue.unref(scopedContentId),
  47. "aria-describedby": vue.unref(scopedContentId),
  48. tabindex: _ctx.disabled ? -1 : 0,
  49. role: "button",
  50. onClick: vue.unref(handleHeaderClick),
  51. onKeydown: vue.withKeys(vue.withModifiers(vue.unref(handleEnterClick), ["stop"]), ["space", "enter"]),
  52. onFocus: vue.unref(handleFocus),
  53. onBlur: ($event) => focusing.value = false
  54. }, [
  55. vue.createElementVNode("span", {
  56. class: vue.normalizeClass(vue.unref(itemTitleKls))
  57. }, [
  58. vue.renderSlot(_ctx.$slots, "title", { isActive: vue.unref(isActive) }, () => [
  59. vue.createTextVNode(vue.toDisplayString(_ctx.title), 1)
  60. ])
  61. ], 2),
  62. vue.renderSlot(_ctx.$slots, "icon", { isActive: vue.unref(isActive) }, () => [
  63. vue.createVNode(vue.unref(index.ElIcon), {
  64. class: vue.normalizeClass(vue.unref(arrowKls))
  65. }, {
  66. default: vue.withCtx(() => [
  67. (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.icon)))
  68. ]),
  69. _: 1
  70. }, 8, ["class"])
  71. ])
  72. ], 42, ["id", "aria-expanded", "aria-controls", "aria-describedby", "tabindex", "onClick", "onKeydown", "onFocus", "onBlur"]),
  73. vue.createVNode(vue.unref(index$1.ElCollapseTransition), null, {
  74. default: vue.withCtx(() => [
  75. vue.withDirectives(vue.createElementVNode("div", {
  76. id: vue.unref(scopedContentId),
  77. role: "region",
  78. class: vue.normalizeClass(vue.unref(itemWrapperKls)),
  79. "aria-hidden": !vue.unref(isActive),
  80. "aria-labelledby": vue.unref(scopedHeadId)
  81. }, [
  82. vue.createElementVNode("div", {
  83. class: vue.normalizeClass(vue.unref(itemContentKls))
  84. }, [
  85. vue.renderSlot(_ctx.$slots, "default")
  86. ], 2)
  87. ], 10, ["id", "aria-hidden", "aria-labelledby"]), [
  88. [vue.vShow, vue.unref(isActive)]
  89. ])
  90. ]),
  91. _: 3
  92. })
  93. ], 2);
  94. };
  95. }
  96. });
  97. var CollapseItem = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "collapse-item.vue"]]);
  98. exports["default"] = CollapseItem;
  99. //# sourceMappingURL=collapse-item2.js.map