From 0a53199b3d5078f19a783ae28e1ada5ca6426c36 Mon Sep 17 00:00:00 2001 From: Antoine M Date: Wed, 10 Jul 2024 13:18:52 +0200 Subject: [PATCH] handling blok redhydratation --- blocks/vocabulaire-summary/build/block.json | 4 + .../vocabulaire-summary/build/index.asset.php | 2 +- blocks/vocabulaire-summary/build/index.js | 81 ++++++-------- blocks/vocabulaire-summary/build/index.js.map | 2 +- blocks/vocabulaire-summary/build/render.php | 5 - .../vocabulaire-summary/build/view.asset.php | 1 - blocks/vocabulaire-summary/build/view.js | 54 --------- blocks/vocabulaire-summary/build/view.js.map | 1 - blocks/vocabulaire-summary/src/block.json | 4 + blocks/vocabulaire-summary/src/edit.js | 104 +++++++++--------- blocks/vocabulaire-summary/src/render.php | 5 - 11 files changed, 97 insertions(+), 166 deletions(-) delete mode 100644 blocks/vocabulaire-summary/build/view.asset.php delete mode 100644 blocks/vocabulaire-summary/build/view.js delete mode 100644 blocks/vocabulaire-summary/build/view.js.map diff --git a/blocks/vocabulaire-summary/build/block.json b/blocks/vocabulaire-summary/build/block.json index ab775b5..9a93b19 100644 --- a/blocks/vocabulaire-summary/build/block.json +++ b/blocks/vocabulaire-summary/build/block.json @@ -23,6 +23,10 @@ "tooltipWords": { "type": "array", "default": [] + }, + "vocabulairesPostsIds": { + "type": "array", + "default": [] } } } \ No newline at end of file diff --git a/blocks/vocabulaire-summary/build/index.asset.php b/blocks/vocabulaire-summary/build/index.asset.php index 661c24e..f36a5c7 100644 --- a/blocks/vocabulaire-summary/build/index.asset.php +++ b/blocks/vocabulaire-summary/build/index.asset.php @@ -1 +1 @@ - array('react', 'wp-block-editor', 'wp-blocks', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n'), 'version' => '5051d822b38f2dd8e9ad'); + array('react', 'wp-block-editor', 'wp-blocks', 'wp-core-data', 'wp-data', 'wp-element', 'wp-i18n'), 'version' => '26852ebc6e130b4f3af8'); diff --git a/blocks/vocabulaire-summary/build/index.js b/blocks/vocabulaire-summary/build/index.js index 3c6ef57..5b463fb 100644 --- a/blocks/vocabulaire-summary/build/index.js +++ b/blocks/vocabulaire-summary/build/index.js @@ -100,46 +100,8 @@ function Edit({ let { tooltipWords } = attributes; - console.log("tooltipWords", tooltipWords); + console.log("tooltipWords ATTRIBUTES", tooltipWords); let [hasFetchedDatas, setHasFetchedDatas] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useState)(false); - function CurrentThematiqueDisplay({ - id - }) { - const { - record, - isResolving - } = (0,_wordpress_core_data__WEBPACK_IMPORTED_MODULE_4__.useEntityRecord)("taxonomy", "thematiques", id); - if (isResolving) { - return "Loading..."; - } - if (!record) { - return "no post..."; - } - return record.name; - } - function getCurrentThematique(id) { - const { - record, - isResolving - } = (0,_wordpress_core_data__WEBPACK_IMPORTED_MODULE_4__.useEntityRecord)("taxonomy", "thematiques", id); - if (isResolving) { - return "Loading..."; - } - if (!record) { - return "no post..."; - } - return record; - } - function filterToolTipsArray(tooltipWords) { - const filteredTooltipWords = []; - tooltipWords.forEach(tooltipWord => { - const existingTooltip = filteredTooltipWords.find(item => item.tooltipID === tooltipWord.tooltipID); - if (!existingTooltip) { - filteredTooltipWords.push(tooltipWord); - } - }); - return filteredTooltipWords; - } function parseContentTooltips(editorContent) { const parser = new DOMParser(); const doc = parser.parseFromString(editorContent, "text/html"); @@ -170,13 +132,32 @@ function Edit({ }); return blocksTooltipWords; } - function buildTooltipWords() { + function filterToolTipsArray(tooltipWords) { + const filteredTooltipWords = Array.from(new Map(tooltipWords.map(tooltipWord => [tooltipWord.tooltipID, tooltipWord])).values()); + return filteredTooltipWords; + // const filteredTooltipWords = []; + + // tooltipWords.forEach((tooltipWord) => { + // const existingTooltip = filteredTooltipWords.find( + // (item) => item.tooltipID === tooltipWord.tooltipID, + // ); + + // if (!existingTooltip) { + // filteredTooltipWords.push(tooltipWord); + // } + // }); + } + function parseTooltipWords() { let newParsedTooltipWords = parseContentTooltips(currentPost.content); let newBlocksTooltipWords = parseBlocksTooltips(currentBlocks); let allTooltipWords = [...newParsedTooltipWords, ...newBlocksTooltipWords]; const filteredTooltipWords = filterToolTipsArray(allTooltipWords); return filteredTooltipWords; } + function buildTooltipWordsIdArray(tooltipsArray) { + const tooltipWordsIds = tooltipsArray.map(tooltipWord => tooltipWord.tooltipID); + return tooltipWordsIds; + } function compareHasNewVocabularyWord(previousWords, newWords) { return !(JSON.stringify(previousWords) === JSON.stringify(newWords)); } @@ -185,11 +166,21 @@ function Edit({ const currentTaxonomies = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_6__.useSelect)(select => select("core/editor").getCurrentPostAttribute("thematiques")); let currentThematique = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_6__.useSelect)(select => select("core").getEntityRecord("taxonomy", "thematiques", currentTaxonomies[0] // or currentPost.thematiques[0] works as well ), [currentTaxonomies]); + const tooltipWordsIds = buildTooltipWordsIdArray(tooltipWords); + const vocabulairePosts = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_6__.useSelect)(select => { + if (!tooltipWordsIds.length) return []; + return select("core").getEntityRecords("postType", "vocabulaire", { + per_page: -1, + include: tooltipWordsIds + }); + }, [tooltipWordsIds]); + console.log("vocabulairePosts", vocabulairePosts); const currentLang = (0,_utilities_js__WEBPACK_IMPORTED_MODULE_8__.getAdminLanguageFromCookie)("wp-wpml_current_language"); const localBlockName = currentLang === "fr" ? "Vocabulaire" : "Woordenschat"; (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_5__.useEffect)(() => { if (currentPost.content && currentBlocks) { - const newTooltipWords = buildTooltipWords(); + const newTooltipWords = parseTooltipWords(); + const newTooltipWordsDatas = buildTooltipWordsIdArray(newTooltipWords); if (compareHasNewVocabularyWord(tooltipWords, newTooltipWords)) { setAttributes({ tooltipWords: newTooltipWords @@ -203,9 +194,9 @@ function Edit({ }) }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("h2", { className: "homegrade-blocks-vocabulaire-summary__title" - }, localBlockName + " — ", currentThematique && currentThematique.name ? currentThematique.name : "...pas de thématique"), tooltipWords && tooltipWords.map(elem => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("details", { + }, localBlockName + " — ", currentThematique && currentThematique.name ? currentThematique.name : "...pas de thématique"), vocabulairePosts && vocabulairePosts.map(elem => (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("details", { className: "question" - }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("summary", null, elem.tooltipText, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { + }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("summary", null, elem.title.rendered, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("div", { className: "open-close-icon" }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("img", { src: _img_chevron_down_svg__WEBPACK_IMPORTED_MODULE_7__["default"], @@ -217,7 +208,7 @@ function Edit({ class: " homegrade-dynamic-accordeon__content" }, (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)("p", { className: "homegrade-blocks-vocabulaire-summary__content" - }, elem.tooltipDefinition)))))); + }, elem.acf.definition)))))); } /***/ }), @@ -381,7 +372,7 @@ module.exports = window["wp"]["i18n"]; \************************/ /***/ ((module) => { -module.exports = /*#__PURE__*/JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"homegrade-content-blocks/vocabulaire-summary","version":"0.1.0","title":"Vocabulaire de la fiche","category":"homegrade-blocks","icon":{"foreground":"#DF1E1E","src":"testimonial"},"description":"Pour afficher tout le vocabulaire contenu dans la fiche","supports":{"html":false,"multiple":false},"textdomain":"homegrade-blocks","editorScript":"file:./index.js","editorStyle":"file:./index.css","style":"file:./style-index.css","render":"file:./render.php","attributes":{"tooltipWords":{"type":"array","default":[]}}}'); +module.exports = /*#__PURE__*/JSON.parse('{"$schema":"https://schemas.wp.org/trunk/block.json","apiVersion":2,"name":"homegrade-content-blocks/vocabulaire-summary","version":"0.1.0","title":"Vocabulaire de la fiche","category":"homegrade-blocks","icon":{"foreground":"#DF1E1E","src":"testimonial"},"description":"Pour afficher tout le vocabulaire contenu dans la fiche","supports":{"html":false,"multiple":false},"textdomain":"homegrade-blocks","editorScript":"file:./index.js","editorStyle":"file:./index.css","style":"file:./style-index.css","render":"file:./render.php","attributes":{"tooltipWords":{"type":"array","default":[]},"vocabulairesPostsIds":{"type":"array","default":[]}}}'); /***/ }) diff --git a/blocks/vocabulaire-summary/build/index.js.map b/blocks/vocabulaire-summary/build/index.js.map index 445019b..854563e 100644 --- a/blocks/vocabulaire-summary/build/index.js.map +++ b/blocks/vocabulaire-summary/build/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","mappings":";;;;;;;;;;;;;;;;AAAO,SAASA,uBAAuBA,CAACC,eAAe,EAAE;EACxD,QAAQA,eAAe;IACtB,KAAK,SAAS;IACd,KAAK,WAAW;MACf,OAAO,oBAAoB;IAE5B,KAAK,YAAY;IACjB,KAAK,sBAAsB;MAC1B,OAAO,yBAAyB;IAEjC,KAAK,WAAW;IAChB,KAAK,cAAc;MAClB,OAAO,qBAAqB;IAE7B,KAAK,UAAU;IACf,KAAK,WAAW;MACf,OAAO,oBAAoB;IAE5B,KAAK,YAAY;IACjB,KAAK,mBAAmB;MACvB,OAAO,2BAA2B;IAEnC,KAAK,UAAU;MACd,OAAO,UAAU;EACnB;AACD;AAEO,SAASC,WAAWA,CAACC,MAAM,EAAE;EACnC,OAAOA,MAAM,CACXC,SAAS,CAAC,KAAK,CAAC,CAChBC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAC/BC,WAAW,CAAC,CAAC,CACbC,KAAK,CAAC,GAAG,CAAC,CACVC,IAAI,CAAC,GAAG,CAAC;AACZ;AAEO,SAASC,0BAA0BA,CAACC,MAAM,EAAE;EAClD,IAAIC,OAAO,GAAGC,QAAQ,CAACC,MAAM;IAC5BC,OAAO,GAAGH,OAAO,CAACI,OAAO,CAAC,GAAG,GAAGL,MAAM,GAAG,GAAG,CAAC;EAC9C,IAAII,OAAO,IAAI,CAAC,CAAC,EAAEA,OAAO,GAAGH,OAAO,CAACI,OAAO,CAACL,MAAM,GAAG,GAAG,CAAC;EAC1D,IAAII,OAAO,IAAI,CAAC,CAAC,EAAE;IAClBH,OAAO,GAAG,IAAI;EACf,CAAC,MAAM;IACNG,OAAO,GAAGH,OAAO,CAACI,OAAO,CAAC,GAAG,EAAED,OAAO,CAAC,GAAG,CAAC;IAC3C,IAAIE,KAAK,GAAGL,OAAO,CAACI,OAAO,CAAC,GAAG,EAAED,OAAO,CAAC;IACzC,IAAIE,KAAK,IAAI,CAAC,CAAC,EAAE;MAChBA,KAAK,GAAGL,OAAO,CAACM,MAAM;IACvB;IACAN,OAAO,GAAGO,QAAQ,CAACP,OAAO,CAACQ,SAAS,CAACL,OAAO,EAAEE,KAAK,CAAC,CAAC;EACtD;EACA,OAAOL,OAAO;AACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnDqC;AACmB;AACjC;AACgC;AACT;AACW;AACV;AACM;AACJ;AACe;AAEjD,SAASkB,IAAIA,CAAC;EAAEC,UAAU;EAAEC;AAAc,CAAC,EAAE;EAC3D,IAAI;IAAEC;EAAa,CAAC,GAAGF,UAAU;EAEjCG,OAAO,CAACC,GAAG,CAAC,cAAc,EAAEF,YAAY,CAAC;EACzC,IAAI,CAACG,eAAe,EAAEC,kBAAkB,CAAC,GAAGb,4DAAQ,CAAC,KAAK,CAAC;EAE3D,SAASc,wBAAwBA,CAAC;IAAEC;EAAG,CAAC,EAAE;IACzC,MAAM;MAAEC,MAAM;MAAEC;IAAY,CAAC,GAAGlB,qEAAe,CAC9C,UAAU,EACV,aAAa,EACbgB,EACD,CAAC;IAED,IAAIE,WAAW,EAAE;MAChB,OAAO,YAAY;IACpB;IACA,IAAI,CAACD,MAAM,EAAE;MACZ,OAAO,YAAY;IACpB;IACA,OAAOA,MAAM,CAACE,IAAI;EACnB;EACA,SAASC,oBAAoBA,CAACJ,EAAE,EAAE;IACjC,MAAM;MAAEC,MAAM;MAAEC;IAAY,CAAC,GAAGlB,qEAAe,CAC9C,UAAU,EACV,aAAa,EACbgB,EACD,CAAC;IAED,IAAIE,WAAW,EAAE;MAChB,OAAO,YAAY;IACpB;IACA,IAAI,CAACD,MAAM,EAAE;MACZ,OAAO,YAAY;IACpB;IACA,OAAOA,MAAM;EACd;EAEA,SAASI,mBAAmBA,CAACX,YAAY,EAAE;IAC1C,MAAMY,oBAAoB,GAAG,EAAE;IAE/BZ,YAAY,CAACa,OAAO,CAAEC,WAAW,IAAK;MACrC,MAAMC,eAAe,GAAGH,oBAAoB,CAACI,IAAI,CAC/CC,IAAI,IAAKA,IAAI,CAACC,SAAS,KAAKJ,WAAW,CAACI,SAC1C,CAAC;MAED,IAAI,CAACH,eAAe,EAAE;QACrBH,oBAAoB,CAACO,IAAI,CAACL,WAAW,CAAC;MACvC;IACD,CAAC,CAAC;IAEF,OAAOF,oBAAoB;EAC5B;EACA,SAASQ,oBAAoBA,CAACC,aAAa,EAAE;IAC5C,MAAMC,MAAM,GAAG,IAAIC,SAAS,CAAC,CAAC;IAC9B,MAAMC,GAAG,GAAGF,MAAM,CAACG,eAAe,CAACJ,aAAa,EAAE,WAAW,CAAC;IAC9D,MAAMK,eAAe,GAAGF,GAAG,CAACG,gBAAgB,CAAC,eAAe,CAAC;IAE7D,MAAM3B,YAAY,GAAG,EAAE;;IAEvB;IACA4B,KAAK,CAACC,IAAI,CAACH,eAAe,CAAC,CAACb,OAAO,CAAEC,WAAW,IAAK;MACpD,MAAMI,SAAS,GAAGJ,WAAW,CAACgB,YAAY,CAAC,oBAAoB,CAAC;MAChE,MAAMC,WAAW,GAAGjB,WAAW,CAACgB,YAAY,CAAC,mBAAmB,CAAC;MACjE,MAAME,iBAAiB,GAAGlB,WAAW,CAACgB,YAAY,CACjD,yBACD,CAAC;MAED9B,YAAY,CAACmB,IAAI,CAAC;QACjBD,SAAS;QACTa,WAAW;QACXC;MACD,CAAC,CAAC;IACH,CAAC,CAAC;IACF,OAAOhC,YAAY;EACpB;EACA,SAASiC,mBAAmBA,CAACC,aAAa,EAAE;IAC3C,MAAMC,kBAAkB,GAAG,EAAE;IAC7BD,aAAa,CAACrB,OAAO,CAAEuB,KAAK,IAAK;MAChC,IACC,CAACA,KAAK,CAAC3B,IAAI,KAAK,8CAA8C,IAC7D2B,KAAK,CAAC3B,IAAI,KAAK,iDAAiD,KACjE2B,KAAK,EAAEtC,UAAU,EAAEuC,iBAAiB,EAAEpD,MAAM,GAAG,CAAC,EAC/C;QACDmD,KAAK,CAACtC,UAAU,CAACuC,iBAAiB,CAACxB,OAAO,CAAEC,WAAW,IAAK;UAC3DqB,kBAAkB,CAAChB,IAAI,CAACL,WAAW,CAAC;QACrC,CAAC,CAAC;MACH;IACD,CAAC,CAAC;IAEF,OAAOqB,kBAAkB;EAC1B;EACA,SAASG,iBAAiBA,CAAA,EAAG;IAC5B,IAAIC,qBAAqB,GAAGnB,oBAAoB,CAACoB,WAAW,CAACC,OAAO,CAAC;IACrE,IAAIC,qBAAqB,GAAGT,mBAAmB,CAACC,aAAa,CAAC;IAC9D,IAAIS,eAAe,GAAG,CAAC,GAAGJ,qBAAqB,EAAE,GAAGG,qBAAqB,CAAC;IAC1E,MAAM9B,oBAAoB,GAAGD,mBAAmB,CAACgC,eAAe,CAAC;IACjE,OAAO/B,oBAAoB;EAC5B;EAEA,SAASgC,2BAA2BA,CAACC,aAAa,EAAEC,QAAQ,EAAE;IAC7D,OAAO,EAAEC,IAAI,CAACC,SAAS,CAACH,aAAa,CAAC,KAAKE,IAAI,CAACC,SAAS,CAACF,QAAQ,CAAC,CAAC;EACrE;EAEA,MAAMN,WAAW,GAAGhD,0DAAS,CAAEyD,MAAM,IACpCA,MAAM,CAAC,aAAa,CAAC,CAACC,cAAc,CAAC,CACtC,CAAC;EAED,MAAMhB,aAAa,GAAG1C,0DAAS,CAAEyD,MAAM,IACtCA,MAAM,CAAC,mBAAmB,CAAC,CAACE,SAAS,CAAC,CACvC,CAAC;EAED,MAAMC,iBAAiB,GAAG5D,0DAAS,CAAEyD,MAAM,IAC1CA,MAAM,CAAC,aAAa,CAAC,CAACI,uBAAuB,CAAC,aAAa,CAC5D,CAAC;EAED,IAAIC,iBAAiB,GAAG9D,0DAAS,CAC/ByD,MAAM,IACNA,MAAM,CAAC,MAAM,CAAC,CAACM,eAAe,CAC7B,UAAU,EACV,aAAa,EACbH,iBAAiB,CAAC,CAAC,CAAC,CAAE;EACvB,CAAC,EACF,CAACA,iBAAiB,CACnB,CAAC;EAED,MAAMI,WAAW,GAAG/E,yEAA0B,CAAC,0BAA0B,CAAC;EAC1E,MAAMgF,cAAc,GAAGD,WAAW,KAAK,IAAI,GAAG,aAAa,GAAG,cAAc;EAC5E9D,6DAAS,CAAC,MAAM;IACf,IAAI8C,WAAW,CAACC,OAAO,IAAIP,aAAa,EAAE;MACzC,MAAMwB,eAAe,GAAGpB,iBAAiB,CAAC,CAAC;MAE3C,IAAIM,2BAA2B,CAAC5C,YAAY,EAAE0D,eAAe,CAAC,EAAE;QAC/D3D,aAAa,CAAC;UAAEC,YAAY,EAAE0D;QAAgB,CAAC,CAAC;MACjD;IACD;EACD,CAAC,EAAE,CAAClB,WAAW,EAAEN,aAAa,CAAC,CAAC;EAEhC,OACCyB,oDAAA;IAAA,GACKtE,sEAAa,CAAC;MACjBuE,SAAS,EAAG;IACb,CAAC;EAAC,GAEFD,oDAAA;IAAIC,SAAS,EAAC;EAA6C,GACzDH,cAAc,GAAG,KAAK,EACtBH,iBAAiB,IAAIA,iBAAiB,CAAC7C,IAAI,GACzC6C,iBAAiB,CAAC7C,IAAI,GACtB,sBACA,CAAC,EACJT,YAAY,IACZA,YAAY,CAAC6D,GAAG,CAAEC,IAAI,IACrBH,oDAAA;IAASC,SAAS,EAAC;EAAU,GAC5BD,oDAAA,kBACEG,IAAI,CAAC/B,WAAW,EACjB4B,oDAAA;IAAKC,SAAS,EAAC;EAAiB,GAC/BD,oDAAA;IAAKI,GAAG,EAAEnE,6DAAY;IAACgE,SAAS,EAAC,gBAAgB;IAACI,GAAG,EAAC;EAAE,CAAE,CACtD,CACG,CAAC,EACVL,oDAAA;IAAKC,SAAS,EAAC;EAAoG,GAClHD,oDAAA;IAAKM,KAAK,EAAC;EAAuC,GACjDN,oDAAA;IAAGC,SAAS,EAAC;EAA+C,GAC1DE,IAAI,CAAC9B,iBACJ,CACC,CACD,CACG,CACT,CACM,CAAC;AAEZ;;;;;;;;;;;;;;;;ACpLsD;AAChC;AAEI;AAC1B;AACoC;AAEpCkC,oEAAiB,CAACC,6CAAa,EAAE;EAChCC,IAAI,EAAEvE,6CAAIA;AACX,CAAC,CAAC;;;;;;;;;;;ACTF;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;ACAA;AACA,sBAAsB,sEAAsE,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,iCAAiC,kBAAkB;AAC3Q;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AAC4C;AAC5C,iEAAe,oBAAoB,wbAAwb;;;;;;;;;;ACnB3d;;;;;;;;;;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,kBAAkB,qBAAqB;WACvC;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC3BA;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,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;;;;;UEjDA;UACA;UACA;UACA;UACA","sources":["webpack://vocabulaire-summary/../utilities.js","webpack://vocabulaire-summary/./src/edit.js","webpack://vocabulaire-summary/./src/index.js","webpack://vocabulaire-summary/./src/editor.scss","webpack://vocabulaire-summary/./src/style.scss","webpack://vocabulaire-summary/./src/img/chevron_down.svg","webpack://vocabulaire-summary/external window \"React\"","webpack://vocabulaire-summary/external window [\"wp\",\"blockEditor\"]","webpack://vocabulaire-summary/external window [\"wp\",\"blocks\"]","webpack://vocabulaire-summary/external window [\"wp\",\"coreData\"]","webpack://vocabulaire-summary/external window [\"wp\",\"data\"]","webpack://vocabulaire-summary/external window [\"wp\",\"element\"]","webpack://vocabulaire-summary/external window [\"wp\",\"i18n\"]","webpack://vocabulaire-summary/webpack/bootstrap","webpack://vocabulaire-summary/webpack/runtime/chunk loaded","webpack://vocabulaire-summary/webpack/runtime/compat get default export","webpack://vocabulaire-summary/webpack/runtime/define property getters","webpack://vocabulaire-summary/webpack/runtime/hasOwnProperty shorthand","webpack://vocabulaire-summary/webpack/runtime/make namespace object","webpack://vocabulaire-summary/webpack/runtime/jsonp chunk loading","webpack://vocabulaire-summary/webpack/before-startup","webpack://vocabulaire-summary/webpack/startup","webpack://vocabulaire-summary/webpack/after-startup"],"sourcesContent":["export function getThematiqueFamilySlug(thematique_slug) {\r\n\tswitch (thematique_slug) {\r\n\t\tcase \"energie\":\r\n\t\tcase \"urbanisme\":\r\n\t\t\treturn \"energies-urbanisme\";\r\n\r\n\t\tcase \"acoustique\":\r\n\t\tcase \"petites-coproprietes\":\r\n\t\t\treturn \"acoustique-coproprietes\";\r\n\r\n\t\tcase \"isolation\":\r\n\t\tcase \"au-quotidien\":\r\n\t\t\treturn \"isolation-quotidien\";\r\n\r\n\t\tcase \"energies\":\r\n\t\tcase \"urbanisme\":\r\n\t\t\treturn \"energies-urbanisme\";\r\n\r\n\t\tcase \"patrimoine\":\r\n\t\tcase \"sante-et-securite\":\r\n\t\t\treturn \"patrimoine-sante-securite\";\r\n\r\n\t\tcase \"location\":\r\n\t\t\treturn \"location\";\r\n\t}\r\n}\r\n\r\nexport function cleanString(string) {\r\n\treturn string\r\n\t\t.normalize(\"NFD\")\r\n\t\t.replace(/[\\u0300-\\u036f]/g, \"\")\r\n\t\t.toLowerCase()\r\n\t\t.split(\" \")\r\n\t\t.join(\"-\");\r\n}\r\n\r\nexport function getAdminLanguageFromCookie(c_name) {\r\n\tvar c_value = document.cookie,\r\n\t\tc_start = c_value.indexOf(\" \" + c_name + \"=\");\r\n\tif (c_start == -1) c_start = c_value.indexOf(c_name + \"=\");\r\n\tif (c_start == -1) {\r\n\t\tc_value = null;\r\n\t} else {\r\n\t\tc_start = c_value.indexOf(\"=\", c_start) + 1;\r\n\t\tvar c_end = c_value.indexOf(\";\", c_start);\r\n\t\tif (c_end == -1) {\r\n\t\t\tc_end = c_value.length;\r\n\t\t}\r\n\t\tc_value = unescape(c_value.substring(c_start, c_end));\r\n\t}\r\n\treturn c_value;\r\n}\r\n","import { __ } from \"@wordpress/i18n\";\nimport { useBlockProps } from \"@wordpress/block-editor\";\nimport \"./editor.scss\";\nimport { useEntityRecord } from \"@wordpress/core-data\";\nimport { useState } from \"@wordpress/element\";\nimport { useSelect, useDispatch } from \"@wordpress/data\";\nimport { useEffect } from \"@wordpress/element\";\nimport { useEntityProp } from \"@wordpress/core-data\";\nimport chevronDown from \"./img/chevron_down.svg\";\nimport { getAdminLanguageFromCookie } from \"../../utilities.js\";\n\nexport default function Edit({ attributes, setAttributes }) {\n\tlet { tooltipWords } = attributes;\n\n\tconsole.log(\"tooltipWords\", tooltipWords);\n\tlet [hasFetchedDatas, setHasFetchedDatas] = useState(false);\n\n\tfunction CurrentThematiqueDisplay({ id }) {\n\t\tconst { record, isResolving } = useEntityRecord(\n\t\t\t\"taxonomy\",\n\t\t\t\"thematiques\",\n\t\t\tid,\n\t\t);\n\n\t\tif (isResolving) {\n\t\t\treturn \"Loading...\";\n\t\t}\n\t\tif (!record) {\n\t\t\treturn \"no post...\";\n\t\t}\n\t\treturn record.name;\n\t}\n\tfunction getCurrentThematique(id) {\n\t\tconst { record, isResolving } = useEntityRecord(\n\t\t\t\"taxonomy\",\n\t\t\t\"thematiques\",\n\t\t\tid,\n\t\t);\n\n\t\tif (isResolving) {\n\t\t\treturn \"Loading...\";\n\t\t}\n\t\tif (!record) {\n\t\t\treturn \"no post...\";\n\t\t}\n\t\treturn record;\n\t}\n\n\tfunction filterToolTipsArray(tooltipWords) {\n\t\tconst filteredTooltipWords = [];\n\n\t\ttooltipWords.forEach((tooltipWord) => {\n\t\t\tconst existingTooltip = filteredTooltipWords.find(\n\t\t\t\t(item) => item.tooltipID === tooltipWord.tooltipID,\n\t\t\t);\n\n\t\t\tif (!existingTooltip) {\n\t\t\t\tfilteredTooltipWords.push(tooltipWord);\n\t\t\t}\n\t\t});\n\n\t\treturn filteredTooltipWords;\n\t}\n\tfunction parseContentTooltips(editorContent) {\n\t\tconst parser = new DOMParser();\n\t\tconst doc = parser.parseFromString(editorContent, \"text/html\");\n\t\tconst domTooltipWords = doc.querySelectorAll(\".tooltip-word\");\n\n\t\tconst tooltipWords = [];\n\n\t\t// Looping over tooltip words and filtering duplicates\n\t\tArray.from(domTooltipWords).forEach((tooltipWord) => {\n\t\t\tconst tooltipID = tooltipWord.getAttribute(\"data-definition-id\");\n\t\t\tconst tooltipText = tooltipWord.getAttribute(\"data-tooltip-word\");\n\t\t\tconst tooltipDefinition = tooltipWord.getAttribute(\n\t\t\t\t\"data-tooltip-definition\",\n\t\t\t);\n\n\t\t\ttooltipWords.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\treturn tooltipWords;\n\t}\n\tfunction parseBlocksTooltips(currentBlocks) {\n\t\tconst blocksTooltipWords = [];\n\t\tcurrentBlocks.forEach((block) => {\n\t\t\tif (\n\t\t\t\t(block.name === \"homegrade-content-blocks/questions-container\" ||\n\t\t\t\t\tblock.name === \"homegrade-content-blocks/post-content-container\") &&\n\t\t\t\tblock?.attributes?.tooltipsWordsUsed?.length > 0\n\t\t\t) {\n\t\t\t\tblock.attributes.tooltipsWordsUsed.forEach((tooltipWord) => {\n\t\t\t\t\tblocksTooltipWords.push(tooltipWord);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\treturn blocksTooltipWords;\n\t}\n\tfunction buildTooltipWords() {\n\t\tlet newParsedTooltipWords = parseContentTooltips(currentPost.content);\n\t\tlet newBlocksTooltipWords = parseBlocksTooltips(currentBlocks);\n\t\tlet allTooltipWords = [...newParsedTooltipWords, ...newBlocksTooltipWords];\n\t\tconst filteredTooltipWords = filterToolTipsArray(allTooltipWords);\n\t\treturn filteredTooltipWords;\n\t}\n\n\tfunction compareHasNewVocabularyWord(previousWords, newWords) {\n\t\treturn !(JSON.stringify(previousWords) === JSON.stringify(newWords));\n\t}\n\n\tconst currentPost = useSelect((select) =>\n\t\tselect(\"core/editor\").getCurrentPost(),\n\t);\n\n\tconst currentBlocks = useSelect((select) =>\n\t\tselect(\"core/block-editor\").getBlocks(),\n\t);\n\n\tconst currentTaxonomies = useSelect((select) =>\n\t\tselect(\"core/editor\").getCurrentPostAttribute(\"thematiques\"),\n\t);\n\n\tlet currentThematique = useSelect(\n\t\t(select) =>\n\t\t\tselect(\"core\").getEntityRecord(\n\t\t\t\t\"taxonomy\",\n\t\t\t\t\"thematiques\",\n\t\t\t\tcurrentTaxonomies[0], // or currentPost.thematiques[0] works as well\n\t\t\t),\n\t\t[currentTaxonomies],\n\t);\n\n\tconst currentLang = getAdminLanguageFromCookie(\"wp-wpml_current_language\");\n\tconst localBlockName = currentLang === \"fr\" ? \"Vocabulaire\" : \"Woordenschat\";\n\tuseEffect(() => {\n\t\tif (currentPost.content && currentBlocks) {\n\t\t\tconst newTooltipWords = buildTooltipWords();\n\n\t\t\tif (compareHasNewVocabularyWord(tooltipWords, newTooltipWords)) {\n\t\t\t\tsetAttributes({ tooltipWords: newTooltipWords });\n\t\t\t}\n\t\t}\n\t}, [currentPost, currentBlocks]);\n\n\treturn (\n\t\t\n\t\t\t

