UNPKG

4.74 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.default = void 0;
9
10var _element = require("@wordpress/element");
11
12var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
14var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
16var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
18var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
20var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
22var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
23
24var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
25
26var _i18n = require("@wordpress/i18n");
27
28var _blockEditor = require("@wordpress/block-editor");
29
30var _editor = require("@wordpress/editor");
31
32var _components = require("@wordpress/components");
33
34var _data = require("@wordpress/data");
35
36/**
37 * WordPress dependencies
38 */
39var HTMLEdit =
40/*#__PURE__*/
41function (_Component) {
42 (0, _inherits2.default)(HTMLEdit, _Component);
43
44 function HTMLEdit() {
45 var _this;
46
47 (0, _classCallCheck2.default)(this, HTMLEdit);
48 _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(HTMLEdit).apply(this, arguments));
49 _this.state = {
50 isPreview: false,
51 styles: []
52 };
53 _this.switchToHTML = _this.switchToHTML.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
54 _this.switchToPreview = _this.switchToPreview.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
55 return _this;
56 }
57
58 (0, _createClass2.default)(HTMLEdit, [{
59 key: "componentDidMount",
60 value: function componentDidMount() {
61 var styles = this.props.styles; // Default styles used to unset some of the styles
62 // that might be inherited from the editor style.
63
64 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";
65 this.setState({
66 styles: [defaultStyles].concat((0, _toConsumableArray2.default)((0, _editor.transformStyles)(styles)))
67 });
68 }
69 }, {
70 key: "switchToPreview",
71 value: function switchToPreview() {
72 this.setState({
73 isPreview: true
74 });
75 }
76 }, {
77 key: "switchToHTML",
78 value: function switchToHTML() {
79 this.setState({
80 isPreview: false
81 });
82 }
83 }, {
84 key: "render",
85 value: function render() {
86 var _this$props = this.props,
87 attributes = _this$props.attributes,
88 setAttributes = _this$props.setAttributes;
89 var _this$state = this.state,
90 isPreview = _this$state.isPreview,
91 styles = _this$state.styles;
92 return (0, _element.createElement)("div", {
93 className: "wp-block-html"
94 }, (0, _element.createElement)(_blockEditor.BlockControls, null, (0, _element.createElement)("div", {
95 className: "components-toolbar"
96 }, (0, _element.createElement)("button", {
97 className: "components-tab-button ".concat(!isPreview ? 'is-active' : ''),
98 onClick: this.switchToHTML
99 }, (0, _element.createElement)("span", null, "HTML")), (0, _element.createElement)("button", {
100 className: "components-tab-button ".concat(isPreview ? 'is-active' : ''),
101 onClick: this.switchToPreview
102 }, (0, _element.createElement)("span", null, (0, _i18n.__)('Preview'))))), (0, _element.createElement)(_components.Disabled.Consumer, null, function (isDisabled) {
103 return isPreview || isDisabled ? (0, _element.createElement)(_components.SandBox, {
104 html: attributes.content,
105 styles: styles
106 }) : (0, _element.createElement)(_blockEditor.PlainText, {
107 value: attributes.content,
108 onChange: function onChange(content) {
109 return setAttributes({
110 content: content
111 });
112 },
113 placeholder: (0, _i18n.__)('Write HTML…'),
114 "aria-label": (0, _i18n.__)('HTML')
115 });
116 }));
117 }
118 }]);
119 return HTMLEdit;
120}(_element.Component);
121
122var _default = (0, _data.withSelect)(function (select) {
123 var _select = select('core/block-editor'),
124 getSettings = _select.getSettings;
125
126 return {
127 styles: getSettings().styles
128 };
129})(HTMLEdit);
130
131exports.default = _default;
132//# sourceMappingURL=edit.js.map
\No newline at end of file