UNPKG

wix-style-react

Version:
132 lines (105 loc) 5.7 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireDefault(require("react")); var _RichTextToolbarButton = _interopRequireDefault(require("./RichTextToolbarButton")); var _RichTextInputAreaLinkForm = _interopRequireDefault(require("../Form/RichTextInputAreaLinkForm")); var _Popover = _interopRequireDefault(require("../../Popover")); var _Box = _interopRequireDefault(require("../../Box")); function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } var RichTextToolbarLinkButton = /*#__PURE__*/function (_React$Component) { (0, _inherits2["default"])(RichTextToolbarLinkButton, _React$Component); var _super = _createSuper(RichTextToolbarLinkButton); function RichTextToolbarLinkButton() { var _this; (0, _classCallCheck2["default"])(this, RichTextToolbarLinkButton); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _super.call.apply(_super, [this].concat(args)); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", { isFormShown: false }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onButtonClick", function () { var _this$props = _this.props, onRemove = _this$props.onRemove, data = _this$props.data; var hasRemovableEntityInSelection = data.hasRemovableEntityInSelection; // Checks if the selected text does not contain a link if (!hasRemovableEntityInSelection) { _this.setState({ isFormShown: true }); } else { onRemove(); } }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onSubmit", function (event, linkData) { var onSubmit = _this.props.onSubmit; onSubmit(event, linkData); _this._onHide(); }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onHide", function () { _this.setState({ isFormShown: false }); }); return _this; } (0, _createClass2["default"])(RichTextToolbarLinkButton, [{ key: "render", value: function render() { var _this$props2 = this.props, dataHook = _this$props2.dataHook, tooltipText = _this$props2.tooltipText, isDisabled = _this$props2.isDisabled, isActive = _this$props2.isActive, children = _this$props2.children, data = _this$props2.data; var isFormShown = this.state.isFormShown; var selectedText = data.selectedText; return /*#__PURE__*/_react["default"].createElement(_Popover["default"], { appendTo: "parent", placement: "bottom", showArrow: true, animate: true, shown: isFormShown, onClickOutside: this._onHide }, /*#__PURE__*/_react["default"].createElement(_Popover["default"].Element, null, /*#__PURE__*/_react["default"].createElement(_RichTextToolbarButton["default"], { dataHook: dataHook, onClick: this._onButtonClick, tooltipText: tooltipText, isDisabled: isDisabled, isActive: isActive || this.state.isFormShown }, children)), /*#__PURE__*/_react["default"].createElement(_Popover["default"].Content, null, /*#__PURE__*/_react["default"].createElement(_Box["default"], { padding: 3, width: "216px" }, /*#__PURE__*/_react["default"].createElement(_RichTextInputAreaLinkForm["default"], { dataHook: "richtextarea-form", onSubmit: this._onSubmit, onCancel: this._onHide, data: { text: selectedText } })))); } /* When clicking the button, one of the following occurs: 1. If the selected text does not contain a link, it will show the link insertion form 2. If the selected text contains a link, it will detach that link from the text */ }]); return RichTextToolbarLinkButton; }(_react["default"].Component); var _default = RichTextToolbarLinkButton; exports["default"] = _default;