| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485 |
- /******/ (function(modules) { // webpackBootstrap
- /******/ // The module cache
- /******/ var installedModules = {};
- /******/
- /******/ // The require function
- /******/ function __webpack_require__(moduleId) {
- /******/
- /******/ // Check if module is in cache
- /******/ if(installedModules[moduleId]) {
- /******/ return installedModules[moduleId].exports;
- /******/ }
- /******/ // Create a new module (and put it into the cache)
- /******/ var module = installedModules[moduleId] = {
- /******/ i: moduleId,
- /******/ l: false,
- /******/ exports: {}
- /******/ };
- /******/
- /******/ // Execute the module function
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
- /******/
- /******/ // Flag the module as loaded
- /******/ module.l = true;
- /******/
- /******/ // Return the exports of the module
- /******/ return module.exports;
- /******/ }
- /******/
- /******/
- /******/ // expose the modules object (__webpack_modules__)
- /******/ __webpack_require__.m = modules;
- /******/
- /******/ // expose the module cache
- /******/ __webpack_require__.c = installedModules;
- /******/
- /******/ // define getter function for harmony exports
- /******/ __webpack_require__.d = function(exports, name, getter) {
- /******/ if(!__webpack_require__.o(exports, name)) {
- /******/ Object.defineProperty(exports, name, {
- /******/ configurable: false,
- /******/ enumerable: true,
- /******/ get: getter
- /******/ });
- /******/ }
- /******/ };
- /******/
- /******/ // getDefaultExport function for compatibility with non-harmony modules
- /******/ __webpack_require__.n = function(module) {
- /******/ var getter = module && module.__esModule ?
- /******/ function getDefault() { return module['default']; } :
- /******/ function getModuleExports() { return module; };
- /******/ __webpack_require__.d(getter, 'a', getter);
- /******/ return getter;
- /******/ };
- /******/
- /******/ // Object.prototype.hasOwnProperty.call
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
- /******/
- /******/ // __webpack_public_path__
- /******/ __webpack_require__.p = "";
- /******/
- /******/ // Load entry module and return exports
- /******/ return __webpack_require__(__webpack_require__.s = 34);
- /******/ })
- /************************************************************************/
- /******/ ({
- /***/ 34:
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- __webpack_require__(35);
- __webpack_require__(36);
- /***/ }),
- /***/ 35:
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var _FLBuilderConfig = FLBuilderConfig,
- strings = _FLBuilderConfig.strings;
- var _wp$blocks = wp.blocks,
- createBlock = _wp$blocks.createBlock,
- serialize = _wp$blocks.serialize;
- var Button = wp.components.Button;
- var compose = wp.compose.compose;
- var _wp$data = wp.data,
- withDispatch = _wp$data.withDispatch,
- withSelect = _wp$data.withSelect;
- var Component = wp.element.Component;
- var addFilter = wp.hooks.addFilter;
- /**
- * Convert to builder button component.
- */
- var ConvertToBuilderButton = function (_Component) {
- _inherits(ConvertToBuilderButton, _Component);
- function ConvertToBuilderButton() {
- _classCallCheck(this, ConvertToBuilderButton);
- return _possibleConstructorReturn(this, (ConvertToBuilderButton.__proto__ || Object.getPrototypeOf(ConvertToBuilderButton)).apply(this, arguments));
- }
- _createClass(ConvertToBuilderButton, [{
- key: 'render',
- value: function render() {
- if (this.hasBuilderBlock()) {
- return null;
- }
- return React.createElement(
- 'span',
- null,
- React.createElement(
- Button,
- {
- className: 'components-menu-item__button',
- onClick: this.convertToBuilder.bind(this)
- },
- strings.convert
- )
- );
- }
- }, {
- key: 'hasBuilderBlock',
- value: function hasBuilderBlock() {
- var getBlocks = this.props.getBlocks;
- var blocks = getBlocks();
- var builder = blocks.filter(function (block) {
- return 'fl-builder/layout' === block.name;
- });
- return !!builder.length;
- }
- }, {
- key: 'convertToBuilder',
- value: function convertToBuilder() {
- var _props = this.props,
- getBlocks = _props.getBlocks,
- insertBlock = _props.insertBlock,
- removeBlocks = _props.removeBlocks;
- var blocks = getBlocks();
- var clientIds = blocks.map(function (block) {
- return block.clientId;
- });
- var content = serialize(blocks).replace(/<!--(.*?)-->/g, '');
- var block = createBlock('fl-builder/layout', { content: content });
- removeBlocks(clientIds);
- insertBlock(block, 0);
- }
- }]);
- return ConvertToBuilderButton;
- }(Component);
- /**
- * Connect the button to editor data.
- */
- var ConvertToBuilderButtonConnected = compose(withDispatch(function (dispatch, ownProps) {
- var editor = dispatch('core/editor');
- return {
- insertBlock: editor.insertBlock,
- removeBlocks: editor.removeBlocks
- };
- }), withSelect(function (select) {
- var editor = select('core/editor');
- return {
- getBlocks: editor.getBlocks
- };
- }))(ConvertToBuilderButton);
- /**
- * Register the button.
- */
- addFilter('editPost.MoreMenu.tools', 'fl-builder/convert-to-builder/button', function (children) {
- return [].concat(_toConsumableArray(children), [React.createElement(ConvertToBuilderButtonConnected, { key: 'convert-to-builder' })]);
- });
- /***/ }),
- /***/ 36:
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- __webpack_require__(37);
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
- var _FLBuilderConfig = FLBuilderConfig,
- builder = _FLBuilderConfig.builder,
- strings = _FLBuilderConfig.strings,
- urls = _FLBuilderConfig.urls;
- var _wp$blocks = wp.blocks,
- registerBlockType = _wp$blocks.registerBlockType,
- rawHandler = _wp$blocks.rawHandler,
- serialize = _wp$blocks.serialize;
- var _wp$components = wp.components,
- Button = _wp$components.Button,
- Placeholder = _wp$components.Placeholder,
- Spinner = _wp$components.Spinner;
- var compose = wp.compose.compose;
- var _wp$data = wp.data,
- subscribe = _wp$data.subscribe,
- withDispatch = _wp$data.withDispatch,
- withSelect = _wp$data.withSelect;
- var _wp$element = wp.element,
- Component = _wp$element.Component,
- RawHTML = _wp$element.RawHTML;
- /**
- * Edit Component
- */
- var LayoutBlockEdit = function (_Component) {
- _inherits(LayoutBlockEdit, _Component);
- function LayoutBlockEdit() {
- _classCallCheck(this, LayoutBlockEdit);
- var _this = _possibleConstructorReturn(this, (LayoutBlockEdit.__proto__ || Object.getPrototypeOf(LayoutBlockEdit)).apply(this, arguments));
- _this.state = {
- launching: false
- };
- _this.unsubscribe = subscribe(_this.storeDidUpdate.bind(_this));
- return _this;
- }
- _createClass(LayoutBlockEdit, [{
- key: 'storeDidUpdate',
- value: function storeDidUpdate() {
- var isSavingPost = this.props.isSavingPost;
- var launching = this.state.launching;
- if (launching && !isSavingPost()) {
- this.unsubscribe();
- this.redirectToBuilder();
- }
- }
- }, {
- key: 'componentDidMount',
- value: function componentDidMount() {
- var getBlockCount = this.props.getBlockCount;
- if (1 === getBlockCount()) {
- this.toggleEditor('disable');
- }
- }
- }, {
- key: 'componentWillUnmount',
- value: function componentWillUnmount() {
- this.unsubscribe();
- this.toggleEditor('enable');
- }
- }, {
- key: 'render',
- value: function render() {
- var _props = this.props,
- getBlockCount = _props.getBlockCount,
- onReplace = _props.onReplace;
- var launching = this.state.launching;
- var label = void 0,
- callback = void 0,
- description = void 0;
- if (1 === getBlockCount()) {
- label = builder.access ? strings.launch : strings.view;
- callback = this.launchBuilder.bind(this);
- } else {
- label = strings.convert;
- callback = this.convertToBuilder.bind(this);
- }
- if (builder.enabled) {
- description = strings.active;
- } else {
- description = strings.description;
- }
- return React.createElement(
- Placeholder,
- {
- key: 'placeholder',
- instructions: description,
- icon: 'welcome-widgets-menus',
- label: strings.title,
- className: 'fl-builder-layout-launch-view'
- },
- launching && React.createElement(Spinner, null),
- !launching && React.createElement(
- Button,
- {
- isLarge: true,
- isPrimary: true,
- type: 'submit',
- onClick: callback
- },
- label
- ),
- !launching && React.createElement(
- Button,
- {
- isLarge: true,
- type: 'submit',
- onClick: this.convertToBlocks.bind(this)
- },
- strings.editor
- )
- );
- }
- }, {
- key: 'toggleEditor',
- value: function toggleEditor() {
- var method = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'enable';
- var classList = document.body.classList;
- var enabledClass = 'fl-builder-layout-enabled';
- if ('enable' === method) {
- if (classList.contains(enabledClass)) {
- classList.remove(enabledClass);
- }
- } else {
- if (!classList.contains(enabledClass)) {
- classList.add(enabledClass);
- }
- }
- }
- }, {
- key: 'redirectToBuilder',
- value: function redirectToBuilder() {
- window.location.href = builder.access ? urls.edit : urls.view;
- }
- }, {
- key: 'launchBuilder',
- value: function launchBuilder() {
- var savePost = this.props.savePost;
- this.setState({ launching: true });
- savePost();
- }
- }, {
- key: 'convertToBuilder',
- value: function convertToBuilder() {
- var _props2 = this.props,
- clientId = _props2.clientId,
- getBlocks = _props2.getBlocks,
- setAttributes = _props2.setAttributes,
- removeBlocks = _props2.removeBlocks;
- var blocks = getBlocks();
- var content = serialize(blocks);
- var clientIds = blocks.map(function (block) {
- return block.clientId;
- }).filter(function (id) {
- return id !== clientId;
- });
- setAttributes({ content: content.replace(/<!--(.*?)-->/g, '') });
- removeBlocks(clientIds);
- this.launchBuilder();
- }
- }, {
- key: 'convertToBlocks',
- value: function convertToBlocks() {
- var _props3 = this.props,
- attributes = _props3.attributes,
- clientId = _props3.clientId,
- replaceBlocks = _props3.replaceBlocks,
- onReplace = _props3.onReplace;
- if (attributes.content && !confirm(strings.warning)) {
- return;
- } else if (attributes.content) {
- replaceBlocks([clientId], rawHandler({
- HTML: attributes.content,
- mode: 'BLOCKS'
- }));
- } else {
- onReplace([]);
- }
- }
- }]);
- return LayoutBlockEdit;
- }(Component);
- /**
- * Connect the edit component to editor data.
- */
- var LayoutBlockEditConnected = compose(withDispatch(function (dispatch, ownProps) {
- var editor = dispatch('core/editor');
- return {
- savePost: editor.savePost,
- removeBlocks: editor.removeBlocks,
- replaceBlocks: editor.replaceBlocks
- };
- }), withSelect(function (select) {
- var editor = select('core/editor');
- return {
- getBlockCount: editor.getBlockCount,
- getBlocks: editor.getBlocks,
- isSavingPost: editor.isSavingPost
- };
- }))(LayoutBlockEdit);
- /**
- * Register the block.
- */
- if (builder.access && builder.unrestricted || builder.enabled) {
- registerBlockType('fl-builder/layout', {
- title: strings.title,
- description: strings.description,
- icon: 'welcome-widgets-menus',
- category: 'layout',
- useOnce: true,
- supports: {
- customClassName: false,
- className: false,
- html: false
- },
- attributes: {
- content: {
- type: 'string',
- source: 'html'
- }
- },
- edit: LayoutBlockEditConnected,
- save: function save(_ref) {
- var attributes = _ref.attributes;
- return React.createElement(
- RawHTML,
- null,
- attributes.content
- );
- }
- });
- }
- /***/ }),
- /***/ 37:
- /***/ (function(module, exports) {
- // removed by extract-text-webpack-plugin
- /***/ })
- /******/ });
|