Title.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import _extends from "@babel/runtime/helpers/esm/extends";
  2. import { createVNode as _createVNode, resolveDirective as _resolveDirective } from "vue";
  3. var __rest = this && this.__rest || function (s, e) {
  4. var t = {};
  5. for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
  6. if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
  7. if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
  8. }
  9. return t;
  10. };
  11. import omit from '../_util/omit';
  12. import { tupleNum } from '../_util/type';
  13. import warning from '../_util/warning';
  14. import Base, { baseProps } from './Base';
  15. const TITLE_ELE_LIST = tupleNum(1, 2, 3, 4, 5);
  16. export const titleProps = () => _extends(_extends({}, omit(baseProps(), ['component', 'strong'])), {
  17. level: Number
  18. });
  19. const Title = (props, _ref) => {
  20. let {
  21. slots,
  22. attrs
  23. } = _ref;
  24. const {
  25. level = 1
  26. } = props,
  27. restProps = __rest(props, ["level"]);
  28. let component;
  29. if (TITLE_ELE_LIST.includes(level)) {
  30. component = `h${level}`;
  31. } else {
  32. warning(false, 'Typography', 'Title only accept `1 | 2 | 3 | 4 | 5` as `level` value.');
  33. component = 'h1';
  34. }
  35. const titleProps = _extends(_extends(_extends({}, restProps), {
  36. component
  37. }), attrs);
  38. return _createVNode(Base, titleProps, slots);
  39. };
  40. Title.displayName = 'ATypographyTitle';
  41. Title.inheritAttrs = false;
  42. Title.props = titleProps();
  43. export default Title;