UNPKG

@atlaskit/editor-plugin-extension

Version:

editor-plugin-extension plugin for @atlaskit/editor-core

115 lines (112 loc) 4.41 kB
"use strict"; var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireWildcard(require("react")); var _reactIntl = require("react-intl"); var _extensions = require("@atlaskit/editor-common/extensions"); var _form = require("@atlaskit/form"); var _compiled = require("@atlaskit/primitives/compiled"); var _types = require("./types"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } // sidestep XSS issues function makeMarkup(fragment, key) { var nodeName = fragment.nodeName, nodeType = fragment.nodeType, childNodes = fragment.childNodes, textContent = fragment.textContent; if (nodeType === Node.TEXT_NODE) { return /*#__PURE__*/_react.default.createElement(_react.Fragment, { key: key }, textContent); } // NOTE: NodeList doesn't have .map var children = []; childNodes.forEach(function (childNode, i) { var markup = makeMarkup(childNode, String(i)); if (markup) { children.push(markup); } }); switch (nodeName) { case 'B': return /*#__PURE__*/_react.default.createElement("b", { key: key }, children); case 'I': return /*#__PURE__*/_react.default.createElement("i", { key: key }, children); case 'STRONG': return /*#__PURE__*/_react.default.createElement(_compiled.Text, { as: "strong", color: "color.text.subtlest", size: "small", key: key }, children); case 'EM': return /*#__PURE__*/_react.default.createElement(_compiled.Text, { as: "em", color: "color.text.subtlest", size: "small", key: key }, children); case 'CODE': // eslint-disable-next-line @atlaskit/design-system/no-html-code return /*#__PURE__*/_react.default.createElement("code", { key: key }, children); } if (children.length === 1) { return /*#__PURE__*/_react.default.createElement(_react.Fragment, { key: key }, children[0]); } if (children.length) { return /*#__PURE__*/_react.default.createElement("span", { key: key }, children); } return null; } function Description(_ref) { var description = _ref.description; var markup = (0, _react.useMemo)(function () { var dom = new DOMParser().parseFromString(description, 'text/html'); return makeMarkup(dom); }, [description]); return /*#__PURE__*/_react.default.createElement(_form.HelperMessage, { testId: "field-message-description" }, markup); } var FieldMessages = function FieldMessages(_ref2) { var error = _ref2.error, description = _ref2.description, intl = _ref2.intl; if (!error && description) { return /*#__PURE__*/_react.default.createElement(Description, { description: description }); } switch (error) { case _types.ValidationError.Required: return /*#__PURE__*/_react.default.createElement(_form.ErrorMessage, { testId: "config-panel-error-message" }, intl.formatMessage(_extensions.configPanelMessages.required)); case _types.ValidationError.Invalid: return /*#__PURE__*/_react.default.createElement(_form.ErrorMessage, { testId: "config-panel-error-message" }, intl.formatMessage(_extensions.configPanelMessages.invalid)); case _types.FieldTypeError.isMultipleAndRadio: return /*#__PURE__*/_react.default.createElement(_form.ErrorMessage, { testId: "config-panel-error-message" }, intl.formatMessage(_extensions.configPanelMessages.isMultipleAndRadio)); default: return null; } }; // eslint-disable-next-line @typescript-eslint/ban-types var _default_1 = (0, _reactIntl.injectIntl)(FieldMessages); var _default = exports.default = _default_1;