UNPKG

2.64 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 _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
14var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
16var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
18var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
20var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
22var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
23
24var _compose = require("@wordpress/compose");
25
26/**
27 * WordPress dependencies
28 */
29
30/**
31 * Browser dependencies
32 */
33var _window = window,
34 FocusEvent = _window.FocusEvent;
35
36var WpEmbedPreview =
37/*#__PURE__*/
38function (_Component) {
39 (0, _inherits2.default)(WpEmbedPreview, _Component);
40
41 function WpEmbedPreview() {
42 var _this;
43
44 (0, _classCallCheck2.default)(this, WpEmbedPreview);
45 _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(WpEmbedPreview).apply(this, arguments));
46 _this.checkFocus = _this.checkFocus.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)));
47 _this.node = (0, _element.createRef)();
48 return _this;
49 }
50 /**
51 * Checks whether the wp embed iframe is the activeElement,
52 * if it is dispatch a focus event.
53 */
54
55
56 (0, _createClass2.default)(WpEmbedPreview, [{
57 key: "checkFocus",
58 value: function checkFocus() {
59 var _document = document,
60 activeElement = _document.activeElement;
61
62 if (activeElement.tagName !== 'IFRAME' || activeElement.parentNode !== this.node.current) {
63 return;
64 }
65
66 var focusEvent = new FocusEvent('focus', {
67 bubbles: true
68 });
69 activeElement.dispatchEvent(focusEvent);
70 }
71 }, {
72 key: "render",
73 value: function render() {
74 var html = this.props.html;
75 return (0, _element.createElement)("div", {
76 ref: this.node,
77 className: "wp-block-embed__wrapper",
78 dangerouslySetInnerHTML: {
79 __html: html
80 }
81 });
82 }
83 }]);
84 return WpEmbedPreview;
85}(_element.Component);
86
87var _default = (0, _compose.withGlobalEvents)({
88 blur: 'checkFocus'
89})(WpEmbedPreview);
90
91exports.default = _default;
92//# sourceMappingURL=wp-embed-preview.js.map
\No newline at end of file