77042b5d42adb66fbb96dddce35ec8c6.json 55.5 KB
{"ast":null,"code":"import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/createSuper\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport copy from 'copy-to-clipboard';\nimport omit from 'omit.js';\nimport EditOutlined from '@ant-design/icons/EditOutlined';\nimport CheckOutlined from '@ant-design/icons/CheckOutlined';\nimport CopyOutlined from '@ant-design/icons/CopyOutlined';\nimport ResizeObserver from 'rc-resize-observer';\nimport { configConsumerProps, ConfigContext } from '../config-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport devWarning from '../_util/devWarning';\nimport TransButton from '../_util/transButton';\nimport raf from '../_util/raf';\nimport { isStyleSupport } from '../_util/styleChecker';\nimport Tooltip from '../tooltip';\nimport Typography from './Typography';\nimport Editable from './Editable';\nimport measure from './util';\nvar isLineClampSupport = isStyleSupport('webkitLineClamp');\nvar isTextOverflowSupport = isStyleSupport('textOverflow');\n\nfunction wrapperDecorations(_ref, content) {\n  var mark = _ref.mark,\n      code = _ref.code,\n      underline = _ref.underline,\n      del = _ref[\"delete\"],\n      strong = _ref.strong,\n      keyboard = _ref.keyboard;\n  var currentContent = content;\n\n  function wrap(needed, tag) {\n    if (!needed) return;\n    currentContent = /*#__PURE__*/React.createElement(tag, {}, currentContent);\n  }\n\n  wrap(strong, 'strong');\n  wrap(underline, 'u');\n  wrap(del, 'del');\n  wrap(code, 'code');\n  wrap(mark, 'mark');\n  wrap(keyboard, 'kbd');\n  return currentContent;\n}\n\nvar ELLIPSIS_STR = '...';\n\nvar Base = /*#__PURE__*/function (_React$Component) {\n  _inherits(Base, _React$Component);\n\n  var _super = _createSuper(Base);\n\n  function Base() {\n    var _this;\n\n    _classCallCheck(this, Base);\n\n    _this = _super.apply(this, arguments);\n    _this.contentRef = /*#__PURE__*/React.createRef();\n    _this.state = {\n      edit: false,\n      copied: false,\n      ellipsisText: '',\n      ellipsisContent: null,\n      isEllipsis: false,\n      expanded: false,\n      clientRendered: false\n    };\n\n    _this.getPrefixCls = function () {\n      var customizePrefixCls = _this.props.prefixCls;\n      var getPrefixCls = _this.context.getPrefixCls;\n      return getPrefixCls('typography', customizePrefixCls);\n    }; // =============== Expand ===============\n\n\n    _this.onExpandClick = function (e) {\n      var _this$getEllipsis = _this.getEllipsis(),\n          onExpand = _this$getEllipsis.onExpand;\n\n      _this.setState({\n        expanded: true\n      });\n\n      if (onExpand) {\n        onExpand(e);\n      }\n    }; // ================ Edit ================\n\n\n    _this.onEditClick = function () {\n      _this.triggerEdit(true);\n    };\n\n    _this.onEditChange = function (value) {\n      var _this$getEditable = _this.getEditable(),\n          onChange = _this$getEditable.onChange;\n\n      if (onChange) {\n        onChange(value);\n      }\n\n      _this.triggerEdit(false);\n    };\n\n    _this.onEditCancel = function () {\n      _this.triggerEdit(false);\n    }; // ================ Copy ================\n\n\n    _this.onCopyClick = function (e) {\n      e.preventDefault();\n      var _this$props = _this.props,\n          children = _this$props.children,\n          copyable = _this$props.copyable;\n\n      var copyConfig = _extends({}, _typeof(copyable) === 'object' ? copyable : null);\n\n      if (copyConfig.text === undefined) {\n        copyConfig.text = String(children);\n      }\n\n      copy(copyConfig.text || '');\n\n      _this.setState({\n        copied: true\n      }, function () {\n        if (copyConfig.onCopy) {\n          copyConfig.onCopy();\n        }\n\n        _this.copyId = window.setTimeout(function () {\n          _this.setState({\n            copied: false\n          });\n        }, 3000);\n      });\n    };\n\n    _this.setEditRef = function (node) {\n      _this.editIcon = node;\n    };\n\n    _this.triggerEdit = function (edit) {\n      var _this$getEditable2 = _this.getEditable(),\n          onStart = _this$getEditable2.onStart;\n\n      if (edit && onStart) {\n        onStart();\n      }\n\n      _this.setState({\n        edit: edit\n      }, function () {\n        if (!edit && _this.editIcon) {\n          _this.editIcon.focus();\n        }\n      });\n    }; // ============== Ellipsis ==============\n\n\n    _this.resizeOnNextFrame = function () {\n      raf.cancel(_this.rafId);\n      _this.rafId = raf(function () {\n        // Do not bind `syncEllipsis`. It need for test usage on prototype\n        _this.syncEllipsis();\n      });\n    };\n\n    return _this;\n  }\n\n  _createClass(Base, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.setState({\n        clientRendered: true\n      });\n      this.resizeOnNextFrame();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var children = this.props.children;\n      var ellipsis = this.getEllipsis();\n      var prevEllipsis = this.getEllipsis(prevProps);\n\n      if (children !== prevProps.children || ellipsis.rows !== prevEllipsis.rows) {\n        this.resizeOnNextFrame();\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      window.clearTimeout(this.copyId);\n      raf.cancel(this.rafId);\n    }\n  }, {\n    key: \"getEditable\",\n    value: function getEditable(props) {\n      var edit = this.state.edit;\n\n      var _ref2 = props || this.props,\n          editable = _ref2.editable;\n\n      if (!editable) return {\n        editing: edit\n      };\n      return _extends({\n        editing: edit\n      }, _typeof(editable) === 'object' ? editable : null);\n    }\n  }, {\n    key: \"getEllipsis\",\n    value: function getEllipsis(props) {\n      var _ref3 = props || this.props,\n          ellipsis = _ref3.ellipsis;\n\n      if (!ellipsis) return {};\n      return _extends({\n        rows: 1,\n        expandable: false\n      }, _typeof(ellipsis) === 'object' ? ellipsis : null);\n    }\n  }, {\n    key: \"canUseCSSEllipsis\",\n    value: function canUseCSSEllipsis() {\n      var clientRendered = this.state.clientRendered;\n      var _this$props2 = this.props,\n          editable = _this$props2.editable,\n          copyable = _this$props2.copyable;\n\n      var _this$getEllipsis2 = this.getEllipsis(),\n          rows = _this$getEllipsis2.rows,\n          expandable = _this$getEllipsis2.expandable,\n          suffix = _this$getEllipsis2.suffix,\n          onEllipsis = _this$getEllipsis2.onEllipsis;\n\n      if (suffix) return false; // Can't use css ellipsis since we need to provide the place for button\n\n      if (editable || copyable || expandable || !clientRendered || onEllipsis) {\n        return false;\n      }\n\n      if (rows === 1) {\n        return isTextOverflowSupport;\n      }\n\n      return isLineClampSupport;\n    }\n  }, {\n    key: \"syncEllipsis\",\n    value: function syncEllipsis() {\n      var _this$state = this.state,\n          ellipsisText = _this$state.ellipsisText,\n          isEllipsis = _this$state.isEllipsis,\n          expanded = _this$state.expanded;\n\n      var _this$getEllipsis3 = this.getEllipsis(),\n          rows = _this$getEllipsis3.rows,\n          suffix = _this$getEllipsis3.suffix,\n          onEllipsis = _this$getEllipsis3.onEllipsis;\n\n      var children = this.props.children;\n      if (!rows || rows < 0 || !this.contentRef.current || expanded) return; // Do not measure if css already support ellipsis\n\n      if (this.canUseCSSEllipsis()) return;\n      devWarning(toArray(children).every(function (child) {\n        return typeof child === 'string';\n      }), 'Typography', '`ellipsis` should use string as children only.');\n\n      var _measure = measure(this.contentRef.current, {\n        rows: rows,\n        suffix: suffix\n      }, children, this.renderOperations(true), ELLIPSIS_STR),\n          content = _measure.content,\n          text = _measure.text,\n          ellipsis = _measure.ellipsis;\n\n      if (ellipsisText !== text || isEllipsis !== ellipsis) {\n        this.setState({\n          ellipsisText: text,\n          ellipsisContent: content,\n          isEllipsis: ellipsis\n        });\n\n        if (isEllipsis !== ellipsis && onEllipsis) {\n          onEllipsis(ellipsis);\n        }\n      }\n    }\n  }, {\n    key: \"renderExpand\",\n    value: function renderExpand(forceRender) {\n      var _this$getEllipsis4 = this.getEllipsis(),\n          expandable = _this$getEllipsis4.expandable,\n          symbol = _this$getEllipsis4.symbol;\n\n      var _this$state2 = this.state,\n          expanded = _this$state2.expanded,\n          isEllipsis = _this$state2.isEllipsis;\n      if (!expandable) return null; // force render expand icon for measure usage or it will cause dead loop\n\n      if (!forceRender && (expanded || !isEllipsis)) return null;\n      var expandContent;\n\n      if (symbol) {\n        expandContent = symbol;\n      } else {\n        expandContent = this.expandStr;\n      }\n\n      return /*#__PURE__*/React.createElement(\"a\", {\n        key: \"expand\",\n        className: \"\".concat(this.getPrefixCls(), \"-expand\"),\n        onClick: this.onExpandClick,\n        \"aria-label\": this.expandStr\n      }, expandContent);\n    }\n  }, {\n    key: \"renderEdit\",\n    value: function renderEdit() {\n      var editable = this.props.editable;\n      if (!editable) return;\n      var icon = editable.icon,\n          tooltip = editable.tooltip;\n      var title = toArray(tooltip)[0] || this.editStr;\n      var ariaLabel = typeof title === 'string' ? title : '';\n      return /*#__PURE__*/React.createElement(Tooltip, {\n        key: \"edit\",\n        title: tooltip === false ? '' : title\n      }, /*#__PURE__*/React.createElement(TransButton, {\n        ref: this.setEditRef,\n        className: \"\".concat(this.getPrefixCls(), \"-edit\"),\n        onClick: this.onEditClick,\n        \"aria-label\": ariaLabel\n      }, icon || /*#__PURE__*/React.createElement(EditOutlined, {\n        role: \"button\"\n      })));\n    }\n  }, {\n    key: \"renderCopy\",\n    value: function renderCopy() {\n      var copied = this.state.copied;\n      var copyable = this.props.copyable;\n      if (!copyable) return;\n      var prefixCls = this.getPrefixCls();\n      var tooltips = copyable.tooltips;\n      var tooltipNodes = toArray(tooltips);\n\n      if (tooltipNodes.length === 0) {\n        tooltipNodes = [this.copyStr, this.copiedStr];\n      }\n\n      var title = copied ? tooltipNodes[1] : tooltipNodes[0];\n      var ariaLabel = typeof title === 'string' ? title : '';\n      var icons = toArray(copyable.icon);\n      return /*#__PURE__*/React.createElement(Tooltip, {\n        key: \"copy\",\n        title: tooltips === false ? '' : title\n      }, /*#__PURE__*/React.createElement(TransButton, {\n        className: classNames(\"\".concat(prefixCls, \"-copy\"), copied && \"\".concat(prefixCls, \"-copy-success\")),\n        onClick: this.onCopyClick,\n        \"aria-label\": ariaLabel\n      }, copied ? icons[1] || /*#__PURE__*/React.createElement(CheckOutlined, null) : icons[0] || /*#__PURE__*/React.createElement(CopyOutlined, null)));\n    }\n  }, {\n    key: \"renderEditInput\",\n    value: function renderEditInput() {\n      var _this$props3 = this.props,\n          children = _this$props3.children,\n          className = _this$props3.className,\n          style = _this$props3.style;\n      var direction = this.context.direction;\n\n      var _this$getEditable3 = this.getEditable(),\n          maxLength = _this$getEditable3.maxLength,\n          autoSize = _this$getEditable3.autoSize;\n\n      return /*#__PURE__*/React.createElement(Editable, {\n        value: typeof children === 'string' ? children : '',\n        onSave: this.onEditChange,\n        onCancel: this.onEditCancel,\n        prefixCls: this.getPrefixCls(),\n        className: className,\n        style: style,\n        direction: direction,\n        maxLength: maxLength,\n        autoSize: autoSize\n      });\n    }\n  }, {\n    key: \"renderOperations\",\n    value: function renderOperations(forceRenderExpanded) {\n      return [this.renderExpand(forceRenderExpanded), this.renderEdit(), this.renderCopy()].filter(function (node) {\n        return node;\n      });\n    }\n  }, {\n    key: \"renderContent\",\n    value: function renderContent() {\n      var _this2 = this;\n\n      var _this$state3 = this.state,\n          ellipsisContent = _this$state3.ellipsisContent,\n          isEllipsis = _this$state3.isEllipsis,\n          expanded = _this$state3.expanded;\n\n      var _a = this.props,\n          component = _a.component,\n          children = _a.children,\n          className = _a.className,\n          type = _a.type,\n          disabled = _a.disabled,\n          style = _a.style,\n          restProps = __rest(_a, [\"component\", \"children\", \"className\", \"type\", \"disabled\", \"style\"]);\n\n      var direction = this.context.direction;\n\n      var _this$getEllipsis5 = this.getEllipsis(),\n          rows = _this$getEllipsis5.rows,\n          suffix = _this$getEllipsis5.suffix;\n\n      var prefixCls = this.getPrefixCls();\n      var textProps = omit(restProps, ['prefixCls', 'editable', 'copyable', 'ellipsis', 'mark', 'code', 'delete', 'underline', 'strong', 'keyboard'].concat(_toConsumableArray(configConsumerProps)));\n      var cssEllipsis = this.canUseCSSEllipsis();\n      var cssTextOverflow = rows === 1 && cssEllipsis;\n      var cssLineClamp = rows && rows > 1 && cssEllipsis;\n      var textNode = children; // Only use js ellipsis when css ellipsis not support\n\n      if (rows && isEllipsis && !expanded && !cssEllipsis) {\n        var title = restProps.title;\n        var restContent = title || '';\n\n        if (!title && (typeof children === 'string' || typeof children === 'number')) {\n          restContent = String(children);\n        } // show rest content as title on symbol\n\n\n        restContent = restContent === null || restContent === void 0 ? void 0 : restContent.slice(String(ellipsisContent || '').length); // We move full content to outer element to avoid repeat read the content by accessibility\n\n        textNode = /*#__PURE__*/React.createElement(React.Fragment, null, ellipsisContent, /*#__PURE__*/React.createElement(\"span\", {\n          title: restContent,\n          \"aria-hidden\": \"true\"\n        }, ELLIPSIS_STR), suffix);\n      } else {\n        textNode = /*#__PURE__*/React.createElement(React.Fragment, null, children, suffix);\n      }\n\n      textNode = wrapperDecorations(this.props, textNode);\n      return /*#__PURE__*/React.createElement(LocaleReceiver, {\n        componentName: \"Text\"\n      }, function (_ref4) {\n        var _classNames;\n\n        var edit = _ref4.edit,\n            copyStr = _ref4.copy,\n            copied = _ref4.copied,\n            expand = _ref4.expand;\n        _this2.editStr = edit;\n        _this2.copyStr = copyStr;\n        _this2.copiedStr = copied;\n        _this2.expandStr = expand;\n        return /*#__PURE__*/React.createElement(ResizeObserver, {\n          onResize: _this2.resizeOnNextFrame,\n          disabled: !rows\n        }, /*#__PURE__*/React.createElement(Typography, _extends({\n          className: classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(type), type), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ellipsis\"), rows), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ellipsis-single-line\"), cssTextOverflow), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ellipsis-multiple-line\"), cssLineClamp), _classNames), className),\n          style: _extends(_extends({}, style), {\n            WebkitLineClamp: cssLineClamp ? rows : null\n          }),\n          component: component,\n          ref: _this2.contentRef,\n          direction: direction\n        }, textProps), textNode, _this2.renderOperations()));\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$getEditable4 = this.getEditable(),\n          editing = _this$getEditable4.editing;\n\n      if (editing) {\n        return this.renderEditInput();\n      }\n\n      return this.renderContent();\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(nextProps) {\n      var children = nextProps.children,\n          editable = nextProps.editable;\n      devWarning(!editable || typeof children === 'string', 'Typography', 'When `editable` is enabled, the `children` should use string.');\n      return {};\n    }\n  }]);\n\n  return Base;\n}(React.Component);\n\nBase.contextType = ConfigContext;\nBase.defaultProps = {\n  children: ''\n};\nexport default Base;","map":{"version":3,"sources":["C:/Users/kkwan_000/Desktop/git/2017110269/minsung/node_modules/antd/es/typography/Base.js"],"names":["_defineProperty","_toConsumableArray","_typeof","_extends","_classCallCheck","_createClass","_inherits","_createSuper","__rest","s","e","t","p","Object","prototype","hasOwnProperty","call","indexOf","getOwnPropertySymbols","i","length","propertyIsEnumerable","React","classNames","toArray","copy","omit","EditOutlined","CheckOutlined","CopyOutlined","ResizeObserver","configConsumerProps","ConfigContext","LocaleReceiver","devWarning","TransButton","raf","isStyleSupport","Tooltip","Typography","Editable","measure","isLineClampSupport","isTextOverflowSupport","wrapperDecorations","_ref","content","mark","code","underline","del","strong","keyboard","currentContent","wrap","needed","tag","createElement","ELLIPSIS_STR","Base","_React$Component","_super","_this","apply","arguments","contentRef","createRef","state","edit","copied","ellipsisText","ellipsisContent","isEllipsis","expanded","clientRendered","getPrefixCls","customizePrefixCls","props","prefixCls","context","onExpandClick","_this$getEllipsis","getEllipsis","onExpand","setState","onEditClick","triggerEdit","onEditChange","value","_this$getEditable","getEditable","onChange","onEditCancel","onCopyClick","preventDefault","_this$props","children","copyable","copyConfig","text","undefined","String","onCopy","copyId","window","setTimeout","setEditRef","node","editIcon","_this$getEditable2","onStart","focus","resizeOnNextFrame","cancel","rafId","syncEllipsis","key","componentDidMount","componentDidUpdate","prevProps","ellipsis","prevEllipsis","rows","componentWillUnmount","clearTimeout","_ref2","editable","editing","_ref3","expandable","canUseCSSEllipsis","_this$props2","_this$getEllipsis2","suffix","onEllipsis","_this$state","_this$getEllipsis3","current","every","child","_measure","renderOperations","renderExpand","forceRender","_this$getEllipsis4","symbol","_this$state2","expandContent","expandStr","className","concat","onClick","renderEdit","icon","tooltip","title","editStr","ariaLabel","ref","role","renderCopy","tooltips","tooltipNodes","copyStr","copiedStr","icons","renderEditInput","_this$props3","style","direction","_this$getEditable3","maxLength","autoSize","onSave","onCancel","forceRenderExpanded","filter","renderContent","_this2","_this$state3","_a","component","type","disabled","restProps","_this$getEllipsis5","textProps","cssEllipsis","cssTextOverflow","cssLineClamp","textNode","restContent","slice","Fragment","componentName","_ref4","_classNames","expand","onResize","WebkitLineClamp","render","_this$getEditable4","getDerivedStateFromProps","nextProps","Component","contextType","defaultProps"],"mappings":"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","sourcesContent":["import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/typeof\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _inherits from \"@babel/runtime/helpers/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/createSuper\";\n\nvar __rest = this && this.__rest || function (s, e) {\n  var t = {};\n\n  for (var p in s) {\n    if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n  }\n\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n    if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n  }\n  return t;\n};\n\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport toArray from \"rc-util/es/Children/toArray\";\nimport copy from 'copy-to-clipboard';\nimport omit from 'omit.js';\nimport EditOutlined from '@ant-design/icons/EditOutlined';\nimport CheckOutlined from '@ant-design/icons/CheckOutlined';\nimport CopyOutlined from '@ant-design/icons/CopyOutlined';\nimport ResizeObserver from 'rc-resize-observer';\nimport { configConsumerProps, ConfigContext } from '../config-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport devWarning from '../_util/devWarning';\nimport TransButton from '../_util/transButton';\nimport raf from '../_util/raf';\nimport { isStyleSupport } from '../_util/styleChecker';\nimport Tooltip from '../tooltip';\nimport Typography from './Typography';\nimport Editable from './Editable';\nimport measure from './util';\nvar isLineClampSupport = isStyleSupport('webkitLineClamp');\nvar isTextOverflowSupport = isStyleSupport('textOverflow');\n\nfunction wrapperDecorations(_ref, content) {\n  var mark = _ref.mark,\n      code = _ref.code,\n      underline = _ref.underline,\n      del = _ref[\"delete\"],\n      strong = _ref.strong,\n      keyboard = _ref.keyboard;\n  var currentContent = content;\n\n  function wrap(needed, tag) {\n    if (!needed) return;\n    currentContent = /*#__PURE__*/React.createElement(tag, {}, currentContent);\n  }\n\n  wrap(strong, 'strong');\n  wrap(underline, 'u');\n  wrap(del, 'del');\n  wrap(code, 'code');\n  wrap(mark, 'mark');\n  wrap(keyboard, 'kbd');\n  return currentContent;\n}\n\nvar ELLIPSIS_STR = '...';\n\nvar Base = /*#__PURE__*/function (_React$Component) {\n  _inherits(Base, _React$Component);\n\n  var _super = _createSuper(Base);\n\n  function Base() {\n    var _this;\n\n    _classCallCheck(this, Base);\n\n    _this = _super.apply(this, arguments);\n    _this.contentRef = /*#__PURE__*/React.createRef();\n    _this.state = {\n      edit: false,\n      copied: false,\n      ellipsisText: '',\n      ellipsisContent: null,\n      isEllipsis: false,\n      expanded: false,\n      clientRendered: false\n    };\n\n    _this.getPrefixCls = function () {\n      var customizePrefixCls = _this.props.prefixCls;\n      var getPrefixCls = _this.context.getPrefixCls;\n      return getPrefixCls('typography', customizePrefixCls);\n    }; // =============== Expand ===============\n\n\n    _this.onExpandClick = function (e) {\n      var _this$getEllipsis = _this.getEllipsis(),\n          onExpand = _this$getEllipsis.onExpand;\n\n      _this.setState({\n        expanded: true\n      });\n\n      if (onExpand) {\n        onExpand(e);\n      }\n    }; // ================ Edit ================\n\n\n    _this.onEditClick = function () {\n      _this.triggerEdit(true);\n    };\n\n    _this.onEditChange = function (value) {\n      var _this$getEditable = _this.getEditable(),\n          onChange = _this$getEditable.onChange;\n\n      if (onChange) {\n        onChange(value);\n      }\n\n      _this.triggerEdit(false);\n    };\n\n    _this.onEditCancel = function () {\n      _this.triggerEdit(false);\n    }; // ================ Copy ================\n\n\n    _this.onCopyClick = function (e) {\n      e.preventDefault();\n      var _this$props = _this.props,\n          children = _this$props.children,\n          copyable = _this$props.copyable;\n\n      var copyConfig = _extends({}, _typeof(copyable) === 'object' ? copyable : null);\n\n      if (copyConfig.text === undefined) {\n        copyConfig.text = String(children);\n      }\n\n      copy(copyConfig.text || '');\n\n      _this.setState({\n        copied: true\n      }, function () {\n        if (copyConfig.onCopy) {\n          copyConfig.onCopy();\n        }\n\n        _this.copyId = window.setTimeout(function () {\n          _this.setState({\n            copied: false\n          });\n        }, 3000);\n      });\n    };\n\n    _this.setEditRef = function (node) {\n      _this.editIcon = node;\n    };\n\n    _this.triggerEdit = function (edit) {\n      var _this$getEditable2 = _this.getEditable(),\n          onStart = _this$getEditable2.onStart;\n\n      if (edit && onStart) {\n        onStart();\n      }\n\n      _this.setState({\n        edit: edit\n      }, function () {\n        if (!edit && _this.editIcon) {\n          _this.editIcon.focus();\n        }\n      });\n    }; // ============== Ellipsis ==============\n\n\n    _this.resizeOnNextFrame = function () {\n      raf.cancel(_this.rafId);\n      _this.rafId = raf(function () {\n        // Do not bind `syncEllipsis`. It need for test usage on prototype\n        _this.syncEllipsis();\n      });\n    };\n\n    return _this;\n  }\n\n  _createClass(Base, [{\n    key: \"componentDidMount\",\n    value: function componentDidMount() {\n      this.setState({\n        clientRendered: true\n      });\n      this.resizeOnNextFrame();\n    }\n  }, {\n    key: \"componentDidUpdate\",\n    value: function componentDidUpdate(prevProps) {\n      var children = this.props.children;\n      var ellipsis = this.getEllipsis();\n      var prevEllipsis = this.getEllipsis(prevProps);\n\n      if (children !== prevProps.children || ellipsis.rows !== prevEllipsis.rows) {\n        this.resizeOnNextFrame();\n      }\n    }\n  }, {\n    key: \"componentWillUnmount\",\n    value: function componentWillUnmount() {\n      window.clearTimeout(this.copyId);\n      raf.cancel(this.rafId);\n    }\n  }, {\n    key: \"getEditable\",\n    value: function getEditable(props) {\n      var edit = this.state.edit;\n\n      var _ref2 = props || this.props,\n          editable = _ref2.editable;\n\n      if (!editable) return {\n        editing: edit\n      };\n      return _extends({\n        editing: edit\n      }, _typeof(editable) === 'object' ? editable : null);\n    }\n  }, {\n    key: \"getEllipsis\",\n    value: function getEllipsis(props) {\n      var _ref3 = props || this.props,\n          ellipsis = _ref3.ellipsis;\n\n      if (!ellipsis) return {};\n      return _extends({\n        rows: 1,\n        expandable: false\n      }, _typeof(ellipsis) === 'object' ? ellipsis : null);\n    }\n  }, {\n    key: \"canUseCSSEllipsis\",\n    value: function canUseCSSEllipsis() {\n      var clientRendered = this.state.clientRendered;\n      var _this$props2 = this.props,\n          editable = _this$props2.editable,\n          copyable = _this$props2.copyable;\n\n      var _this$getEllipsis2 = this.getEllipsis(),\n          rows = _this$getEllipsis2.rows,\n          expandable = _this$getEllipsis2.expandable,\n          suffix = _this$getEllipsis2.suffix,\n          onEllipsis = _this$getEllipsis2.onEllipsis;\n\n      if (suffix) return false; // Can't use css ellipsis since we need to provide the place for button\n\n      if (editable || copyable || expandable || !clientRendered || onEllipsis) {\n        return false;\n      }\n\n      if (rows === 1) {\n        return isTextOverflowSupport;\n      }\n\n      return isLineClampSupport;\n    }\n  }, {\n    key: \"syncEllipsis\",\n    value: function syncEllipsis() {\n      var _this$state = this.state,\n          ellipsisText = _this$state.ellipsisText,\n          isEllipsis = _this$state.isEllipsis,\n          expanded = _this$state.expanded;\n\n      var _this$getEllipsis3 = this.getEllipsis(),\n          rows = _this$getEllipsis3.rows,\n          suffix = _this$getEllipsis3.suffix,\n          onEllipsis = _this$getEllipsis3.onEllipsis;\n\n      var children = this.props.children;\n      if (!rows || rows < 0 || !this.contentRef.current || expanded) return; // Do not measure if css already support ellipsis\n\n      if (this.canUseCSSEllipsis()) return;\n      devWarning(toArray(children).every(function (child) {\n        return typeof child === 'string';\n      }), 'Typography', '`ellipsis` should use string as children only.');\n\n      var _measure = measure(this.contentRef.current, {\n        rows: rows,\n        suffix: suffix\n      }, children, this.renderOperations(true), ELLIPSIS_STR),\n          content = _measure.content,\n          text = _measure.text,\n          ellipsis = _measure.ellipsis;\n\n      if (ellipsisText !== text || isEllipsis !== ellipsis) {\n        this.setState({\n          ellipsisText: text,\n          ellipsisContent: content,\n          isEllipsis: ellipsis\n        });\n\n        if (isEllipsis !== ellipsis && onEllipsis) {\n          onEllipsis(ellipsis);\n        }\n      }\n    }\n  }, {\n    key: \"renderExpand\",\n    value: function renderExpand(forceRender) {\n      var _this$getEllipsis4 = this.getEllipsis(),\n          expandable = _this$getEllipsis4.expandable,\n          symbol = _this$getEllipsis4.symbol;\n\n      var _this$state2 = this.state,\n          expanded = _this$state2.expanded,\n          isEllipsis = _this$state2.isEllipsis;\n      if (!expandable) return null; // force render expand icon for measure usage or it will cause dead loop\n\n      if (!forceRender && (expanded || !isEllipsis)) return null;\n      var expandContent;\n\n      if (symbol) {\n        expandContent = symbol;\n      } else {\n        expandContent = this.expandStr;\n      }\n\n      return /*#__PURE__*/React.createElement(\"a\", {\n        key: \"expand\",\n        className: \"\".concat(this.getPrefixCls(), \"-expand\"),\n        onClick: this.onExpandClick,\n        \"aria-label\": this.expandStr\n      }, expandContent);\n    }\n  }, {\n    key: \"renderEdit\",\n    value: function renderEdit() {\n      var editable = this.props.editable;\n      if (!editable) return;\n      var icon = editable.icon,\n          tooltip = editable.tooltip;\n      var title = toArray(tooltip)[0] || this.editStr;\n      var ariaLabel = typeof title === 'string' ? title : '';\n      return /*#__PURE__*/React.createElement(Tooltip, {\n        key: \"edit\",\n        title: tooltip === false ? '' : title\n      }, /*#__PURE__*/React.createElement(TransButton, {\n        ref: this.setEditRef,\n        className: \"\".concat(this.getPrefixCls(), \"-edit\"),\n        onClick: this.onEditClick,\n        \"aria-label\": ariaLabel\n      }, icon || /*#__PURE__*/React.createElement(EditOutlined, {\n        role: \"button\"\n      })));\n    }\n  }, {\n    key: \"renderCopy\",\n    value: function renderCopy() {\n      var copied = this.state.copied;\n      var copyable = this.props.copyable;\n      if (!copyable) return;\n      var prefixCls = this.getPrefixCls();\n      var tooltips = copyable.tooltips;\n      var tooltipNodes = toArray(tooltips);\n\n      if (tooltipNodes.length === 0) {\n        tooltipNodes = [this.copyStr, this.copiedStr];\n      }\n\n      var title = copied ? tooltipNodes[1] : tooltipNodes[0];\n      var ariaLabel = typeof title === 'string' ? title : '';\n      var icons = toArray(copyable.icon);\n      return /*#__PURE__*/React.createElement(Tooltip, {\n        key: \"copy\",\n        title: tooltips === false ? '' : title\n      }, /*#__PURE__*/React.createElement(TransButton, {\n        className: classNames(\"\".concat(prefixCls, \"-copy\"), copied && \"\".concat(prefixCls, \"-copy-success\")),\n        onClick: this.onCopyClick,\n        \"aria-label\": ariaLabel\n      }, copied ? icons[1] || /*#__PURE__*/React.createElement(CheckOutlined, null) : icons[0] || /*#__PURE__*/React.createElement(CopyOutlined, null)));\n    }\n  }, {\n    key: \"renderEditInput\",\n    value: function renderEditInput() {\n      var _this$props3 = this.props,\n          children = _this$props3.children,\n          className = _this$props3.className,\n          style = _this$props3.style;\n      var direction = this.context.direction;\n\n      var _this$getEditable3 = this.getEditable(),\n          maxLength = _this$getEditable3.maxLength,\n          autoSize = _this$getEditable3.autoSize;\n\n      return /*#__PURE__*/React.createElement(Editable, {\n        value: typeof children === 'string' ? children : '',\n        onSave: this.onEditChange,\n        onCancel: this.onEditCancel,\n        prefixCls: this.getPrefixCls(),\n        className: className,\n        style: style,\n        direction: direction,\n        maxLength: maxLength,\n        autoSize: autoSize\n      });\n    }\n  }, {\n    key: \"renderOperations\",\n    value: function renderOperations(forceRenderExpanded) {\n      return [this.renderExpand(forceRenderExpanded), this.renderEdit(), this.renderCopy()].filter(function (node) {\n        return node;\n      });\n    }\n  }, {\n    key: \"renderContent\",\n    value: function renderContent() {\n      var _this2 = this;\n\n      var _this$state3 = this.state,\n          ellipsisContent = _this$state3.ellipsisContent,\n          isEllipsis = _this$state3.isEllipsis,\n          expanded = _this$state3.expanded;\n\n      var _a = this.props,\n          component = _a.component,\n          children = _a.children,\n          className = _a.className,\n          type = _a.type,\n          disabled = _a.disabled,\n          style = _a.style,\n          restProps = __rest(_a, [\"component\", \"children\", \"className\", \"type\", \"disabled\", \"style\"]);\n\n      var direction = this.context.direction;\n\n      var _this$getEllipsis5 = this.getEllipsis(),\n          rows = _this$getEllipsis5.rows,\n          suffix = _this$getEllipsis5.suffix;\n\n      var prefixCls = this.getPrefixCls();\n      var textProps = omit(restProps, ['prefixCls', 'editable', 'copyable', 'ellipsis', 'mark', 'code', 'delete', 'underline', 'strong', 'keyboard'].concat(_toConsumableArray(configConsumerProps)));\n      var cssEllipsis = this.canUseCSSEllipsis();\n      var cssTextOverflow = rows === 1 && cssEllipsis;\n      var cssLineClamp = rows && rows > 1 && cssEllipsis;\n      var textNode = children; // Only use js ellipsis when css ellipsis not support\n\n      if (rows && isEllipsis && !expanded && !cssEllipsis) {\n        var title = restProps.title;\n        var restContent = title || '';\n\n        if (!title && (typeof children === 'string' || typeof children === 'number')) {\n          restContent = String(children);\n        } // show rest content as title on symbol\n\n\n        restContent = restContent === null || restContent === void 0 ? void 0 : restContent.slice(String(ellipsisContent || '').length); // We move full content to outer element to avoid repeat read the content by accessibility\n\n        textNode = /*#__PURE__*/React.createElement(React.Fragment, null, ellipsisContent, /*#__PURE__*/React.createElement(\"span\", {\n          title: restContent,\n          \"aria-hidden\": \"true\"\n        }, ELLIPSIS_STR), suffix);\n      } else {\n        textNode = /*#__PURE__*/React.createElement(React.Fragment, null, children, suffix);\n      }\n\n      textNode = wrapperDecorations(this.props, textNode);\n      return /*#__PURE__*/React.createElement(LocaleReceiver, {\n        componentName: \"Text\"\n      }, function (_ref4) {\n        var _classNames;\n\n        var edit = _ref4.edit,\n            copyStr = _ref4.copy,\n            copied = _ref4.copied,\n            expand = _ref4.expand;\n        _this2.editStr = edit;\n        _this2.copyStr = copyStr;\n        _this2.copiedStr = copied;\n        _this2.expandStr = expand;\n        return /*#__PURE__*/React.createElement(ResizeObserver, {\n          onResize: _this2.resizeOnNextFrame,\n          disabled: !rows\n        }, /*#__PURE__*/React.createElement(Typography, _extends({\n          className: classNames((_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(type), type), _defineProperty(_classNames, \"\".concat(prefixCls, \"-disabled\"), disabled), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ellipsis\"), rows), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ellipsis-single-line\"), cssTextOverflow), _defineProperty(_classNames, \"\".concat(prefixCls, \"-ellipsis-multiple-line\"), cssLineClamp), _classNames), className),\n          style: _extends(_extends({}, style), {\n            WebkitLineClamp: cssLineClamp ? rows : null\n          }),\n          component: component,\n          ref: _this2.contentRef,\n          direction: direction\n        }, textProps), textNode, _this2.renderOperations()));\n      });\n    }\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this$getEditable4 = this.getEditable(),\n          editing = _this$getEditable4.editing;\n\n      if (editing) {\n        return this.renderEditInput();\n      }\n\n      return this.renderContent();\n    }\n  }], [{\n    key: \"getDerivedStateFromProps\",\n    value: function getDerivedStateFromProps(nextProps) {\n      var children = nextProps.children,\n          editable = nextProps.editable;\n      devWarning(!editable || typeof children === 'string', 'Typography', 'When `editable` is enabled, the `children` should use string.');\n      return {};\n    }\n  }]);\n\n  return Base;\n}(React.Component);\n\nBase.contextType = ConfigContext;\nBase.defaultProps = {\n  children: ''\n};\nexport default Base;"]},"metadata":{},"sourceType":"module"}