UNPKG

@alifd/meet-react

Version:

Fusion Mobile React UI System Component

147 lines (146 loc) 6.94 kB
"use strict"; exports.__esModule = true; exports.default = void 0; var _babelRuntimeJsxStyleTransform = require("@alifd/babel-runtime-jsx-style-transform"); var _tslib = require("tslib"); var _react = _interopRequireWildcard(require("react")); var _classnames = _interopRequireDefault(require("classnames")); var _image = _interopRequireDefault(require("./image")); var _link = _interopRequireDefault(require("./link")); var _video = _interopRequireDefault(require("./video")); var _util = require("./util"); var _utils = require("../utils"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); } function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } var ExternalNode = function (props) { var item = props.item, className = props.className, onImageClick = props.onImageClick, onImgError = props.onImgError, onVideoLoad = props.onVideoLoad, onVideoPlay = props.onVideoPlay, errorImage = props.errorImage, style = props.style, lazyLoad = props.lazyLoad; var name = item.name, attrs = item.attrs, src = item.src, text = item.text, i = item.i; var _a = attrs || {}, _a$id = _a.id, id = _a$id === void 0 ? '' : _a$id, href = _a.href, itemClass = _a.class, restAttrs = (0, _tslib.__rest)(_a, ["id", "href", "class"]); if (text) { return /*#__PURE__*/(0, _react.createElement)("text", { className: "_text" }, text); } switch (name) { case 'a': return /*#__PURE__*/(0, _react.createElement)(_link.default, { className: (0, _classnames.default)(itemClass, className), hoverClass: "_hover", href: href, style: (0, _babelRuntimeJsxStyleTransform.rpx2vw4style)(style) }, /*#__PURE__*/(0, _react.createElement)(ExternalNode, { item: Object.assign({ name: 'div' }, item) })); case 'br': return /*#__PURE__*/(0, _react.createElement)("text", null, "\n "); case 'img': case 'image': return /*#__PURE__*/(0, _react.createElement)(_image.default, _extends({}, restAttrs, { className: (0, _classnames.default)(className, itemClass), errorImage: errorImage, imgIndex: i, onClick: function onClick() { if (!item.a) { onImageClick(i); } }, style: (0, _babelRuntimeJsxStyleTransform.rpx2vw4style)(style), onError: onImgError, lazyLoad: lazyLoad })); case 'video': return /*#__PURE__*/(0, _react.createElement)(_video.default, _extends({}, restAttrs, { id: id, className: (0, _classnames.default)('_video', itemClass, className), src: Array.isArray(src) ? src.join('') : '', style: (0, _babelRuntimeJsxStyleTransform.rpx2vw4style)(Object.assign(Object.assign({}, style), _utils.isStrictMiniApp ? { display: 'grid' } : null)), onLoad: onVideoLoad, onPlay: onVideoPlay })); default: return /*#__PURE__*/(0, _react.createElement)("rich-text", { id: id, style: (0, _babelRuntimeJsxStyleTransform.rpx2vw4style)(Object.assign({ display: 'inline' }, style)), nodes: [item] }); } }; var RichTextNode = /*#__PURE__*/function (_Component) { _inheritsLoose(RichTextNode, _Component); function RichTextNode() { return _Component.apply(this, arguments) || this; } var _proto = RichTextNode.prototype; _proto.render = function render() { var _a = this.props, nodes = _a.nodes, otherProps = (0, _tslib.__rest)(_a, ["nodes"]); return nodes.map(function (item, index) { var _item$attrs = item.attrs, attrs = _item$attrs === void 0 ? {} : _item$attrs; var _attrs$style = attrs.style, style = _attrs$style === void 0 ? '' : _attrs$style, _attrs$href = attrs.href, href = _attrs$href === void 0 ? '' : _attrs$href, nodeClassName = attrs.class, otherAttrs = (0, _tslib.__rest)(attrs, ["style", "href", "class"]); if (item.name === 'a') { return /*#__PURE__*/(0, _react.createElement)(_link.default, _extends({ key: index }, otherAttrs, otherProps, { className: (0, _classnames.default)("_" + item.name, nodeClassName), style: (0, _babelRuntimeJsxStyleTransform.rpx2vw4style)((0, _util.convertStyle)(style)), href: href }), /*#__PURE__*/(0, _react.createElement)(RichTextNode, _extends({ nodes: item.children }, otherProps))); } if (item.children) { return /*#__PURE__*/(0, _react.createElement)("view", _extends({ key: index }, otherAttrs, { className: (0, _classnames.default)("_" + item.name, nodeClassName), style: (0, _babelRuntimeJsxStyleTransform.rpx2vw4style)((0, _util.convertStyle)(style)) }), /*#__PURE__*/(0, _react.createElement)(RichTextNode, _extends({ nodes: item.children }, otherProps))); } return /*#__PURE__*/(0, _react.createElement)(ExternalNode, _extends({ key: index }, otherProps, { className: (0, _classnames.default)("_" + item.name, nodeClassName), item: item, style: (0, _babelRuntimeJsxStyleTransform.rpx2vw4style)((0, _util.convertStyle)(style)) })); }); }; return RichTextNode; }(_react.Component); var _default = exports.default = RichTextNode;