\n\t\t\t\t{localBlockName + \" — \"}\n\t\t\t\t{currentThematique && currentThematique.name\n\t\t\t\t\t? currentThematique.name\n\t\t\t\t\t: \"...pas de thématique\"}\n\t\t\t

\n\t\t\t{tooltipWords &&\n\t\t\t\ttooltipWords.map((elem) => (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{elem.tooltipText}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t
\n\t\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

\n\t\t\t\t\t\t\t\t\t{elem.tooltipDefinition}\n\t\t\t\t\t\t\t\t

\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\t\t\n\t);\n}\n","import { registerBlockType } from \"@wordpress/blocks\";\nimport \"./style.scss\";\n\nimport Edit from \"./edit\";\n// import save from \"./save\";\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 {};","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgChevronDown = function SvgChevronDown(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 11.668,\n height: 7.885\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Trac\\\\xE9 3614\",\n d: \"m1.406 1.406 4.428 5.478 4.427-5.478\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n })));\n};\nexport { SvgChevronDown as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMS42NjgiIGhlaWdodD0iNy44ODUiIHZpZXdCb3g9IjAgMCAxMS42NjggNy44ODUiPgogIDxwYXRoIGlkPSJUcmFjw6lfMzYxNCIgZGF0YS1uYW1lPSJUcmFjw6kgMzYxNCIgZD0iTTAsOC44NTUsNS40NzgsNC40MjcsMCwwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMC4yNjEgMS40MDYpIHJvdGF0ZSg5MCkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiLz4KPC9zdmc+Cg==\";","module.exports = window[\"React\"];","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"blocks\"];","module.exports = window[\"wp\"][\"coreData\"];","module.exports = window[\"wp\"][\"data\"];","module.exports = window[\"wp\"][\"element\"];","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, fn, priority] = deferred[i];\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, moreModules, runtime] = data;\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 = globalThis[\"webpackChunkvocabulaire_summary\"] = globalThis[\"webpackChunkvocabulaire_summary\"] || [];\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":["getThematiqueFamilySlug","thematique_slug","cleanString","string","normalize","replace","toLowerCase","split","join","getAdminLanguageFromCookie","c_name","c_value","document","cookie","c_start","indexOf","c_end","length","unescape","substring","__","useBlockProps","useEntityRecord","useState","useSelect","useDispatch","useEffect","useEntityProp","chevronDown","Edit","attributes","setAttributes","tooltipWords","console","log","hasFetchedDatas","setHasFetchedDatas","CurrentThematiqueDisplay","id","record","isResolving","name","getCurrentThematique","filterToolTipsArray","filteredTooltipWords","forEach","tooltipWord","existingTooltip","find","item","tooltipID","push","parseContentTooltips","editorContent","parser","DOMParser","doc","parseFromString","domTooltipWords","querySelectorAll","Array","from","getAttribute","tooltipText","tooltipDefinition","parseBlocksTooltips","currentBlocks","blocksTooltipWords","block","tooltipsWordsUsed","buildTooltipWords","newParsedTooltipWords","currentPost","content","newBlocksTooltipWords","allTooltipWords","compareHasNewVocabularyWord","previousWords","newWords","JSON","stringify","select","getCurrentPost","getBlocks","currentTaxonomies","getCurrentPostAttribute","currentThematique","getEntityRecord","currentLang","localBlockName","newTooltipWords","createElement","className","map","elem","src","alt","class","registerBlockType","metadata","edit"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"index.js","mappings":";;;;;;;;;;;;;;;;AAAO,SAASA,uBAAuBA,CAACC,eAAe,EAAE;EACxD,QAAQA,eAAe;IACtB,KAAK,SAAS;IACd,KAAK,WAAW;MACf,OAAO,oBAAoB;IAE5B,KAAK,YAAY;IACjB,KAAK,sBAAsB;MAC1B,OAAO,yBAAyB;IAEjC,KAAK,WAAW;IAChB,KAAK,cAAc;MAClB,OAAO,qBAAqB;IAE7B,KAAK,UAAU;IACf,KAAK,WAAW;MACf,OAAO,oBAAoB;IAE5B,KAAK,YAAY;IACjB,KAAK,mBAAmB;MACvB,OAAO,2BAA2B;IAEnC,KAAK,UAAU;MACd,OAAO,UAAU;EACnB;AACD;AAEO,SAASC,WAAWA,CAACC,MAAM,EAAE;EACnC,OAAOA,MAAM,CACXC,SAAS,CAAC,KAAK,CAAC,CAChBC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAC/BC,WAAW,CAAC,CAAC,CACbC,KAAK,CAAC,GAAG,CAAC,CACVC,IAAI,CAAC,GAAG,CAAC;AACZ;AAEO,SAASC,0BAA0BA,CAACC,MAAM,EAAE;EAClD,IAAIC,OAAO,GAAGC,QAAQ,CAACC,MAAM;IAC5BC,OAAO,GAAGH,OAAO,CAACI,OAAO,CAAC,GAAG,GAAGL,MAAM,GAAG,GAAG,CAAC;EAC9C,IAAII,OAAO,IAAI,CAAC,CAAC,EAAEA,OAAO,GAAGH,OAAO,CAACI,OAAO,CAACL,MAAM,GAAG,GAAG,CAAC;EAC1D,IAAII,OAAO,IAAI,CAAC,CAAC,EAAE;IAClBH,OAAO,GAAG,IAAI;EACf,CAAC,MAAM;IACNG,OAAO,GAAGH,OAAO,CAACI,OAAO,CAAC,GAAG,EAAED,OAAO,CAAC,GAAG,CAAC;IAC3C,IAAIE,KAAK,GAAGL,OAAO,CAACI,OAAO,CAAC,GAAG,EAAED,OAAO,CAAC;IACzC,IAAIE,KAAK,IAAI,CAAC,CAAC,EAAE;MAChBA,KAAK,GAAGL,OAAO,CAACM,MAAM;IACvB;IACAN,OAAO,GAAGO,QAAQ,CAACP,OAAO,CAACQ,SAAS,CAACL,OAAO,EAAEE,KAAK,CAAC,CAAC;EACtD;EACA,OAAOL,OAAO;AACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnDqC;AACmB;AACjC;AACgC;AACT;AACW;AACV;AACM;AACJ;AACe;AAEjD,SAASkB,IAAIA,CAAC;EAAEC,UAAU;EAAEC;AAAc,CAAC,EAAE;EAC3D,IAAI;IAAEC;EAAa,CAAC,GAAGF,UAAU;EACjCG,OAAO,CAACC,GAAG,CAAC,yBAAyB,EAAEF,YAAY,CAAC;EAEpD,IAAI,CAACG,eAAe,EAAEC,kBAAkB,CAAC,GAAGb,4DAAQ,CAAC,KAAK,CAAC;EAE3D,SAASc,oBAAoBA,CAACC,aAAa,EAAE;IAC5C,MAAMC,MAAM,GAAG,IAAIC,SAAS,CAAC,CAAC;IAC9B,MAAMC,GAAG,GAAGF,MAAM,CAACG,eAAe,CAACJ,aAAa,EAAE,WAAW,CAAC;IAC9D,MAAMK,eAAe,GAAGF,GAAG,CAACG,gBAAgB,CAAC,eAAe,CAAC;IAE7D,MAAMZ,YAAY,GAAG,EAAE;;IAEvB;IACAa,KAAK,CAACC,IAAI,CAACH,eAAe,CAAC,CAACI,OAAO,CAAEC,WAAW,IAAK;MACpD,MAAMC,SAAS,GAAGD,WAAW,CAACE,YAAY,CAAC,oBAAoB,CAAC;MAChE,MAAMC,WAAW,GAAGH,WAAW,CAACE,YAAY,CAAC,mBAAmB,CAAC;MACjE,MAAME,iBAAiB,GAAGJ,WAAW,CAACE,YAAY,CACjD,yBACD,CAAC;MAEDlB,YAAY,CAACqB,IAAI,CAAC;QACjBJ,SAAS;QACTE,WAAW;QACXC;MACD,CAAC,CAAC;IACH,CAAC,CAAC;IACF,OAAOpB,YAAY;EACpB;EACA,SAASsB,mBAAmBA,CAACC,aAAa,EAAE;IAC3C,MAAMC,kBAAkB,GAAG,EAAE;IAC7BD,aAAa,CAACR,OAAO,CAAEU,KAAK,IAAK;MAChC,IACC,CAACA,KAAK,CAACC,IAAI,KAAK,8CAA8C,IAC7DD,KAAK,CAACC,IAAI,KAAK,iDAAiD,KACjED,KAAK,EAAE3B,UAAU,EAAE6B,iBAAiB,EAAE1C,MAAM,GAAG,CAAC,EAC/C;QACDwC,KAAK,CAAC3B,UAAU,CAAC6B,iBAAiB,CAACZ,OAAO,CAAEC,WAAW,IAAK;UAC3DQ,kBAAkB,CAACH,IAAI,CAACL,WAAW,CAAC;QACrC,CAAC,CAAC;MACH;IACD,CAAC,CAAC;IAEF,OAAOQ,kBAAkB;EAC1B;EAEA,SAASI,mBAAmBA,CAAC5B,YAAY,EAAE;IAC1C,MAAM6B,oBAAoB,GAAGhB,KAAK,CAACC,IAAI,CACtC,IAAIgB,GAAG,CACN9B,YAAY,CAAC+B,GAAG,CAAEf,WAAW,IAAK,CAACA,WAAW,CAACC,SAAS,EAAED,WAAW,CAAC,CACvE,CAAC,CAACgB,MAAM,CAAC,CACV,CAAC;IAED,OAAOH,oBAAoB;IAC3B;;IAEA;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;EACD;EACA,SAASI,iBAAiBA,CAAA,EAAG;IAC5B,IAAIC,qBAAqB,GAAG7B,oBAAoB,CAAC8B,WAAW,CAACC,OAAO,CAAC;IACrE,IAAIC,qBAAqB,GAAGf,mBAAmB,CAACC,aAAa,CAAC;IAE9D,IAAIe,eAAe,GAAG,CAAC,GAAGJ,qBAAqB,EAAE,GAAGG,qBAAqB,CAAC;IAC1E,MAAMR,oBAAoB,GAAGD,mBAAmB,CAACU,eAAe,CAAC;IAEjE,OAAOT,oBAAoB;EAC5B;EACA,SAASU,wBAAwBA,CAACC,aAAa,EAAE;IAChD,MAAMC,eAAe,GAAGD,aAAa,CAACT,GAAG,CACvCf,WAAW,IAAKA,WAAW,CAACC,SAC9B,CAAC;IACD,OAAOwB,eAAe;EACvB;EAEA,SAASC,2BAA2BA,CAACC,aAAa,EAAEC,QAAQ,EAAE;IAC7D,OAAO,EAAEC,IAAI,CAACC,SAAS,CAACH,aAAa,CAAC,KAAKE,IAAI,CAACC,SAAS,CAACF,QAAQ,CAAC,CAAC;EACrE;EAEA,MAAMT,WAAW,GAAG3C,0DAAS,CAAEuD,MAAM,IACpCA,MAAM,CAAC,aAAa,CAAC,CAACC,cAAc,CAAC,CACtC,CAAC;EAED,MAAMzB,aAAa,GAAG/B,0DAAS,CAAEuD,MAAM,IACtCA,MAAM,CAAC,mBAAmB,CAAC,CAACE,SAAS,CAAC,CACvC,CAAC;EAED,MAAMC,iBAAiB,GAAG1D,0DAAS,CAAEuD,MAAM,IAC1CA,MAAM,CAAC,aAAa,CAAC,CAACI,uBAAuB,CAAC,aAAa,CAC5D,CAAC;EAED,IAAIC,iBAAiB,GAAG5D,0DAAS,CAC/BuD,MAAM,IACNA,MAAM,CAAC,MAAM,CAAC,CAACM,eAAe,CAC7B,UAAU,EACV,aAAa,EACbH,iBAAiB,CAAC,CAAC,CAAC,CAAE;EACvB,CAAC,EACF,CAACA,iBAAiB,CACnB,CAAC;EACD,MAAMT,eAAe,GAAGF,wBAAwB,CAACvC,YAAY,CAAC;EAE9D,MAAMsD,gBAAgB,GAAG9D,0DAAS,CAChCuD,MAAM,IAAK;IACX,IAAI,CAACN,eAAe,CAACxD,MAAM,EAAE,OAAO,EAAE;IACtC,OAAO8D,MAAM,CAAC,MAAM,CAAC,CAACQ,gBAAgB,CAAC,UAAU,EAAE,aAAa,EAAE;MACjEC,QAAQ,EAAE,CAAC,CAAC;MACZC,OAAO,EAAEhB;IACV,CAAC,CAAC;EACH,CAAC,EACD,CAACA,eAAe,CACjB,CAAC;EACDxC,OAAO,CAACC,GAAG,CAAC,kBAAkB,EAAEoD,gBAAgB,CAAC;EAEjD,MAAMI,WAAW,GAAGjF,yEAA0B,CAAC,0BAA0B,CAAC;EAC1E,MAAMkF,cAAc,GAAGD,WAAW,KAAK,IAAI,GAAG,aAAa,GAAG,cAAc;EAC5EhE,6DAAS,CAAC,MAAM;IACf,IAAIyC,WAAW,CAACC,OAAO,IAAIb,aAAa,EAAE;MACzC,MAAMqC,eAAe,GAAG3B,iBAAiB,CAAC,CAAC;MAC3C,MAAM4B,oBAAoB,GAAGtB,wBAAwB,CAACqB,eAAe,CAAC;MAEtE,IAAIlB,2BAA2B,CAAC1C,YAAY,EAAE4D,eAAe,CAAC,EAAE;QAC/D7D,aAAa,CAAC;UAAEC,YAAY,EAAE4D;QAAgB,CAAC,CAAC;MACjD;IACD;EACD,CAAC,EAAE,CAACzB,WAAW,EAAEZ,aAAa,CAAC,CAAC;EAEhC,OACCuC,oDAAA;IAAA,GACKzE,sEAAa,CAAC;MACjB0E,SAAS,EAAG;IACb,CAAC;EAAC,GAEFD,oDAAA;IAAIC,SAAS,EAAC;EAA6C,GACzDJ,cAAc,GAAG,KAAK,EACtBP,iBAAiB,IAAIA,iBAAiB,CAAC1B,IAAI,GACzC0B,iBAAiB,CAAC1B,IAAI,GACtB,sBACA,CAAC,EAEJ4B,gBAAgB,IAChBA,gBAAgB,CAACvB,GAAG,CAAEiC,IAAI,IACzBF,oDAAA;IAASC,SAAS,EAAC;EAAU,GAC5BD,oDAAA,kBACEE,IAAI,CAACC,KAAK,CAACC,QAAQ,EACpBJ,oDAAA;IAAKC,SAAS,EAAC;EAAiB,GAC/BD,oDAAA;IAAKK,GAAG,EAAEvE,6DAAY;IAACmE,SAAS,EAAC,gBAAgB;IAACK,GAAG,EAAC;EAAE,CAAE,CACtD,CACG,CAAC,EACVN,oDAAA;IAAKC,SAAS,EAAC;EAAoG,GAClHD,oDAAA;IAAKO,KAAK,EAAC;EAAuC,GACjDP,oDAAA;IAAGC,SAAS,EAAC;EAA+C,GAC1DC,IAAI,CAACM,GAAG,CAACC,UACR,CACC,CACD,CACG,CACT,CACM,CAAC;AAEZ;;;;;;;;;;;;;;;;AClLsD;AAChC;AAEI;AAC1B;AACoC;AAEpCC,oEAAiB,CAACC,6CAAa,EAAE;EAChCC,IAAI,EAAE7E,6CAAIA;AACX,CAAC,CAAC;;;;;;;;;;;ACTF;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;ACAA;AACA,sBAAsB,sEAAsE,gBAAgB,sBAAsB,OAAO,2BAA2B,0BAA0B,yDAAyD,iCAAiC,kBAAkB;AAC3Q;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AAC4C;AAC5C,iEAAe,oBAAoB,wbAAwb;;;;;;;;;;ACnB3d;;;;;;;;;;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,kBAAkB,qBAAqB;WACvC;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC3BA;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,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;;;;;UEjDA;UACA;UACA;UACA;UACA","sources":["webpack://vocabulaire-summary/../utilities.js","webpack://vocabulaire-summary/./src/edit.js","webpack://vocabulaire-summary/./src/index.js","webpack://vocabulaire-summary/./src/editor.scss","webpack://vocabulaire-summary/./src/style.scss","webpack://vocabulaire-summary/./src/img/chevron_down.svg","webpack://vocabulaire-summary/external window \"React\"","webpack://vocabulaire-summary/external window [\"wp\",\"blockEditor\"]","webpack://vocabulaire-summary/external window [\"wp\",\"blocks\"]","webpack://vocabulaire-summary/external window [\"wp\",\"coreData\"]","webpack://vocabulaire-summary/external window [\"wp\",\"data\"]","webpack://vocabulaire-summary/external window [\"wp\",\"element\"]","webpack://vocabulaire-summary/external window [\"wp\",\"i18n\"]","webpack://vocabulaire-summary/webpack/bootstrap","webpack://vocabulaire-summary/webpack/runtime/chunk loaded","webpack://vocabulaire-summary/webpack/runtime/compat get default export","webpack://vocabulaire-summary/webpack/runtime/define property getters","webpack://vocabulaire-summary/webpack/runtime/hasOwnProperty shorthand","webpack://vocabulaire-summary/webpack/runtime/make namespace object","webpack://vocabulaire-summary/webpack/runtime/jsonp chunk loading","webpack://vocabulaire-summary/webpack/before-startup","webpack://vocabulaire-summary/webpack/startup","webpack://vocabulaire-summary/webpack/after-startup"],"sourcesContent":["export function getThematiqueFamilySlug(thematique_slug) {\r\n\tswitch (thematique_slug) {\r\n\t\tcase \"energie\":\r\n\t\tcase \"urbanisme\":\r\n\t\t\treturn \"energies-urbanisme\";\r\n\r\n\t\tcase \"acoustique\":\r\n\t\tcase \"petites-coproprietes\":\r\n\t\t\treturn \"acoustique-coproprietes\";\r\n\r\n\t\tcase \"isolation\":\r\n\t\tcase \"au-quotidien\":\r\n\t\t\treturn \"isolation-quotidien\";\r\n\r\n\t\tcase \"energies\":\r\n\t\tcase \"urbanisme\":\r\n\t\t\treturn \"energies-urbanisme\";\r\n\r\n\t\tcase \"patrimoine\":\r\n\t\tcase \"sante-et-securite\":\r\n\t\t\treturn \"patrimoine-sante-securite\";\r\n\r\n\t\tcase \"location\":\r\n\t\t\treturn \"location\";\r\n\t}\r\n}\r\n\r\nexport function cleanString(string) {\r\n\treturn string\r\n\t\t.normalize(\"NFD\")\r\n\t\t.replace(/[\\u0300-\\u036f]/g, \"\")\r\n\t\t.toLowerCase()\r\n\t\t.split(\" \")\r\n\t\t.join(\"-\");\r\n}\r\n\r\nexport function getAdminLanguageFromCookie(c_name) {\r\n\tvar c_value = document.cookie,\r\n\t\tc_start = c_value.indexOf(\" \" + c_name + \"=\");\r\n\tif (c_start == -1) c_start = c_value.indexOf(c_name + \"=\");\r\n\tif (c_start == -1) {\r\n\t\tc_value = null;\r\n\t} else {\r\n\t\tc_start = c_value.indexOf(\"=\", c_start) + 1;\r\n\t\tvar c_end = c_value.indexOf(\";\", c_start);\r\n\t\tif (c_end == -1) {\r\n\t\t\tc_end = c_value.length;\r\n\t\t}\r\n\t\tc_value = unescape(c_value.substring(c_start, c_end));\r\n\t}\r\n\treturn c_value;\r\n}\r\n","import { __ } from \"@wordpress/i18n\";\nimport { useBlockProps } from \"@wordpress/block-editor\";\nimport \"./editor.scss\";\nimport { useEntityRecord } from \"@wordpress/core-data\";\nimport { useState } from \"@wordpress/element\";\nimport { useSelect, useDispatch } from \"@wordpress/data\";\nimport { useEffect } from \"@wordpress/element\";\nimport { useEntityProp } from \"@wordpress/core-data\";\nimport chevronDown from \"./img/chevron_down.svg\";\nimport { getAdminLanguageFromCookie } from \"../../utilities.js\";\n\nexport default function Edit({ attributes, setAttributes }) {\n\tlet { tooltipWords } = attributes;\n\tconsole.log(\"tooltipWords ATTRIBUTES\", tooltipWords);\n\n\tlet [hasFetchedDatas, setHasFetchedDatas] = useState(false);\n\n\tfunction parseContentTooltips(editorContent) {\n\t\tconst parser = new DOMParser();\n\t\tconst doc = parser.parseFromString(editorContent, \"text/html\");\n\t\tconst domTooltipWords = doc.querySelectorAll(\".tooltip-word\");\n\n\t\tconst tooltipWords = [];\n\n\t\t// Looping over tooltip words and filtering duplicates\n\t\tArray.from(domTooltipWords).forEach((tooltipWord) => {\n\t\t\tconst tooltipID = tooltipWord.getAttribute(\"data-definition-id\");\n\t\t\tconst tooltipText = tooltipWord.getAttribute(\"data-tooltip-word\");\n\t\t\tconst tooltipDefinition = tooltipWord.getAttribute(\n\t\t\t\t\"data-tooltip-definition\",\n\t\t\t);\n\n\t\t\ttooltipWords.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\treturn tooltipWords;\n\t}\n\tfunction parseBlocksTooltips(currentBlocks) {\n\t\tconst blocksTooltipWords = [];\n\t\tcurrentBlocks.forEach((block) => {\n\t\t\tif (\n\t\t\t\t(block.name === \"homegrade-content-blocks/questions-container\" ||\n\t\t\t\t\tblock.name === \"homegrade-content-blocks/post-content-container\") &&\n\t\t\t\tblock?.attributes?.tooltipsWordsUsed?.length > 0\n\t\t\t) {\n\t\t\t\tblock.attributes.tooltipsWordsUsed.forEach((tooltipWord) => {\n\t\t\t\t\tblocksTooltipWords.push(tooltipWord);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\treturn blocksTooltipWords;\n\t}\n\n\tfunction filterToolTipsArray(tooltipWords) {\n\t\tconst filteredTooltipWords = Array.from(\n\t\t\tnew Map(\n\t\t\t\ttooltipWords.map((tooltipWord) => [tooltipWord.tooltipID, tooltipWord]),\n\t\t\t).values(),\n\t\t);\n\n\t\treturn filteredTooltipWords;\n\t\t// const filteredTooltipWords = [];\n\n\t\t// tooltipWords.forEach((tooltipWord) => {\n\t\t// \tconst existingTooltip = filteredTooltipWords.find(\n\t\t// \t\t(item) => item.tooltipID === tooltipWord.tooltipID,\n\t\t// \t);\n\n\t\t// \tif (!existingTooltip) {\n\t\t// \t\tfilteredTooltipWords.push(tooltipWord);\n\t\t// \t}\n\t\t// });\n\t}\n\tfunction parseTooltipWords() {\n\t\tlet newParsedTooltipWords = parseContentTooltips(currentPost.content);\n\t\tlet newBlocksTooltipWords = parseBlocksTooltips(currentBlocks);\n\n\t\tlet allTooltipWords = [...newParsedTooltipWords, ...newBlocksTooltipWords];\n\t\tconst filteredTooltipWords = filterToolTipsArray(allTooltipWords);\n\n\t\treturn filteredTooltipWords;\n\t}\n\tfunction buildTooltipWordsIdArray(tooltipsArray) {\n\t\tconst tooltipWordsIds = tooltipsArray.map(\n\t\t\t(tooltipWord) => tooltipWord.tooltipID,\n\t\t);\n\t\treturn tooltipWordsIds;\n\t}\n\n\tfunction compareHasNewVocabularyWord(previousWords, newWords) {\n\t\treturn !(JSON.stringify(previousWords) === JSON.stringify(newWords));\n\t}\n\n\tconst currentPost = useSelect((select) =>\n\t\tselect(\"core/editor\").getCurrentPost(),\n\t);\n\n\tconst currentBlocks = useSelect((select) =>\n\t\tselect(\"core/block-editor\").getBlocks(),\n\t);\n\n\tconst currentTaxonomies = useSelect((select) =>\n\t\tselect(\"core/editor\").getCurrentPostAttribute(\"thematiques\"),\n\t);\n\n\tlet currentThematique = useSelect(\n\t\t(select) =>\n\t\t\tselect(\"core\").getEntityRecord(\n\t\t\t\t\"taxonomy\",\n\t\t\t\t\"thematiques\",\n\t\t\t\tcurrentTaxonomies[0], // or currentPost.thematiques[0] works as well\n\t\t\t),\n\t\t[currentTaxonomies],\n\t);\n\tconst tooltipWordsIds = buildTooltipWordsIdArray(tooltipWords);\n\n\tconst vocabulairePosts = useSelect(\n\t\t(select) => {\n\t\t\tif (!tooltipWordsIds.length) return [];\n\t\t\treturn select(\"core\").getEntityRecords(\"postType\", \"vocabulaire\", {\n\t\t\t\tper_page: -1,\n\t\t\t\tinclude: tooltipWordsIds,\n\t\t\t});\n\t\t},\n\t\t[tooltipWordsIds],\n\t);\n\tconsole.log(\"vocabulairePosts\", vocabulairePosts);\n\n\tconst currentLang = getAdminLanguageFromCookie(\"wp-wpml_current_language\");\n\tconst localBlockName = currentLang === \"fr\" ? \"Vocabulaire\" : \"Woordenschat\";\n\tuseEffect(() => {\n\t\tif (currentPost.content && currentBlocks) {\n\t\t\tconst newTooltipWords = parseTooltipWords();\n\t\t\tconst newTooltipWordsDatas = buildTooltipWordsIdArray(newTooltipWords);\n\n\t\t\tif (compareHasNewVocabularyWord(tooltipWords, newTooltipWords)) {\n\t\t\t\tsetAttributes({ tooltipWords: newTooltipWords });\n\t\t\t}\n\t\t}\n\t}, [currentPost, currentBlocks]);\n\n\treturn (\n\t\t\n\t\t\t

\n\t\t\t\t{localBlockName + \" — \"}\n\t\t\t\t{currentThematique && currentThematique.name\n\t\t\t\t\t? currentThematique.name\n\t\t\t\t\t: \"...pas de thématique\"}\n\t\t\t

\n\n\t\t\t{vocabulairePosts &&\n\t\t\t\tvocabulairePosts.map((elem) => (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{elem.title.rendered}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t
\n\t\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

\n\t\t\t\t\t\t\t\t\t{elem.acf.definition}\n\t\t\t\t\t\t\t\t

\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\t\t\n\t);\n}\n","import { registerBlockType } from \"@wordpress/blocks\";\nimport \"./style.scss\";\n\nimport Edit from \"./edit\";\n// import save from \"./save\";\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 {};","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgChevronDown = function SvgChevronDown(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 11.668,\n height: 7.885\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Trac\\\\xE9 3614\",\n d: \"m1.406 1.406 4.428 5.478 4.427-5.478\",\n fill: \"none\",\n stroke: \"#000\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2\n })));\n};\nexport { SvgChevronDown as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMS42NjgiIGhlaWdodD0iNy44ODUiIHZpZXdCb3g9IjAgMCAxMS42NjggNy44ODUiPgogIDxwYXRoIGlkPSJUcmFjw6lfMzYxNCIgZGF0YS1uYW1lPSJUcmFjw6kgMzYxNCIgZD0iTTAsOC44NTUsNS40NzgsNC40MjcsMCwwIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMC4yNjEgMS40MDYpIHJvdGF0ZSg5MCkiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiLz4KPC9zdmc+Cg==\";","module.exports = window[\"React\"];","module.exports = window[\"wp\"][\"blockEditor\"];","module.exports = window[\"wp\"][\"blocks\"];","module.exports = window[\"wp\"][\"coreData\"];","module.exports = window[\"wp\"][\"data\"];","module.exports = window[\"wp\"][\"element\"];","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, fn, priority] = deferred[i];\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, moreModules, runtime] = data;\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 = globalThis[\"webpackChunkvocabulaire_summary\"] = globalThis[\"webpackChunkvocabulaire_summary\"] || [];\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":["getThematiqueFamilySlug","thematique_slug","cleanString","string","normalize","replace","toLowerCase","split","join","getAdminLanguageFromCookie","c_name","c_value","document","cookie","c_start","indexOf","c_end","length","unescape","substring","__","useBlockProps","useEntityRecord","useState","useSelect","useDispatch","useEffect","useEntityProp","chevronDown","Edit","attributes","setAttributes","tooltipWords","console","log","hasFetchedDatas","setHasFetchedDatas","parseContentTooltips","editorContent","parser","DOMParser","doc","parseFromString","domTooltipWords","querySelectorAll","Array","from","forEach","tooltipWord","tooltipID","getAttribute","tooltipText","tooltipDefinition","push","parseBlocksTooltips","currentBlocks","blocksTooltipWords","block","name","tooltipsWordsUsed","filterToolTipsArray","filteredTooltipWords","Map","map","values","parseTooltipWords","newParsedTooltipWords","currentPost","content","newBlocksTooltipWords","allTooltipWords","buildTooltipWordsIdArray","tooltipsArray","tooltipWordsIds","compareHasNewVocabularyWord","previousWords","newWords","JSON","stringify","select","getCurrentPost","getBlocks","currentTaxonomies","getCurrentPostAttribute","currentThematique","getEntityRecord","vocabulairePosts","getEntityRecords","per_page","include","currentLang","localBlockName","newTooltipWords","newTooltipWordsDatas","createElement","className","elem","title","rendered","src","alt","class","acf","definition","registerBlockType","metadata","edit"],"sourceRoot":""} \ No newline at end of file diff --git a/blocks/vocabulaire-summary/build/render.php b/blocks/vocabulaire-summary/build/render.php index eece676..d273427 100644 --- a/blocks/vocabulaire-summary/build/render.php +++ b/blocks/vocabulaire-summary/build/render.php @@ -13,12 +13,7 @@ endif; global $post; $thematique = get_the_terms($post->ID, 'thematiques')[0] ?? null; - - -write_log($tooltipWords); - ?> - diff --git a/blocks/vocabulaire-summary/build/view.asset.php b/blocks/vocabulaire-summary/build/view.asset.php deleted file mode 100644 index e5dbe33..0000000 --- a/blocks/vocabulaire-summary/build/view.asset.php +++ /dev/null @@ -1 +0,0 @@ - array(), 'version' => '399a1e7def5ebaedbda7'); diff --git a/blocks/vocabulaire-summary/build/view.js b/blocks/vocabulaire-summary/build/view.js deleted file mode 100644 index 1071c29..0000000 --- a/blocks/vocabulaire-summary/build/view.js +++ /dev/null @@ -1,54 +0,0 @@ -/******/ (() => { // webpackBootstrap -var __webpack_exports__ = {}; -/*!*********************!*\ - !*** ./src/view.js ***! - \*********************/ -// NO NEEDED ANYMORE BECAUSE DIRECTLY UPDATED BY PHP - -// async function updateWordsDefinitions() { -// const vocabularySummary = document.querySelector("#vocabulaire-summary"); -// let tooltipWordsDefinition = vocabularySummary.querySelectorAll("details"); - -// const vocabulairesPostsIds = Array.from(tooltipWordsDefinition).map( -// (element) => element.getAttribute("data-definition-id"), -// ); - -// try { -// const tooltipData = await getTooltipsDatas(vocabulairesPostsIds); - -// tooltipWordsDefinition.forEach((word, index) => { -// const foundTooltipDatas = tooltipData.find( -// (tooltip) => -// tooltip.id === parseInt(word.getAttribute("data-definition-id")), -// ); - -// const definitionText = word.querySelector( -// ".homegrade-blocks-vocabulaire-summary__content", -// ); -// definitionText.textContent = foundTooltipDatas.acf.definition; -// }); -// } catch (error) { -// console.log("Something went wrong!", error); -// } -// } - -// async function getTooltipsDatas(vocabulairesPostsIds) { -// try { -// const response = await fetch( -// `/wp-json/wp/v2/vocabulaire?include=${vocabulairesPostsIds.toString()}`, -// ); -// if (!response.ok) { -// throw new Error(`Request failed with status: ${response.status}`); -// } -// const data = await response.json(); -// return data; -// } catch (err) { -// throw err; -// } -// } -// window.addEventListener("DOMContentLoaded", (event) => { -// updateWordsDefinitions(); -// }); -/******/ })() -; -//# sourceMappingURL=view.js.map \ No newline at end of file diff --git a/blocks/vocabulaire-summary/build/view.js.map b/blocks/vocabulaire-summary/build/view.js.map deleted file mode 100644 index b21303c..0000000 --- a/blocks/vocabulaire-summary/build/view.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"view.js","mappings":";;;;;AAAA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,M","sources":["webpack://vocabulaire-summary/./src/view.js"],"sourcesContent":["// NO NEEDED ANYMORE BECAUSE DIRECTLY UPDATED BY PHP\r\n\r\n// async function updateWordsDefinitions() {\r\n// \tconst vocabularySummary = document.querySelector(\"#vocabulaire-summary\");\r\n// \tlet tooltipWordsDefinition = vocabularySummary.querySelectorAll(\"details\");\r\n\r\n// \tconst vocabulairesPostsIds = Array.from(tooltipWordsDefinition).map(\r\n// \t\t(element) => element.getAttribute(\"data-definition-id\"),\r\n// \t);\r\n\r\n// \ttry {\r\n// \t\tconst tooltipData = await getTooltipsDatas(vocabulairesPostsIds);\r\n\r\n// \t\ttooltipWordsDefinition.forEach((word, index) => {\r\n// \t\t\tconst foundTooltipDatas = tooltipData.find(\r\n// \t\t\t\t(tooltip) =>\r\n// \t\t\t\t\ttooltip.id === parseInt(word.getAttribute(\"data-definition-id\")),\r\n// \t\t\t);\r\n\r\n// \t\t\tconst definitionText = word.querySelector(\r\n// \t\t\t\t\".homegrade-blocks-vocabulaire-summary__content\",\r\n// \t\t\t);\r\n// \t\t\tdefinitionText.textContent = foundTooltipDatas.acf.definition;\r\n// \t\t});\r\n// \t} catch (error) {\r\n// \t\tconsole.log(\"Something went wrong!\", error);\r\n// \t}\r\n// }\r\n\r\n// async function getTooltipsDatas(vocabulairesPostsIds) {\r\n// \ttry {\r\n// \t\tconst response = await fetch(\r\n// \t\t\t`/wp-json/wp/v2/vocabulaire?include=${vocabulairesPostsIds.toString()}`,\r\n// \t\t);\r\n// \t\tif (!response.ok) {\r\n// \t\t\tthrow new Error(`Request failed with status: ${response.status}`);\r\n// \t\t}\r\n// \t\tconst data = await response.json();\r\n// \t\treturn data;\r\n// \t} catch (err) {\r\n// \t\tthrow err;\r\n// \t}\r\n// }\r\n// window.addEventListener(\"DOMContentLoaded\", (event) => {\r\n// \tupdateWordsDefinitions();\r\n// });\r\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/blocks/vocabulaire-summary/src/block.json b/blocks/vocabulaire-summary/src/block.json index 744739a..05f58e8 100644 --- a/blocks/vocabulaire-summary/src/block.json +++ b/blocks/vocabulaire-summary/src/block.json @@ -23,6 +23,10 @@ "tooltipWords": { "type": "array", "default": [] + }, + "vocabulairesPostsIds": { + "type": "array", + "default": [] } } } \ No newline at end of file diff --git a/blocks/vocabulaire-summary/src/edit.js b/blocks/vocabulaire-summary/src/edit.js index 7888c75..af63601 100644 --- a/blocks/vocabulaire-summary/src/edit.js +++ b/blocks/vocabulaire-summary/src/edit.js @@ -11,56 +11,10 @@ import { getAdminLanguageFromCookie } from "../../utilities.js"; export default function Edit({ attributes, setAttributes }) { let { tooltipWords } = attributes; + console.log("tooltipWords ATTRIBUTES", tooltipWords); - console.log("tooltipWords", tooltipWords); let [hasFetchedDatas, setHasFetchedDatas] = useState(false); - function CurrentThematiqueDisplay({ id }) { - const { record, isResolving } = useEntityRecord( - "taxonomy", - "thematiques", - id, - ); - - if (isResolving) { - return "Loading..."; - } - if (!record) { - return "no post..."; - } - return record.name; - } - function getCurrentThematique(id) { - const { record, isResolving } = useEntityRecord( - "taxonomy", - "thematiques", - id, - ); - - if (isResolving) { - return "Loading..."; - } - if (!record) { - return "no post..."; - } - return record; - } - - function filterToolTipsArray(tooltipWords) { - const filteredTooltipWords = []; - - tooltipWords.forEach((tooltipWord) => { - const existingTooltip = filteredTooltipWords.find( - (item) => item.tooltipID === tooltipWord.tooltipID, - ); - - if (!existingTooltip) { - filteredTooltipWords.push(tooltipWord); - } - }); - - return filteredTooltipWords; - } function parseContentTooltips(editorContent) { const parser = new DOMParser(); const doc = parser.parseFromString(editorContent, "text/html"); @@ -100,13 +54,42 @@ export default function Edit({ attributes, setAttributes }) { return blocksTooltipWords; } - function buildTooltipWords() { + + function filterToolTipsArray(tooltipWords) { + const filteredTooltipWords = Array.from( + new Map( + tooltipWords.map((tooltipWord) => [tooltipWord.tooltipID, tooltipWord]), + ).values(), + ); + + return filteredTooltipWords; + // const filteredTooltipWords = []; + + // tooltipWords.forEach((tooltipWord) => { + // const existingTooltip = filteredTooltipWords.find( + // (item) => item.tooltipID === tooltipWord.tooltipID, + // ); + + // if (!existingTooltip) { + // filteredTooltipWords.push(tooltipWord); + // } + // }); + } + function parseTooltipWords() { let newParsedTooltipWords = parseContentTooltips(currentPost.content); let newBlocksTooltipWords = parseBlocksTooltips(currentBlocks); + let allTooltipWords = [...newParsedTooltipWords, ...newBlocksTooltipWords]; const filteredTooltipWords = filterToolTipsArray(allTooltipWords); + return filteredTooltipWords; } + function buildTooltipWordsIdArray(tooltipsArray) { + const tooltipWordsIds = tooltipsArray.map( + (tooltipWord) => tooltipWord.tooltipID, + ); + return tooltipWordsIds; + } function compareHasNewVocabularyWord(previousWords, newWords) { return !(JSON.stringify(previousWords) === JSON.stringify(newWords)); @@ -133,12 +116,26 @@ export default function Edit({ attributes, setAttributes }) { ), [currentTaxonomies], ); + const tooltipWordsIds = buildTooltipWordsIdArray(tooltipWords); + + const vocabulairePosts = useSelect( + (select) => { + if (!tooltipWordsIds.length) return []; + return select("core").getEntityRecords("postType", "vocabulaire", { + per_page: -1, + include: tooltipWordsIds, + }); + }, + [tooltipWordsIds], + ); + console.log("vocabulairePosts", vocabulairePosts); const currentLang = getAdminLanguageFromCookie("wp-wpml_current_language"); const localBlockName = currentLang === "fr" ? "Vocabulaire" : "Woordenschat"; useEffect(() => { if (currentPost.content && currentBlocks) { - const newTooltipWords = buildTooltipWords(); + const newTooltipWords = parseTooltipWords(); + const newTooltipWordsDatas = buildTooltipWordsIdArray(newTooltipWords); if (compareHasNewVocabularyWord(tooltipWords, newTooltipWords)) { setAttributes({ tooltipWords: newTooltipWords }); @@ -158,11 +155,12 @@ export default function Edit({ attributes, setAttributes }) { ? currentThematique.name : "...pas de thématique"} - {tooltipWords && - tooltipWords.map((elem) => ( + + {vocabulairePosts && + vocabulairePosts.map((elem) => (
- {elem.tooltipText} + {elem.title.rendered}
@@ -170,7 +168,7 @@ export default function Edit({ attributes, setAttributes }) {

- {elem.tooltipDefinition} + {elem.acf.definition}

diff --git a/blocks/vocabulaire-summary/src/render.php b/blocks/vocabulaire-summary/src/render.php index eece676..d273427 100644 --- a/blocks/vocabulaire-summary/src/render.php +++ b/blocks/vocabulaire-summary/src/render.php @@ -13,12 +13,7 @@ endif; global $post; $thematique = get_the_terms($post->ID, 'thematiques')[0] ?? null; - - -write_log($tooltipWords); - ?> -