/******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "./src/core-variants/core-buttons/editor.js": /*!**************************************************!*\ !*** ./src/core-variants/core-buttons/editor.js ***! \**************************************************/ /***/ (() => { wp.blocks.registerBlockStyle("core/buttons", { name: "big-buttons", label: "Grands boutons " }); /***/ }), /***/ "./src/core-variants/core-columns/editor.js": /*!**************************************************!*\ !*** ./src/core-variants/core-columns/editor.js ***! \**************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); /* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/hooks */ "@wordpress/hooks"); /* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/compose */ "@wordpress/compose"); /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime"); /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__); // Enregistrement du style de bloc (0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__.registerBlockStyle)("core/column", { name: "sticky-column", label: "Colonne sticky" }); // Fonction pour vérifier si le style sticky-columns est appliqué const hasStickyColumnStyle = attributes => { const className = attributes?.className || ""; return className.includes("is-style-sticky-column"); }; // ----------------------------- // 1. Modifier le HTML sauvegardé pour envelopper les colonnes dans une div avec la classe "test" // ----------------------------- (0,_wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__.addFilter)("blocks.getSaveElement", "carhop/sticky-columns-wrapper", (element, blockType, attributes) => { // Vérifier si c'est le bloc core/columns et si le style sticky-columns est appliqué if (blockType.name !== "core/column" || !hasStickyColumnStyle(attributes)) { return element; } // Si l'élément est null ou n'a pas d'enfants, retourner tel quel if (!element || !element.props || !element.props.children) { return element; } // Envelopper les enfants dans une div avec la classe "sticky-column-wrapper" const wrappedChildren = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.createElement)("div", { className: "sticky-column-wrapper" }, element.props.children); // Retourner l'élément avec les enfants enveloppés return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.createElement)(element.type, { ...element.props, children: wrappedChildren }, wrappedChildren); }); // ----------------------------- // 2. Modifier l'affichage dans l'éditeur pour envelopper les colonnes dans une div avec la classe "test" // ----------------------------- (0,_wordpress_hooks__WEBPACK_IMPORTED_MODULE_1__.addFilter)("editor.BlockEdit", "carhop/sticky-columns-editor-wrapper", (0,_wordpress_compose__WEBPACK_IMPORTED_MODULE_3__.createHigherOrderComponent)(BlockEdit => { return props => { // Vérifier si c'est le bloc core/column et si le style sticky-column est appliqué if (props.name !== "core/column" || !hasStickyColumnStyle(props.attributes)) { return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(BlockEdit, { ...props }); } console.log(props); return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.createElement)("div", { className: "sticky-column-wrapper" }, /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_4__.jsx)(BlockEdit, { ...props })); }; }, "withStickyColumnWrapper")); /***/ }), /***/ "./src/core-variants/core-embed-variant/editor.js": /*!********************************************************!*\ !*** ./src/core-variants/core-embed-variant/editor.js ***! \********************************************************/ /***/ (() => { wp.blocks.registerBlockStyle("core/embed", { name: "stacked-background", label: "Fond empilé" }); /***/ }), /***/ "./src/core-variants/core-heading-variant/editor.js": /*!**********************************************************!*\ !*** ./src/core-variants/core-heading-variant/editor.js ***! \**********************************************************/ /***/ (() => { wp.blocks.registerBlockStyle("core/heading", { name: "stroked-after", label: "Titre + trait " }); /***/ }), /***/ "./src/core-variants/core-image-variant/editor.js": /*!********************************************************!*\ !*** ./src/core-variants/core-image-variant/editor.js ***! \********************************************************/ /***/ (() => { wp.blocks.registerBlockStyle("core/image", { name: "framed", label: "Encadré", isDefault: true }); wp.blocks.registerBlockStyle("core/image", { name: "stacked", label: "Empilé", isDefault: false }); /***/ }), /***/ "./src/core-variants/core-list-variant/editor.js": /*!*******************************************************!*\ !*** ./src/core-variants/core-list-variant/editor.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/blocks */ "@wordpress/blocks"); /* harmony import */ var _wordpress_blocks__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n"); /* harmony import */ var _wordpress_i18n__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/block-editor */ "@wordpress/block-editor"); /* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components"); /* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element"); /* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_4__); /* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/hooks */ "@wordpress/hooks"); /* harmony import */ var _wordpress_hooks__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_hooks__WEBPACK_IMPORTED_MODULE_5__); /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/compose */ "@wordpress/compose"); /* harmony import */ var _wordpress_compose__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_wordpress_compose__WEBPACK_IMPORTED_MODULE_6__); /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! react/jsx-runtime */ "react/jsx-runtime"); /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__); // Variation du bloc "Liste" pour ajouter une classe spéciale (0,_wordpress_blocks__WEBPACK_IMPORTED_MODULE_0__.registerBlockVariation)("core/list", { name: "iconed-list", title: "Liste avec icônes", description: "Liste dont chaque élément peut avoir une icône personnalisée.", attributes: { className: "is-iconed-list" }, scope: ["inserter", "transform"], isActive: blockAttributes => { const cls = blockAttributes && blockAttributes.className || ""; return cls.split(" ").includes("is-iconed-list"); } }); // ----------------------------- // 1. On étend les attributs de core/list-item // ----------------------------- (0,_wordpress_hooks__WEBPACK_IMPORTED_MODULE_5__.addFilter)("blocks.registerBlockType", "am/iconed-list-item-attributes", (settings, name) => { if (name !== "core/list-item") { return settings; } return { ...settings, attributes: { ...settings.attributes, icon: { type: "string", default: "" } } }; }); // ----------------------------- // 2. On ajoute un panneau de réglages pour choisir l'icône // ----------------------------- (0,_wordpress_hooks__WEBPACK_IMPORTED_MODULE_5__.addFilter)("editor.BlockEdit", "am/iconed-list-item-controls", BlockEdit => props => { if (props.name !== "core/list-item") { return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(BlockEdit, { ...props }); } const { attributes, setAttributes } = props; const { icon } = attributes; const ICONS = [{ title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Loupe"), value: "loupe" }, { title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Sablier"), value: "sablier" }, { title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Cadenas"), value: "cadenas" }, { title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Check"), value: "check" }, { title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Loupe Alt"), value: "loupe-alt" }, { title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Pendule"), value: "pendule" }]; return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(_wordpress_element__WEBPACK_IMPORTED_MODULE_4__.Fragment, { children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(BlockEdit, { ...props }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsxs)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__.BlockControls, { children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.ToolbarGroup, { children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.ToolbarDropdownMenu, { label: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Icône du bullet"), className: "iconed-list-item-icon-dropdown", icon: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", { className: `iconed-list-item-backend-icon-square iconed-list-item-backend-icon-square--${icon}` }), controls: ICONS.map(({ title, value }) => ({ title, icon: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)("div", { className: `iconed-list-item-backend-icon-square iconed-list-item-backend-icon-square--${value}` }), isActive: icon === value, onClick: () => setAttributes({ icon: value }) })) }) }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_7__.jsx)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__.AlignmentToolbar, { value: attributes.align, onChange: value => setAttributes({ align: value }) })] })] }); }); // ----------------------------- // 3. On ajoute des props au HTML sauvegardé pour chaque