TabsTitle.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. var __defProp = Object.defineProperty;
  2. var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
  3. var __getOwnPropNames = Object.getOwnPropertyNames;
  4. var __hasOwnProp = Object.prototype.hasOwnProperty;
  5. var __export = (target, all) => {
  6. for (var name2 in all)
  7. __defProp(target, name2, { get: all[name2], enumerable: true });
  8. };
  9. var __copyProps = (to, from, except, desc) => {
  10. if (from && typeof from === "object" || typeof from === "function") {
  11. for (let key of __getOwnPropNames(from))
  12. if (!__hasOwnProp.call(to, key) && key !== except)
  13. __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
  14. }
  15. return to;
  16. };
  17. var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
  18. var stdin_exports = {};
  19. __export(stdin_exports, {
  20. default: () => stdin_default
  21. });
  22. module.exports = __toCommonJS(stdin_exports);
  23. var import_vue = require("vue");
  24. var import_vue2 = require("vue");
  25. var import_utils = require("../utils");
  26. var import_badge = require("../badge");
  27. const [name, bem] = (0, import_utils.createNamespace)("tab");
  28. var stdin_default = (0, import_vue2.defineComponent)({
  29. name,
  30. props: {
  31. id: String,
  32. dot: Boolean,
  33. type: String,
  34. color: String,
  35. title: String,
  36. badge: import_utils.numericProp,
  37. shrink: Boolean,
  38. isActive: Boolean,
  39. disabled: Boolean,
  40. controls: String,
  41. scrollable: Boolean,
  42. activeColor: String,
  43. inactiveColor: String,
  44. showZeroBadge: import_utils.truthProp
  45. },
  46. setup(props, {
  47. slots
  48. }) {
  49. const style = (0, import_vue2.computed)(() => {
  50. const style2 = {};
  51. const {
  52. type,
  53. color,
  54. disabled,
  55. isActive,
  56. activeColor,
  57. inactiveColor
  58. } = props;
  59. const isCard = type === "card";
  60. if (color && isCard) {
  61. style2.borderColor = color;
  62. if (!disabled) {
  63. if (isActive) {
  64. style2.backgroundColor = color;
  65. } else {
  66. style2.color = color;
  67. }
  68. }
  69. }
  70. const titleColor = isActive ? activeColor : inactiveColor;
  71. if (titleColor) {
  72. style2.color = titleColor;
  73. }
  74. return style2;
  75. });
  76. const renderText = () => {
  77. const Text = (0, import_vue.createVNode)("span", {
  78. "class": bem("text", {
  79. ellipsis: !props.scrollable
  80. })
  81. }, [slots.title ? slots.title() : props.title]);
  82. if (props.dot || (0, import_utils.isDef)(props.badge) && props.badge !== "") {
  83. return (0, import_vue.createVNode)(import_badge.Badge, {
  84. "dot": props.dot,
  85. "content": props.badge,
  86. "showZero": props.showZeroBadge
  87. }, {
  88. default: () => [Text]
  89. });
  90. }
  91. return Text;
  92. };
  93. return () => (0, import_vue.createVNode)("div", {
  94. "id": props.id,
  95. "role": "tab",
  96. "class": [bem([props.type, {
  97. grow: props.scrollable && !props.shrink,
  98. shrink: props.shrink,
  99. active: props.isActive,
  100. disabled: props.disabled
  101. }])],
  102. "style": style.value,
  103. "tabindex": props.disabled ? void 0 : props.isActive ? 0 : -1,
  104. "aria-selected": props.isActive,
  105. "aria-disabled": props.disabled || void 0,
  106. "aria-controls": props.controls
  107. }, [renderText()]);
  108. }
  109. });