Title.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
  2. import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
  3. var _excluded = ["level"];
  4. import { createVNode as _createVNode, resolveDirective as _resolveDirective } from "vue";
  5. import omit from '../_util/omit';
  6. import { tupleNum } from '../_util/type';
  7. import warning from '../_util/warning';
  8. import Base, { baseProps } from './Base';
  9. var TITLE_ELE_LIST = tupleNum(1, 2, 3, 4, 5);
  10. export var titleProps = function titleProps() {
  11. return _objectSpread(_objectSpread({}, omit(baseProps(), ['component', 'strong'])), {}, {
  12. level: Number
  13. });
  14. };
  15. var Title = function Title(props, _ref) {
  16. var slots = _ref.slots,
  17. attrs = _ref.attrs;
  18. var _props$level = props.level,
  19. level = _props$level === void 0 ? 1 : _props$level,
  20. restProps = _objectWithoutProperties(props, _excluded);
  21. var component;
  22. if (TITLE_ELE_LIST.indexOf(level) !== -1) {
  23. component = "h".concat(level);
  24. } else {
  25. warning(false, 'Typography', 'Title only accept `1 | 2 | 3 | 4 | 5` as `level` value.');
  26. component = 'h1';
  27. }
  28. var titleProps = _objectSpread(_objectSpread({}, restProps), {}, {
  29. component: component
  30. }, attrs);
  31. return _createVNode(Base, titleProps, slots);
  32. };
  33. Title.displayName = 'ATypographyTitle';
  34. Title.inheritAttrs = false;
  35. Title.props = titleProps();
  36. export default Title;