@wordpress/block-library
Version:
Block library for the WordPress editor.
132 lines (109 loc) • 4.74 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _element = require("@wordpress/element");
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
var _i18n = require("@wordpress/i18n");
var _blockEditor = require("@wordpress/block-editor");
var _editor = require("@wordpress/editor");
var _components = require("@wordpress/components");
var _data = require("@wordpress/data");
/**
* WordPress dependencies
*/
var HTMLEdit =
/*#__PURE__*/
function (_Component) {
(0, _inherits2.default)(HTMLEdit, _Component);
function HTMLEdit() {
var _this;
(0, _classCallCheck2.default)(this, HTMLEdit);
_this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(HTMLEdit).apply(this, arguments));
_this.state = {
isPreview: false,
styles: []
};
_this.switchToHTML = _this.switchToHTML.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
_this.switchToPreview = _this.switchToPreview.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
return _this;
}
(0, _createClass2.default)(HTMLEdit, [{
key: "componentDidMount",
value: function componentDidMount() {
var styles = this.props.styles; // Default styles used to unset some of the styles
// that might be inherited from the editor style.
var defaultStyles = "\n\t\t\thtml,body,:root {\n\t\t\t\tmargin: 0 !important;\n\t\t\t\tpadding: 0 !important;\n\t\t\t\toverflow: visible !important;\n\t\t\t\tmin-height: auto !important;\n\t\t\t}\n\t\t";
this.setState({
styles: [defaultStyles].concat((0, _toConsumableArray2.default)((0, _editor.transformStyles)(styles)))
});
}
}, {
key: "switchToPreview",
value: function switchToPreview() {
this.setState({
isPreview: true
});
}
}, {
key: "switchToHTML",
value: function switchToHTML() {
this.setState({
isPreview: false
});
}
}, {
key: "render",
value: function render() {
var _this$props = this.props,
attributes = _this$props.attributes,
setAttributes = _this$props.setAttributes;
var _this$state = this.state,
isPreview = _this$state.isPreview,
styles = _this$state.styles;
return (0, _element.createElement)("div", {
className: "wp-block-html"
}, (0, _element.createElement)(_blockEditor.BlockControls, null, (0, _element.createElement)("div", {
className: "components-toolbar"
}, (0, _element.createElement)("button", {
className: "components-tab-button ".concat(!isPreview ? 'is-active' : ''),
onClick: this.switchToHTML
}, (0, _element.createElement)("span", null, "HTML")), (0, _element.createElement)("button", {
className: "components-tab-button ".concat(isPreview ? 'is-active' : ''),
onClick: this.switchToPreview
}, (0, _element.createElement)("span", null, (0, _i18n.__)('Preview'))))), (0, _element.createElement)(_components.Disabled.Consumer, null, function (isDisabled) {
return isPreview || isDisabled ? (0, _element.createElement)(_components.SandBox, {
html: attributes.content,
styles: styles
}) : (0, _element.createElement)(_blockEditor.PlainText, {
value: attributes.content,
onChange: function onChange(content) {
return setAttributes({
content: content
});
},
placeholder: (0, _i18n.__)('Write HTML…'),
"aria-label": (0, _i18n.__)('HTML')
});
}));
}
}]);
return HTMLEdit;
}(_element.Component);
var _default = (0, _data.withSelect)(function (select) {
var _select = select('core/block-editor'),
getSettings = _select.getSettings;
return {
styles: getSettings().styles
};
})(HTMLEdit);
exports.default = _default;
//# sourceMappingURL=edit.js.map