UNPKG

choerodon-ui

Version:

An enterprise-class UI design language and React-based implementation

78 lines (55 loc) 2.25 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = formatReactTemplate; var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray")); var _react = require("react"); var _stringTemplate = _interopRequireDefault(require("string-template")); var _isString = _interopRequireDefault(require("lodash/isString")); var _isObject = _interopRequireDefault(require("lodash/isObject")); var _isNil = _interopRequireDefault(require("lodash/isNil")); var _flatMap = _interopRequireDefault(require("lodash/flatMap")); function formatReactTemplate(template, map) { var result = [template]; Object.keys(map).forEach(function (key) { var node = map[key]; if (!(0, _isNil["default"])(node)) { result = (0, _flatMap["default"])(result, function (text) { if ((0, _isString["default"])(text)) { var stringText = text; if ((0, _react.isValidElement)(node)) { var placeholder = "{".concat(key, "}"); if ((0, _isObject["default"])(node) && stringText.indexOf('[object Object]') > -1) { placeholder = '[object Object]'; } var _placeholder = placeholder, length = _placeholder.length; var textArr = []; var index = stringText.indexOf(placeholder); while (index > -1) { if (index > 0) { textArr.push(stringText.slice(0, index)); } textArr.push(node); stringText = stringText.slice(index + length); index = stringText.indexOf(placeholder); } if (stringText) { textArr.push(stringText); } return textArr; } return (0, _stringTemplate["default"])(text, map); } return text; }); } }); if (result.every(_isString["default"])) { return result.join(''); } return _react.createElement.apply(void 0, [_react.Fragment, {}].concat((0, _toConsumableArray2["default"])(result))); } //# sourceMappingURL=formatReactTemplate.js.map