From 0ac5829ffe1ed60c07e6afea4e7fe066e28dc6bf Mon Sep 17 00:00:00 2001 From: Antoine M Date: Wed, 4 Oct 2023 14:39:00 +0200 Subject: [PATCH] passing combobox control instead of select control --- .../questions-container/build/index.asset.php | 2 +- blocks/questions-container/build/index.js | 4 ++-- blocks/questions-container/build/index.js.map | 2 +- .../src/OptionsSelectControl.js | 21 +++++++++++++++---- 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/blocks/questions-container/build/index.asset.php b/blocks/questions-container/build/index.asset.php index 867666c..aa07f63 100644 --- a/blocks/questions-container/build/index.asset.php +++ b/blocks/questions-container/build/index.asset.php @@ -1 +1 @@ - array('wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-element', 'wp-html-entities', 'wp-i18n'), 'version' => '53ba63544a9275dbaa4d'); + array('wp-block-editor', 'wp-blocks', 'wp-components', 'wp-data', 'wp-element', 'wp-html-entities', 'wp-i18n'), 'version' => '93aa1bb3eceec274510e'); diff --git a/blocks/questions-container/build/index.js b/blocks/questions-container/build/index.js index 2b932d3..11df01e 100644 --- a/blocks/questions-container/build/index.js +++ b/blocks/questions-container/build/index.js @@ -66,7 +66,7 @@ function OptionsSelectControl({ if (relatedPossiblePages) { options.push({ value: 0, - label: "Select a page" + label: "Selectionnez une page" }); relatedPossiblePages.forEach(page => { options.push({ @@ -115,7 +115,7 @@ function OptionsSelectControl({ let panelTitle = postParentTaxonomy ? "Questions " + postParentTaxonomy.name : postMainTaxonomy ? "Questions " + postMainTaxonomy.name : null; return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_2__.InspectorControls, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.PanelBody, { title: (0,_wordpress_i18n__WEBPACK_IMPORTED_MODULE_1__.__)("Question Relié", "homegrade-blocks__texte-fonctionnel") - }, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.SelectControl, { + }, relatedQuestionPages && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_3__.ComboboxControl, { label: panelTitle, value: relatedPostId, options: relatedQuestionPages, diff --git a/blocks/questions-container/build/index.js.map b/blocks/questions-container/build/index.js.map index a285af5..e238468 100644 --- a/blocks/questions-container/build/index.js.map +++ b/blocks/questions-container/build/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","mappings":"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CAACC,6CAAa,EAAE;EAChCC,IAAI,EAAEV,6CAAIA;AACX,CAAC,CAAC;;;;;;;;;;;ACTF;;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA,+BAA+B,wCAAwC;WACvE;WACA;WACA;WACA;WACA,iBAAiB,qBAAqB;WACtC;WACA;WACA;WACA;WACA,kBAAkB,qBAAqB;WACvC;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC7BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;;;;;UEnDA;UACA;UACA;UACA;UACA","sources":["webpack://multiblocks/./src/OptionsSelectControl.js","webpack://multiblocks/./src/edit.js","webpack://multiblocks/./src/index.js","webpack://multiblocks/./src/editor.scss?0339","webpack://multiblocks/./src/style.scss?75bd","webpack://multiblocks/external window [\"wp\",\"blockEditor\"]","webpack://multiblocks/external window [\"wp\",\"blocks\"]","webpack://multiblocks/external window [\"wp\",\"components\"]","webpack://multiblocks/external window [\"wp\",\"data\"]","webpack://multiblocks/external window [\"wp\",\"element\"]","webpack://multiblocks/external window [\"wp\",\"htmlEntities\"]","webpack://multiblocks/external window [\"wp\",\"i18n\"]","webpack://multiblocks/webpack/bootstrap","webpack://multiblocks/webpack/runtime/chunk loaded","webpack://multiblocks/webpack/runtime/compat get default export","webpack://multiblocks/webpack/runtime/define property getters","webpack://multiblocks/webpack/runtime/hasOwnProperty shorthand","webpack://multiblocks/webpack/runtime/make namespace object","webpack://multiblocks/webpack/runtime/jsonp chunk loading","webpack://multiblocks/webpack/before-startup","webpack://multiblocks/webpack/startup","webpack://multiblocks/webpack/after-startup"],"sourcesContent":["import { __ } from \"@wordpress/i18n\";\r\nimport { InspectorControls } from \"@wordpress/block-editor\";\r\nimport { PanelBody, SelectControl } from \"@wordpress/components\";\r\nimport \"./editor.scss\";\r\nimport { useSelect } from \"@wordpress/data\";\r\nimport { useEffect, useState } from \"@wordpress/element\";\r\nimport { decodeEntities } from \"@wordpress/html-entities\";\r\n\r\nexport default function OptionsSelectControl({ setAttributes, relatedPostId }) {\r\n\tlet [relatedQuestionPages, setRelatedQuestionPages] = useState(null);\r\n\r\n\tconst lang = getAdminLanguageFromCookie(\"wp-wpml_current_language\");\r\n\r\n\tfunction getAdminLanguageFromCookie(c_name) {\r\n\t\tvar c_value = document.cookie,\r\n\t\t\tc_start = c_value.indexOf(\" \" + c_name + \"=\");\r\n\t\tif (c_start == -1) c_start = c_value.indexOf(c_name + \"=\");\r\n\t\tif (c_start == -1) {\r\n\t\t\tc_value = null;\r\n\t\t} else {\r\n\t\t\tc_start = c_value.indexOf(\"=\", c_start) + 1;\r\n\t\t\tvar c_end = c_value.indexOf(\";\", c_start);\r\n\t\t\tif (c_end == -1) {\r\n\t\t\t\tc_end = c_value.length;\r\n\t\t\t}\r\n\t\t\tc_value = unescape(c_value.substring(c_start, c_end));\r\n\t\t}\r\n\t\treturn c_value;\r\n\t}\r\n\r\n\tfunction handleRelatedPostChange(postId) {\r\n\t\tsetAttributes({ relatedPostId: Number(postId) });\r\n\t}\r\n\tfunction buildSelectOptions(relatedPossiblePages) {\r\n\t\tlet options = [];\r\n\t\tif (relatedPossiblePages) {\r\n\t\t\toptions.push({ value: 0, label: \"Select a page\" });\r\n\t\t\trelatedPossiblePages.forEach((page) => {\r\n\t\t\t\toptions.push({\r\n\t\t\t\t\tvalue: page.id,\r\n\t\t\t\t\tlabel: decodeEntities(page.title.rendered),\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\toptions.push({ value: 0, label: \"Pas encore de questions...\" });\r\n\t\t}\r\n\t\treturn options;\r\n\t}\r\n\r\n\t// GET TAXONOMIES INOFRMATION\r\n\tlet postTaxonomies = useSelect((select) =>\r\n\t\tselect(\"core/editor\").getCurrentPostAttribute(\"thematiques\")\r\n\t);\r\n\tlet postMainTaxonomy = useSelect(\r\n\t\t(select) =>\r\n\t\t\tselect(\"core\").getEntityRecord(\r\n\t\t\t\t\"taxonomy\",\r\n\t\t\t\t\"thematiques\",\r\n\t\t\t\tpostTaxonomies[0]\r\n\t\t\t),\r\n\t\t[postTaxonomies]\r\n\t);\r\n\tlet postParentTaxonomy = useSelect(\r\n\t\t(select) => {\r\n\t\t\tif (postMainTaxonomy && postMainTaxonomy.parent) {\r\n\t\t\t\treturn select(\"core\").getEntityRecord(\r\n\t\t\t\t\t\"taxonomy\",\r\n\t\t\t\t\t\"thematiques\",\r\n\t\t\t\t\tpostMainTaxonomy.parent\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\t[postMainTaxonomy]\r\n\t);\r\n\r\n\t// GET RELATED POSSIBLE PAGES ACCORDING TO CURRENT TAXONOMY\r\n\tconst relatedPossiblePages = useSelect((select) => {\r\n\t\tif (postMainTaxonomy) {\r\n\t\t\tlet query = {\r\n\t\t\t\tstatus: \"publish\",\r\n\t\t\t\tper_page: -1,\r\n\t\t\t\tlang: lang,\r\n\t\t\t\tthematiques: postMainTaxonomy ? postMainTaxonomy.id : null,\r\n\t\t\t};\r\n\t\t\treturn select(\"core\").getEntityRecords(\"postType\", \"questions\", query);\r\n\t\t}\r\n\t\treturn null;\r\n\t});\r\n\r\n\tuseEffect(() => {\r\n\t\tif (relatedPossiblePages) {\r\n\t\t\tsetRelatedQuestionPages(buildSelectOptions(relatedPossiblePages));\r\n\t\t}\r\n\t}, [relatedPossiblePages]);\r\n\r\n\tlet currentGeneralThematique = postParentTaxonomy ?? postMainTaxonomy ?? null;\r\n\r\n\tlet panelTitle = postParentTaxonomy\r\n\t\t? \"Questions \" + postParentTaxonomy.name\r\n\t\t: postMainTaxonomy\r\n\t\t? \"Questions \" + postMainTaxonomy.name\r\n\t\t: null;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t handleRelatedPostChange(e)}\r\n\t\t\t\t/>\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n","import { __ } from \"@wordpress/i18n\";\nimport { useBlockProps } from \"@wordpress/block-editor\";\n\nimport { useSelect } from \"@wordpress/data\"; // pour les querry\nimport \"./editor.scss\";\nimport { RawHTML } from \"@wordpress/element\";\nimport { useEffect } from \"@wordpress/element\";\nimport { decodeEntities } from \"@wordpress/html-entities\";\nimport OptionsSelectControl from \"./OptionsSelectControl\";\n\nfunction parseBlockContentForTooltips(editorContent) {\n\tconst parser = new DOMParser();\n\tconst doc = parser.parseFromString(editorContent, \"text/html\");\n\tconst domTooltipWords = doc.querySelectorAll(\".tooltip-word\");\n\n\tconst filteredTooltipWords = [];\n\n\t// Looping over tooltip words and filtering duplicates\n\tArray.from(domTooltipWords).forEach((tooltipWord) => {\n\t\tconst tooltipID = tooltipWord.getAttribute(\"data-definition-id\");\n\t\tconst tooltipText = tooltipWord.getAttribute(\"data-tooltip-word\");\n\t\tconst tooltipDefinition = tooltipWord.getAttribute(\n\t\t\t\"data-tooltip-definition\"\n\t\t);\n\n\t\tconst existingTooltip = filteredTooltipWords.find(\n\t\t\t(item) => item.tooltipID === tooltipID\n\t\t);\n\n\t\tif (!existingTooltip) {\n\t\t\tfilteredTooltipWords.push({\n\t\t\t\ttooltipID,\n\t\t\t\ttooltipText,\n\t\t\t\ttooltipDefinition,\n\t\t\t});\n\t\t}\n\t});\n\treturn filteredTooltipWords;\n}\n\nexport default function Edit({ attributes, setAttributes }) {\n\tconst { relatedPostId } = attributes;\n\n\tlet currentRelatedPost = useSelect((select) =>\n\t\tselect(\"core\").getEntityRecord(\"postType\", \"questions\", relatedPostId)\n\t);\n\n\tuseEffect(() => {\n\t\tif (currentRelatedPost) {\n\t\t\tconst currentBlockTooltips = parseBlockContentForTooltips(\n\t\t\t\tcurrentRelatedPost.content.rendered\n\t\t\t);\n\t\t\tsetAttributes({ tooltipsWordsUsed: currentBlockTooltips });\n\t\t}\n\t}, [currentRelatedPost]);\n\n\treturn (\n\t\t<>\n\t\t\t\n\n\t\t\t\n\t\t\t\t{!relatedPostId && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\t{__(\n\t\t\t\t\t\t\t\t\"Ce bloc n'est relié à aucune question. Rattachez-le à une fiche question dans la barre latérale.\",\n\t\t\t\t\t\t\t\t\"homegrade-blocks__texte-fonctionnel\"\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t

\n\t\t\t\t\t\n\t\t\t\t)}\n\n\t\t\t\t{currentRelatedPost && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t

{decodeEntities(currentRelatedPost.title.rendered)}

\n\t\t\t\t\t\t{currentRelatedPost.content.rendered}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t\n\t);\n}\n","import { registerBlockType } from \"@wordpress/blocks\";\n\nimport \"./style.scss\";\n\nimport Edit from \"./edit\";\nimport metadata from \"./block.json\";\n\nregisterBlockType(metadata.name, {\n\tedit: Edit,\n});\n","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"blocks\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"data\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"htmlEntities\"];","module.exports = window[\"wp\"][\"i18n\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"index\": 0,\n\t\"./style-index\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkmultiblocks\"] = self[\"webpackChunkmultiblocks\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"./style-index\"], () => (__webpack_require__(\"./src/index.js\")))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":["__","InspectorControls","PanelBody","SelectControl","useSelect","useEffect","useState","decodeEntities","OptionsSelectControl","setAttributes","relatedPostId","_ref","relatedQuestionPages","setRelatedQuestionPages","lang","getAdminLanguageFromCookie","c_name","c_value","document","cookie","c_start","indexOf","c_end","length","unescape","substring","handleRelatedPostChange","postId","Number","buildSelectOptions","relatedPossiblePages","options","push","value","label","forEach","page","id","title","rendered","postTaxonomies","select","getCurrentPostAttribute","postMainTaxonomy","getEntityRecord","postParentTaxonomy","parent","query","status","per_page","thematiques","getEntityRecords","currentGeneralThematique","panelTitle","name","createElement","onChange","e","useBlockProps","RawHTML","parseBlockContentForTooltips","editorContent","parser","DOMParser","doc","parseFromString","domTooltipWords","querySelectorAll","filteredTooltipWords","Array","from","tooltipWord","tooltipID","getAttribute","tooltipText","tooltipDefinition","existingTooltip","find","item","Edit","attributes","currentRelatedPost","currentBlockTooltips","content","tooltipsWordsUsed","Fragment","className","registerBlockType","metadata","edit"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAqC;AACuB;AAK7B;AACR;AACqB;AACa;AACC;AAE3C,SAASS,oBAAoBA,CAAC;EAAEC,aAAa;EAAEC;AAAc,CAAC,EAAE;EAAA,IAAAC,IAAA;EAC9E,IAAI,CAACC,oBAAoB,EAAEC,uBAAuB,CAAC,GAAGP,4DAAQ,CAAC,IAAI,CAAC;EAEpE,MAAMQ,IAAI,GAAGC,0BAA0B,CAAC,0BAA0B,CAAC;EAEnE,SAASA,0BAA0BA,CAACC,MAAM,EAAE;IAC3C,IAAIC,OAAO,GAAGC,QAAQ,CAACC,MAAM;MAC5BC,OAAO,GAAGH,OAAO,CAACI,OAAO,CAAC,GAAG,GAAGL,MAAM,GAAG,GAAG,CAAC;IAC9C,IAAII,OAAO,IAAI,CAAC,CAAC,EAAEA,OAAO,GAAGH,OAAO,CAACI,OAAO,CAACL,MAAM,GAAG,GAAG,CAAC;IAC1D,IAAII,OAAO,IAAI,CAAC,CAAC,EAAE;MAClBH,OAAO,GAAG,IAAI;IACf,CAAC,MAAM;MACNG,OAAO,GAAGH,OAAO,CAACI,OAAO,CAAC,GAAG,EAAED,OAAO,CAAC,GAAG,CAAC;MAC3C,IAAIE,KAAK,GAAGL,OAAO,CAACI,OAAO,CAAC,GAAG,EAAED,OAAO,CAAC;MACzC,IAAIE,KAAK,IAAI,CAAC,CAAC,EAAE;QAChBA,KAAK,GAAGL,OAAO,CAACM,MAAM;MACvB;MACAN,OAAO,GAAGO,QAAQ,CAACP,OAAO,CAACQ,SAAS,CAACL,OAAO,EAAEE,KAAK,CAAC,CAAC;IACtD;IACA,OAAOL,OAAO;EACf;EAEA,SAASS,uBAAuBA,CAACC,MAAM,EAAE;IACxClB,aAAa,CAAC;MAAEC,aAAa,EAAEkB,MAAM,CAACD,MAAM;IAAE,CAAC,CAAC;EACjD;EACA,SAASE,kBAAkBA,CAACC,oBAAoB,EAAE;IACjD,IAAIC,OAAO,GAAG,EAAE;IAChB,IAAID,oBAAoB,EAAE;MACzBC,OAAO,CAACC,IAAI,CAAC;QAAEC,KAAK,EAAE,CAAC;QAAEC,KAAK,EAAE;MAAwB,CAAC,CAAC;MAC1DJ,oBAAoB,CAACK,OAAO,CAAEC,IAAI,IAAK;QACtCL,OAAO,CAACC,IAAI,CAAC;UACZC,KAAK,EAAEG,IAAI,CAACC,EAAE;UACdH,KAAK,EAAE3B,wEAAc,CAAC6B,IAAI,CAACE,KAAK,CAACC,QAAQ;QAC1C,CAAC,CAAC;MACH,CAAC,CAAC;IACH,CAAC,MAAM;MACNR,OAAO,CAACC,IAAI,CAAC;QAAEC,KAAK,EAAE,CAAC;QAAEC,KAAK,EAAE;MAA6B,CAAC,CAAC;IAChE;IACA,OAAOH,OAAO;EACf;;EAEA;EACA,IAAIS,cAAc,GAAGpC,0DAAS,CAAEqC,MAAM,IACrCA,MAAM,CAAC,aAAa,CAAC,CAACC,uBAAuB,CAAC,aAAa,CAC5D,CAAC;EACD,IAAIC,gBAAgB,GAAGvC,0DAAS,CAC9BqC,MAAM,IACNA,MAAM,CAAC,MAAM,CAAC,CAACG,eAAe,CAC7B,UAAU,EACV,aAAa,EACbJ,cAAc,CAAC,CAAC,CACjB,CAAC,EACF,CAACA,cAAc,CAChB,CAAC;EACD,IAAIK,kBAAkB,GAAGzC,0DAAS,CAChCqC,MAAM,IAAK;IACX,IAAIE,gBAAgB,IAAIA,gBAAgB,CAACG,MAAM,EAAE;MAChD,OAAOL,MAAM,CAAC,MAAM,CAAC,CAACG,eAAe,CACpC,UAAU,EACV,aAAa,EACbD,gBAAgB,CAACG,MAClB,CAAC;IACF;IACA,OAAO,IAAI;EACZ,CAAC,EACD,CAACH,gBAAgB,CAClB,CAAC;;EAED;EACA,MAAMb,oBAAoB,GAAG1B,0DAAS,CAAEqC,MAAM,IAAK;IAClD,IAAIE,gBAAgB,EAAE;MACrB,IAAII,KAAK,GAAG;QACXC,MAAM,EAAE,SAAS;QACjBC,QAAQ,EAAE,CAAC,CAAC;QACZnC,IAAI,EAAEA,IAAI;QACVoC,WAAW,EAAEP,gBAAgB,GAAGA,gBAAgB,CAACN,EAAE,GAAG;MACvD,CAAC;MACD,OAAOI,MAAM,CAAC,MAAM,CAAC,CAACU,gBAAgB,CAAC,UAAU,EAAE,WAAW,EAAEJ,KAAK,CAAC;IACvE;IACA,OAAO,IAAI;EACZ,CAAC,CAAC;EAEF1C,6DAAS,CAAC,MAAM;IACf,IAAIyB,oBAAoB,EAAE;MACzBjB,uBAAuB,CAACgB,kBAAkB,CAACC,oBAAoB,CAAC,CAAC;IAClE;EACD,CAAC,EAAE,CAACA,oBAAoB,CAAC,CAAC;EAE1B,IAAIsB,wBAAwB,IAAAzC,IAAA,GAAGkC,kBAAkB,aAAlBA,kBAAkB,cAAlBA,kBAAkB,GAAIF,gBAAgB,cAAAhC,IAAA,cAAAA,IAAA,GAAI,IAAI;EAE7E,IAAI0C,UAAU,GAAGR,kBAAkB,GAChC,YAAY,GAAGA,kBAAkB,CAACS,IAAI,GACtCX,gBAAgB,GAChB,YAAY,GAAGA,gBAAgB,CAACW,IAAI,GACpC,IAAI;EAEP,OACCC,iEAAA,CAACvD,sEAAiB,QACjBuD,iEAAA,CAACtD,4DAAS;IACTqC,KAAK,EAAEvC,mDAAE,CAAC,gBAAgB,EAAE,qCAAqC;EAAE,GASlEa,oBAAoB,IACpB2C,iEAAA,CAACpD,kEAAe;IACf+B,KAAK,EAAEmB,UAAW;IAClBpB,KAAK,EAAEvB,aAAc;IACrBqB,OAAO,EAAEnB,oBAAqB;IAC9B4C,QAAQ,EAAGC,CAAC,IAAK/B,uBAAuB,CAAC+B,CAAC;EAAE,CAC5C,CAEQ,CACO,CAAC;AAEtB;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnIqC;AACmB;AAEZ,CAAC;AACtB;AACsB;AACE;AACW;AACA;AAE1D,SAASG,4BAA4BA,CAACC,aAAa,EAAE;EACpD,MAAMC,MAAM,GAAG,IAAIC,SAAS,CAAC,CAAC;EAC9B,MAAMC,GAAG,GAAGF,MAAM,CAACG,eAAe,CAACJ,aAAa,EAAE,WAAW,CAAC;EAC9D,MAAMK,eAAe,GAAGF,GAAG,CAACG,gBAAgB,CAAC,eAAe,CAAC;EAE7D,MAAMC,oBAAoB,GAAG,EAAE;;EAE/B;EACAC,KAAK,CAACC,IAAI,CAACJ,eAAe,CAAC,CAAC/B,OAAO,CAAEoC,WAAW,IAAK;IACpD,MAAMC,SAAS,GAAGD,WAAW,CAACE,YAAY,CAAC,oBAAoB,CAAC;IAChE,MAAMC,WAAW,GAAGH,WAAW,CAACE,YAAY,CAAC,mBAAmB,CAAC;IACjE,MAAME,iBAAiB,GAAGJ,WAAW,CAACE,YAAY,CACjD,yBACD,CAAC;IAED,MAAMG,eAAe,GAAGR,oBAAoB,CAACS,IAAI,CAC/CC,IAAI,IAAKA,IAAI,CAACN,SAAS,KAAKA,SAC9B,CAAC;IAED,IAAI,CAACI,eAAe,EAAE;MACrBR,oBAAoB,CAACpC,IAAI,CAAC;QACzBwC,SAAS;QACTE,WAAW;QACXC;MACD,CAAC,CAAC;IACH;EACD,CAAC,CAAC;EACF,OAAOP,oBAAoB;AAC5B;AAEe,SAASW,IAAIA,CAAC;EAAEC,UAAU;EAAEvE;AAAc,CAAC,EAAE;EAC3D,MAAM;IAAEC;EAAc,CAAC,GAAGsE,UAAU;EAEpC,IAAIC,kBAAkB,GAAG7E,0DAAS,CAAEqC,MAAM,IACzCA,MAAM,CAAC,MAAM,CAAC,CAACG,eAAe,CAAC,UAAU,EAAE,WAAW,EAAElC,aAAa,CACtE,CAAC;EAEDL,6DAAS,CAAC,MAAM;IACf,IAAI4E,kBAAkB,EAAE;MACvB,MAAMC,oBAAoB,GAAGtB,4BAA4B,CACxDqB,kBAAkB,CAACE,OAAO,CAAC5C,QAC5B,CAAC;MACD9B,aAAa,CAAC;QAAE2E,iBAAiB,EAAEF;MAAqB,CAAC,CAAC;IAC3D;EACD,CAAC,EAAE,CAACD,kBAAkB,CAAC,CAAC;EAExB,OACC1B,iEAAA,CAAA8B,wDAAA,QACC9B,iEAAA,CAAC/C,6DAAoB;IACpBE,aAAa,EAAEA,aAAc;IAC7BD,aAAa,EAAEA;EAAc,CAC7B,CAAC,EAEF8C,iEAAA;IAAA,GACKG,sEAAa,CAAC;MACjB4B,SAAS,EAAG;IACb,CAAC;EAAC,GAED,CAAC5E,aAAa,IACd6C,iEAAA,CAAA8B,wDAAA,QACC9B,iEAAA,YACExD,mDAAE,CACF,kGAAkG,EAClG,qCACD,CACE,CACF,CACF,EAEAkF,kBAAkB,IAClB1B,iEAAA,CAAA8B,wDAAA,QACC9B,iEAAA,aAAKhD,wEAAc,CAAC0E,kBAAkB,CAAC3C,KAAK,CAACC,QAAQ,CAAM,CAAC,EAC5DgB,iEAAA,CAACI,uDAAO,QAAEsB,kBAAkB,CAACE,OAAO,CAAC5C,QAAkB,CACtD,CAEK,CACR,CAAC;AAEL;;;;;;;;;;;;;;;;ACxFsD;AAEhC;AAEI;AACU;AAEpCgD,oEAAiB,CAACC,6CAAa,EAAE;EAChCC,IAAI,EAAEV,6CAAIA;AACX,CAAC,CAAC;;;;;;;;;;;ACTF;;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA,+BAA+B,wCAAwC;WACvE;WACA;WACA;WACA;WACA,iBAAiB,qBAAqB;WACtC;WACA;WACA;WACA;WACA,kBAAkB,qBAAqB;WACvC;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC7BA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;WCNA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;;;;;UEnDA;UACA;UACA;UACA;UACA","sources":["webpack://multiblocks/./src/OptionsSelectControl.js","webpack://multiblocks/./src/edit.js","webpack://multiblocks/./src/index.js","webpack://multiblocks/./src/editor.scss","webpack://multiblocks/./src/style.scss","webpack://multiblocks/external window [\"wp\",\"blockEditor\"]","webpack://multiblocks/external window [\"wp\",\"blocks\"]","webpack://multiblocks/external window [\"wp\",\"components\"]","webpack://multiblocks/external window [\"wp\",\"data\"]","webpack://multiblocks/external window [\"wp\",\"element\"]","webpack://multiblocks/external window [\"wp\",\"htmlEntities\"]","webpack://multiblocks/external window [\"wp\",\"i18n\"]","webpack://multiblocks/webpack/bootstrap","webpack://multiblocks/webpack/runtime/chunk loaded","webpack://multiblocks/webpack/runtime/compat get default export","webpack://multiblocks/webpack/runtime/define property getters","webpack://multiblocks/webpack/runtime/hasOwnProperty shorthand","webpack://multiblocks/webpack/runtime/make namespace object","webpack://multiblocks/webpack/runtime/jsonp chunk loading","webpack://multiblocks/webpack/before-startup","webpack://multiblocks/webpack/startup","webpack://multiblocks/webpack/after-startup"],"sourcesContent":["import { __ } from \"@wordpress/i18n\";\r\nimport { InspectorControls } from \"@wordpress/block-editor\";\r\nimport {\r\n\tPanelBody,\r\n\tSelectControl,\r\n\tComboboxControl,\r\n} from \"@wordpress/components\";\r\nimport \"./editor.scss\";\r\nimport { useSelect } from \"@wordpress/data\";\r\nimport { useEffect, useState } from \"@wordpress/element\";\r\nimport { decodeEntities } from \"@wordpress/html-entities\";\r\n\r\nexport default function OptionsSelectControl({ setAttributes, relatedPostId }) {\r\n\tlet [relatedQuestionPages, setRelatedQuestionPages] = useState(null);\r\n\r\n\tconst lang = getAdminLanguageFromCookie(\"wp-wpml_current_language\");\r\n\r\n\tfunction getAdminLanguageFromCookie(c_name) {\r\n\t\tvar c_value = document.cookie,\r\n\t\t\tc_start = c_value.indexOf(\" \" + c_name + \"=\");\r\n\t\tif (c_start == -1) c_start = c_value.indexOf(c_name + \"=\");\r\n\t\tif (c_start == -1) {\r\n\t\t\tc_value = null;\r\n\t\t} else {\r\n\t\t\tc_start = c_value.indexOf(\"=\", c_start) + 1;\r\n\t\t\tvar c_end = c_value.indexOf(\";\", c_start);\r\n\t\t\tif (c_end == -1) {\r\n\t\t\t\tc_end = c_value.length;\r\n\t\t\t}\r\n\t\t\tc_value = unescape(c_value.substring(c_start, c_end));\r\n\t\t}\r\n\t\treturn c_value;\r\n\t}\r\n\r\n\tfunction handleRelatedPostChange(postId) {\r\n\t\tsetAttributes({ relatedPostId: Number(postId) });\r\n\t}\r\n\tfunction buildSelectOptions(relatedPossiblePages) {\r\n\t\tlet options = [];\r\n\t\tif (relatedPossiblePages) {\r\n\t\t\toptions.push({ value: 0, label: \"Selectionnez une page\" });\r\n\t\t\trelatedPossiblePages.forEach((page) => {\r\n\t\t\t\toptions.push({\r\n\t\t\t\t\tvalue: page.id,\r\n\t\t\t\t\tlabel: decodeEntities(page.title.rendered),\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\toptions.push({ value: 0, label: \"Pas encore de questions...\" });\r\n\t\t}\r\n\t\treturn options;\r\n\t}\r\n\r\n\t// GET TAXONOMIES INOFRMATION\r\n\tlet postTaxonomies = useSelect((select) =>\r\n\t\tselect(\"core/editor\").getCurrentPostAttribute(\"thematiques\")\r\n\t);\r\n\tlet postMainTaxonomy = useSelect(\r\n\t\t(select) =>\r\n\t\t\tselect(\"core\").getEntityRecord(\r\n\t\t\t\t\"taxonomy\",\r\n\t\t\t\t\"thematiques\",\r\n\t\t\t\tpostTaxonomies[0]\r\n\t\t\t),\r\n\t\t[postTaxonomies]\r\n\t);\r\n\tlet postParentTaxonomy = useSelect(\r\n\t\t(select) => {\r\n\t\t\tif (postMainTaxonomy && postMainTaxonomy.parent) {\r\n\t\t\t\treturn select(\"core\").getEntityRecord(\r\n\t\t\t\t\t\"taxonomy\",\r\n\t\t\t\t\t\"thematiques\",\r\n\t\t\t\t\tpostMainTaxonomy.parent\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t\treturn null;\r\n\t\t},\r\n\t\t[postMainTaxonomy]\r\n\t);\r\n\r\n\t// GET RELATED POSSIBLE PAGES ACCORDING TO CURRENT TAXONOMY\r\n\tconst relatedPossiblePages = useSelect((select) => {\r\n\t\tif (postMainTaxonomy) {\r\n\t\t\tlet query = {\r\n\t\t\t\tstatus: \"publish\",\r\n\t\t\t\tper_page: -1,\r\n\t\t\t\tlang: lang,\r\n\t\t\t\tthematiques: postMainTaxonomy ? postMainTaxonomy.id : null,\r\n\t\t\t};\r\n\t\t\treturn select(\"core\").getEntityRecords(\"postType\", \"questions\", query);\r\n\t\t}\r\n\t\treturn null;\r\n\t});\r\n\r\n\tuseEffect(() => {\r\n\t\tif (relatedPossiblePages) {\r\n\t\t\tsetRelatedQuestionPages(buildSelectOptions(relatedPossiblePages));\r\n\t\t}\r\n\t}, [relatedPossiblePages]);\r\n\r\n\tlet currentGeneralThematique = postParentTaxonomy ?? postMainTaxonomy ?? null;\r\n\r\n\tlet panelTitle = postParentTaxonomy\r\n\t\t? \"Questions \" + postParentTaxonomy.name\r\n\t\t: postMainTaxonomy\r\n\t\t? \"Questions \" + postMainTaxonomy.name\r\n\t\t: null;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{/* handleRelatedPostChange(e)}\r\n\t\t\t\t/> */}\r\n\r\n\t\t\t\t{relatedQuestionPages && (\r\n\t\t\t\t\t handleRelatedPostChange(e)}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n}\r\n","import { __ } from \"@wordpress/i18n\";\nimport { useBlockProps } from \"@wordpress/block-editor\";\n\nimport { useSelect } from \"@wordpress/data\"; // pour les querry\nimport \"./editor.scss\";\nimport { RawHTML } from \"@wordpress/element\";\nimport { useEffect } from \"@wordpress/element\";\nimport { decodeEntities } from \"@wordpress/html-entities\";\nimport OptionsSelectControl from \"./OptionsSelectControl\";\n\nfunction parseBlockContentForTooltips(editorContent) {\n\tconst parser = new DOMParser();\n\tconst doc = parser.parseFromString(editorContent, \"text/html\");\n\tconst domTooltipWords = doc.querySelectorAll(\".tooltip-word\");\n\n\tconst filteredTooltipWords = [];\n\n\t// Looping over tooltip words and filtering duplicates\n\tArray.from(domTooltipWords).forEach((tooltipWord) => {\n\t\tconst tooltipID = tooltipWord.getAttribute(\"data-definition-id\");\n\t\tconst tooltipText = tooltipWord.getAttribute(\"data-tooltip-word\");\n\t\tconst tooltipDefinition = tooltipWord.getAttribute(\n\t\t\t\"data-tooltip-definition\"\n\t\t);\n\n\t\tconst existingTooltip = filteredTooltipWords.find(\n\t\t\t(item) => item.tooltipID === tooltipID\n\t\t);\n\n\t\tif (!existingTooltip) {\n\t\t\tfilteredTooltipWords.push({\n\t\t\t\ttooltipID,\n\t\t\t\ttooltipText,\n\t\t\t\ttooltipDefinition,\n\t\t\t});\n\t\t}\n\t});\n\treturn filteredTooltipWords;\n}\n\nexport default function Edit({ attributes, setAttributes }) {\n\tconst { relatedPostId } = attributes;\n\n\tlet currentRelatedPost = useSelect((select) =>\n\t\tselect(\"core\").getEntityRecord(\"postType\", \"questions\", relatedPostId)\n\t);\n\n\tuseEffect(() => {\n\t\tif (currentRelatedPost) {\n\t\t\tconst currentBlockTooltips = parseBlockContentForTooltips(\n\t\t\t\tcurrentRelatedPost.content.rendered\n\t\t\t);\n\t\t\tsetAttributes({ tooltipsWordsUsed: currentBlockTooltips });\n\t\t}\n\t}, [currentRelatedPost]);\n\n\treturn (\n\t\t<>\n\t\t\t\n\n\t\t\t\n\t\t\t\t{!relatedPostId && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t

\n\t\t\t\t\t\t\t{__(\n\t\t\t\t\t\t\t\t\"Ce bloc n'est relié à aucune question. Rattachez-le à une fiche question dans la barre latérale.\",\n\t\t\t\t\t\t\t\t\"homegrade-blocks__texte-fonctionnel\"\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t

\n\t\t\t\t\t\n\t\t\t\t)}\n\n\t\t\t\t{currentRelatedPost && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t

{decodeEntities(currentRelatedPost.title.rendered)}

\n\t\t\t\t\t\t{currentRelatedPost.content.rendered}\n\t\t\t\t\t\n\t\t\t\t)}\n\t\t\t\n\t\t\n\t);\n}\n","import { registerBlockType } from \"@wordpress/blocks\";\n\nimport \"./style.scss\";\n\nimport Edit from \"./edit\";\nimport metadata from \"./block.json\";\n\nregisterBlockType(metadata.name, {\n\tedit: Edit,\n});\n","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"blocks\"];","module.exports = window[\"wp\"][\"components\"];","module.exports = window[\"wp\"][\"data\"];","module.exports = window[\"wp\"][\"element\"];","module.exports = window[\"wp\"][\"htmlEntities\"];","module.exports = window[\"wp\"][\"i18n\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"index\": 0,\n\t\"./style-index\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkmultiblocks\"] = self[\"webpackChunkmultiblocks\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"./style-index\"], () => (__webpack_require__(\"./src/index.js\")))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":["__","InspectorControls","PanelBody","SelectControl","ComboboxControl","useSelect","useEffect","useState","decodeEntities","OptionsSelectControl","setAttributes","relatedPostId","_ref","relatedQuestionPages","setRelatedQuestionPages","lang","getAdminLanguageFromCookie","c_name","c_value","document","cookie","c_start","indexOf","c_end","length","unescape","substring","handleRelatedPostChange","postId","Number","buildSelectOptions","relatedPossiblePages","options","push","value","label","forEach","page","id","title","rendered","postTaxonomies","select","getCurrentPostAttribute","postMainTaxonomy","getEntityRecord","postParentTaxonomy","parent","query","status","per_page","thematiques","getEntityRecords","currentGeneralThematique","panelTitle","name","createElement","onChange","e","useBlockProps","RawHTML","parseBlockContentForTooltips","editorContent","parser","DOMParser","doc","parseFromString","domTooltipWords","querySelectorAll","filteredTooltipWords","Array","from","tooltipWord","tooltipID","getAttribute","tooltipText","tooltipDefinition","existingTooltip","find","item","Edit","attributes","currentRelatedPost","currentBlockTooltips","content","tooltipsWordsUsed","Fragment","className","registerBlockType","metadata","edit"],"sourceRoot":""} \ No newline at end of file diff --git a/blocks/questions-container/src/OptionsSelectControl.js b/blocks/questions-container/src/OptionsSelectControl.js index dee38e8..9f0bafd 100644 --- a/blocks/questions-container/src/OptionsSelectControl.js +++ b/blocks/questions-container/src/OptionsSelectControl.js @@ -1,6 +1,10 @@ import { __ } from "@wordpress/i18n"; import { InspectorControls } from "@wordpress/block-editor"; -import { PanelBody, SelectControl } from "@wordpress/components"; +import { + PanelBody, + SelectControl, + ComboboxControl, +} from "@wordpress/components"; import "./editor.scss"; import { useSelect } from "@wordpress/data"; import { useEffect, useState } from "@wordpress/element"; @@ -34,7 +38,7 @@ export default function OptionsSelectControl({ setAttributes, relatedPostId }) { function buildSelectOptions(relatedPossiblePages) { let options = []; if (relatedPossiblePages) { - options.push({ value: 0, label: "Select a page" }); + options.push({ value: 0, label: "Selectionnez une page" }); relatedPossiblePages.forEach((page) => { options.push({ value: page.id, @@ -107,12 +111,21 @@ export default function OptionsSelectControl({ setAttributes, relatedPostId }) { - handleRelatedPostChange(e)} - /> + /> */} + + {relatedQuestionPages && ( + handleRelatedPostChange(e)} + /> + )} );