PluginProbe
Elementor Website Builder – more than just a page builder / 4.1.0-beta2
Elementor Website Builder – more than just a page builder v4.1.0-beta2
4.3.4 4.3.3 4.3.2 4.3.1 4.3.0 4.3.0-beta3 4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 All 457 releases
← All changes | assets/js/packages/editor-templates/editor-templates.js +2 -435 4.2.0-dev2 → 4.1.0-beta2 View file →
@@ -1,436 +1,3 @@
1 -/******/ (function() { // webpackBootstrap
2 -/******/ "use strict";
3 -/******/ var __webpack_modules__ = ({
4 -
5 -/***/ "./packages/packages/core/editor-templates/src/init.ts":
6 -/*!*************************************************************!*\
7 - !*** ./packages/packages/core/editor-templates/src/init.ts ***!
8 - \*************************************************************/
9 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
10 -
11 -__webpack_require__.r(__webpack_exports__);
12 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
13 -/* harmony export */ init: function() { return /* binding */ init; }
14 -/* harmony export */ });
15 -/* harmony import */ var _elementor_editor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor */ "@elementor/editor");
16 -/* harmony import */ var _elementor_editor__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor__WEBPACK_IMPORTED_MODULE_0__);
17 -/* harmony import */ var _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-styles-repository */ "@elementor/editor-styles-repository");
18 -/* harmony import */ var _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1__);
19 -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
20 -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_2__);
21 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
22 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_3__);
23 -/* harmony import */ var _load_templates__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./load-templates */ "./packages/packages/core/editor-templates/src/load-templates.ts");
24 -/* harmony import */ var _render_template_styles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./render-template-styles */ "./packages/packages/core/editor-templates/src/render-template-styles.tsx");
25 -/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./store */ "./packages/packages/core/editor-templates/src/store.ts");
26 -/* harmony import */ var _templates_styles_provider__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./templates-styles-provider */ "./packages/packages/core/editor-templates/src/templates-styles-provider.ts");
27 -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils */ "./packages/packages/core/editor-templates/src/utils.ts");
28 -
29 -
30 -
31 -
32 -
33 -
34 -
35 -
36 -
37 -function init() {
38 - if (!(0,_utils__WEBPACK_IMPORTED_MODULE_8__.isHandlingTemplateStyles)()) {
39 - return;
40 - }
41 - (0,_elementor_store__WEBPACK_IMPORTED_MODULE_3__.__registerSlice)(_store__WEBPACK_IMPORTED_MODULE_6__.slice);
42 - _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_1__.stylesRepository.register(_templates_styles_provider__WEBPACK_IMPORTED_MODULE_7__.templatesStylesProvider);
43 - (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_2__.registerDataHook)('after', 'editor/documents/attach-preview', async () => {
44 - (0,_load_templates__WEBPACK_IMPORTED_MODULE_4__.unloadTemplates)();
45 - (0,_templates_styles_provider__WEBPACK_IMPORTED_MODULE_7__.clearTemplatesStyles)();
46 - await (0,_load_templates__WEBPACK_IMPORTED_MODULE_4__.loadTemplates)();
47 - });
48 - (0,_elementor_editor__WEBPACK_IMPORTED_MODULE_0__.injectIntoLogic)({
49 - id: 'templates-styles',
50 - component: _render_template_styles__WEBPACK_IMPORTED_MODULE_5__.RenderTemplateStyles
51 - });
52 -}
53 -
54 -/***/ }),
55 -
56 -/***/ "./packages/packages/core/editor-templates/src/load-templates.ts":
57 -/*!***********************************************************************!*\
58 - !*** ./packages/packages/core/editor-templates/src/load-templates.ts ***!
59 - \***********************************************************************/
60 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
61 -
62 -__webpack_require__.r(__webpack_exports__);
63 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
64 -/* harmony export */ loadTemplates: function() { return /* binding */ loadTemplates; },
65 -/* harmony export */ unloadTemplates: function() { return /* binding */ unloadTemplates; }
66 -/* harmony export */ });
67 -/* harmony import */ var _elementor_editor_documents__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-documents */ "@elementor/editor-documents");
68 -/* harmony import */ var _elementor_editor_documents__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_0__);
69 -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @elementor/editor-v1-adapters */ "@elementor/editor-v1-adapters");
70 -/* harmony import */ var _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__);
71 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
72 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_2__);
73 -/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./store */ "./packages/packages/core/editor-templates/src/store.ts");
74 -
75 -
76 -
77 -
78 -const TEMPLATE_ATTRIBUTE = 'data-elementor-post-type="elementor_library"';
79 -const DOCUMENT_WRAPPER_ATTR = 'data-elementor-id';
80 -async function loadTemplates() {
81 - const iframeDocument = (0,_elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__.getCanvasIframeDocument)();
82 - if (!iframeDocument) {
83 - return;
84 - }
85 - const currentDocumentId = (0,_elementor_editor_documents__WEBPACK_IMPORTED_MODULE_0__.getV1CurrentDocument)()?.id;
86 - const templateIds = getTemplateIds(iframeDocument, currentDocumentId);
87 - if (!templateIds.length) {
88 - return;
89 - }
90 - const documents = await fetchDocuments(templateIds);
91 - (0,_elementor_store__WEBPACK_IMPORTED_MODULE_2__.__dispatch)(_store__WEBPACK_IMPORTED_MODULE_3__.slice.actions.setTemplates(documents));
92 -}
93 -function unloadTemplates() {
94 - (0,_elementor_store__WEBPACK_IMPORTED_MODULE_2__.__dispatch)(_store__WEBPACK_IMPORTED_MODULE_3__.slice.actions.clearTemplates());
95 -}
96 -function getTemplateIds(iframeDocument, currentDocumentId) {
97 - const elements = [...iframeDocument.body.querySelectorAll(`[${TEMPLATE_ATTRIBUTE}]`)];
98 - const ids = elements.map(el => Number(el.getAttribute(DOCUMENT_WRAPPER_ATTR))).filter(id => !isNaN(id) && id !== currentDocumentId);
99 - return [...new Set(ids)];
100 -}
101 -async function fetchDocuments(ids) {
102 - const results = await Promise.all(ids.map(async id => {
103 - try {
104 - // using ajax.load instead of the document-manager as the latter causes an issue when trying to edit a template
105 - return await _elementor_editor_v1_adapters__WEBPACK_IMPORTED_MODULE_1__.ajax.load({
106 - data: {
107 - id
108 - },
109 - action: 'get_document_config',
110 - unique_id: `template-${id}`
111 - });
112 - } catch {
113 - return null;
114 - }
115 - }));
116 - return results.filter(doc => doc !== null);
117 -}
118 -
119 -/***/ }),
120 -
121 -/***/ "./packages/packages/core/editor-templates/src/render-template-styles.tsx":
122 -/*!********************************************************************************!*\
123 - !*** ./packages/packages/core/editor-templates/src/render-template-styles.tsx ***!
124 - \********************************************************************************/
125 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
126 -
127 -__webpack_require__.r(__webpack_exports__);
128 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
129 -/* harmony export */ RenderTemplateStyles: function() { return /* binding */ RenderTemplateStyles; }
130 -/* harmony export */ });
131 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
132 -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
133 -/* harmony import */ var _templates_styles_provider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./templates-styles-provider */ "./packages/packages/core/editor-templates/src/templates-styles-provider.ts");
134 -/* harmony import */ var _use_loaded_templates__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./use-loaded-templates */ "./packages/packages/core/editor-templates/src/use-loaded-templates.ts");
135 -
136 -
137 -
138 -const RenderTemplateStyles = () => {
139 - const templates = (0,_use_loaded_templates__WEBPACK_IMPORTED_MODULE_2__.useLoadedTemplates)();
140 - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
141 - const styles = templates.flatMap(extractStylesFromDocument);
142 - (0,_templates_styles_provider__WEBPACK_IMPORTED_MODULE_1__.addTemplateStyles)(styles);
143 - }, [templates]);
144 - return null;
145 -};
146 -function extractStylesFromDocument(elements) {
147 - if (!elements.length) {
148 - return [];
149 - }
150 - return elements.flatMap(extractStylesFromElement);
151 -}
152 -function extractStylesFromElement(element) {
153 - return [...Object.values(element.styles ?? {}), ...(element.elements ?? []).flatMap(extractStylesFromElement)];
154 -}
155 -
156 -/***/ }),
157 -
158 -/***/ "./packages/packages/core/editor-templates/src/store.ts":
159 -/*!**************************************************************!*\
160 - !*** ./packages/packages/core/editor-templates/src/store.ts ***!
161 - \**************************************************************/
162 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
163 -
164 -__webpack_require__.r(__webpack_exports__);
165 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
166 -/* harmony export */ selectTemplates: function() { return /* binding */ selectTemplates; },
167 -/* harmony export */ slice: function() { return /* binding */ slice; }
168 -/* harmony export */ });
169 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
170 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_0__);
171 -
172 -const initialState = {
173 - entities: {}
174 -};
175 -const slice = (0,_elementor_store__WEBPACK_IMPORTED_MODULE_0__.__createSlice)({
176 - name: 'templates',
177 - initialState,
178 - reducers: {
179 - setTemplates(state, action) {
180 - action.payload.forEach(doc => {
181 - state.entities[doc.id] = doc.elements ?? [];
182 - });
183 - },
184 - clearTemplates(state) {
185 - state.entities = {};
186 - }
187 - }
188 -});
189 -const selectEntities = state => state.templates.entities;
190 -const selectTemplates = (0,_elementor_store__WEBPACK_IMPORTED_MODULE_0__.__createSelector)([selectEntities], entities => Object.values(entities));
191 -
192 -/***/ }),
193 -
194 -/***/ "./packages/packages/core/editor-templates/src/templates-styles-provider.ts":
195 -/*!**********************************************************************************!*\
196 - !*** ./packages/packages/core/editor-templates/src/templates-styles-provider.ts ***!
197 - \**********************************************************************************/
198 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
199 -
200 -__webpack_require__.r(__webpack_exports__);
201 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
202 -/* harmony export */ addTemplateStyles: function() { return /* binding */ addTemplateStyles; },
203 -/* harmony export */ clearTemplatesStyles: function() { return /* binding */ clearTemplatesStyles; },
204 -/* harmony export */ templatesStylesProvider: function() { return /* binding */ templatesStylesProvider; }
205 -/* harmony export */ });
206 -/* harmony import */ var _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/editor-styles-repository */ "@elementor/editor-styles-repository");
207 -/* harmony import */ var _elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_0__);
208 -
209 -let styles = [];
210 -const listeners = new Set();
211 -function addTemplateStyles(newStyles) {
212 - styles = [...styles, ...newStyles];
213 - listeners.forEach(cb => cb());
214 -}
215 -function clearTemplatesStyles() {
216 - styles = [];
217 - listeners.forEach(cb => cb());
218 -}
219 -const templatesStylesProvider = (0,_elementor_editor_styles_repository__WEBPACK_IMPORTED_MODULE_0__.createStylesProvider)({
220 - key: 'templates-styles',
221 - priority: 50,
222 - subscribe: cb => {
223 - listeners.add(cb);
224 - return () => {
225 - listeners.delete(cb);
226 - };
227 - },
228 - actions: {
229 - all: () => styles,
230 - get: id => styles.find(style => style.id === id) ?? null
231 - }
232 -});
233 -
234 -/***/ }),
235 -
236 -/***/ "./packages/packages/core/editor-templates/src/use-loaded-templates.ts":
237 -/*!*****************************************************************************!*\
238 - !*** ./packages/packages/core/editor-templates/src/use-loaded-templates.ts ***!
239 - \*****************************************************************************/
240 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
241 -
242 -__webpack_require__.r(__webpack_exports__);
243 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
244 -/* harmony export */ useLoadedTemplates: function() { return /* binding */ useLoadedTemplates; }
245 -/* harmony export */ });
246 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/store */ "@elementor/store");
247 -/* harmony import */ var _elementor_store__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_store__WEBPACK_IMPORTED_MODULE_0__);
248 -/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./store */ "./packages/packages/core/editor-templates/src/store.ts");
249 -
250 -
251 -function useLoadedTemplates() {
252 - return (0,_elementor_store__WEBPACK_IMPORTED_MODULE_0__.__useSelector)(_store__WEBPACK_IMPORTED_MODULE_1__.selectTemplates);
253 -}
254 -
255 -/***/ }),
256 -
257 -/***/ "./packages/packages/core/editor-templates/src/utils.ts":
258 -/*!**************************************************************!*\
259 - !*** ./packages/packages/core/editor-templates/src/utils.ts ***!
260 - \**************************************************************/
261 -/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
262 -
263 -__webpack_require__.r(__webpack_exports__);
264 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
265 -/* harmony export */ isHandlingTemplateStyles: function() { return /* binding */ isHandlingTemplateStyles; }
266 -/* harmony export */ });
267 -/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @elementor/utils */ "@elementor/utils");
268 -/* harmony import */ var _elementor_utils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_elementor_utils__WEBPACK_IMPORTED_MODULE_0__);
269 -
270 -const MIN_PRO_VERSION_FOR_SELF_HANDLED_STYLES = '4.1';
271 -const isHandlingTemplateStyles = () => (0,_elementor_utils__WEBPACK_IMPORTED_MODULE_0__.isProActive)() && !(0,_elementor_utils__WEBPACK_IMPORTED_MODULE_0__.isProAtLeast)(MIN_PRO_VERSION_FOR_SELF_HANDLED_STYLES);
272 -
273 -/***/ }),
274 -
275 -/***/ "@elementor/editor":
276 -/*!*****************************************!*\
277 - !*** external ["elementorV2","editor"] ***!
278 - \*****************************************/
279 -/***/ (function(module) {
280 -
281 -module.exports = window["elementorV2"]["editor"];
282 -
283 -/***/ }),
284 -
285 -/***/ "@elementor/editor-documents":
286 -/*!**************************************************!*\
287 - !*** external ["elementorV2","editorDocuments"] ***!
288 - \**************************************************/
289 -/***/ (function(module) {
290 -
291 -module.exports = window["elementorV2"]["editorDocuments"];
292 -
293 -/***/ }),
294 -
295 -/***/ "@elementor/editor-styles-repository":
296 -/*!*********************************************************!*\
297 - !*** external ["elementorV2","editorStylesRepository"] ***!
298 - \*********************************************************/
299 -/***/ (function(module) {
300 -
301 -module.exports = window["elementorV2"]["editorStylesRepository"];
302 -
303 -/***/ }),
304 -
305 -/***/ "@elementor/editor-v1-adapters":
306 -/*!***************************************************!*\
307 - !*** external ["elementorV2","editorV1Adapters"] ***!
308 - \***************************************************/
309 -/***/ (function(module) {
310 -
311 -module.exports = window["elementorV2"]["editorV1Adapters"];
312 -
313 -/***/ }),
314 -
315 -/***/ "@elementor/store":
316 -/*!****************************************!*\
317 - !*** external ["elementorV2","store"] ***!
318 - \****************************************/
319 -/***/ (function(module) {
320 -
321 -module.exports = window["elementorV2"]["store"];
322 -
323 -/***/ }),
324 -
325 -/***/ "@elementor/utils":
326 -/*!****************************************!*\
327 - !*** external ["elementorV2","utils"] ***!
328 - \****************************************/
329 -/***/ (function(module) {
330 -
331 -module.exports = window["elementorV2"]["utils"];
332 -
333 -/***/ }),
334 -
335 -/***/ "react":
336 -/*!**************************!*\
337 - !*** external ["React"] ***!
338 - \**************************/
339 -/***/ (function(module) {
340 -
341 -module.exports = window["React"];
342 -
343 -/***/ })
344 -
345 -/******/ });
346 -/************************************************************************/
347 -/******/ // The module cache
348 -/******/ var __webpack_module_cache__ = {};
349 -/******/
350 -/******/ // The require function
351 -/******/ function __webpack_require__(moduleId) {
352 -/******/ // Check if module is in cache
353 -/******/ var cachedModule = __webpack_module_cache__[moduleId];
354 -/******/ if (cachedModule !== undefined) {
355 -/******/ return cachedModule.exports;
356 -/******/ }
357 -/******/ // Create a new module (and put it into the cache)
358 -/******/ var module = __webpack_module_cache__[moduleId] = {
359 -/******/ // no module.id needed
360 -/******/ // no module.loaded needed
361 -/******/ exports: {}
362 -/******/ };
363 -/******/
364 -/******/ // Execute the module function
365 -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
366 -/******/
367 -/******/ // Return the exports of the module
368 -/******/ return module.exports;
369 -/******/ }
370 -/******/
371 -/************************************************************************/
372 -/******/ /* webpack/runtime/compat get default export */
373 -/******/ !function() {
374 -/******/ // getDefaultExport function for compatibility with non-harmony modules
375 -/******/ __webpack_require__.n = function(module) {
376 -/******/ var getter = module && module.__esModule ?
377 -/******/ function() { return module['default']; } :
378 -/******/ function() { return module; };
379 -/******/ __webpack_require__.d(getter, { a: getter });
380 -/******/ return getter;
381 -/******/ };
382 -/******/ }();
383 -/******/
384 -/******/ /* webpack/runtime/define property getters */
385 -/******/ !function() {
386 -/******/ // define getter functions for harmony exports
387 -/******/ __webpack_require__.d = function(exports, definition) {
388 -/******/ for(var key in definition) {
389 -/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
390 -/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
391 -/******/ }
392 -/******/ }
393 -/******/ };
394 -/******/ }();
395 -/******/
396 -/******/ /* webpack/runtime/hasOwnProperty shorthand */
397 -/******/ !function() {
398 -/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
399 -/******/ }();
400 -/******/
401 -/******/ /* webpack/runtime/make namespace object */
402 -/******/ !function() {
403 -/******/ // define __esModule on exports
404 -/******/ __webpack_require__.r = function(exports) {
405 -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
406 -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
407 -/******/ }
408 -/******/ Object.defineProperty(exports, '__esModule', { value: true });
409 -/******/ };
410 -/******/ }();
411 -/******/
412 -/************************************************************************/
413 -var __webpack_exports__ = {};
414 -// This entry needs to be wrapped in an IIFE because it needs to be isolated against other modules in the chunk.
415 -!function() {
416 -/*!**************************************************************!*\
417 - !*** ./packages/packages/core/editor-templates/src/index.ts ***!
418 - \**************************************************************/
419 -__webpack_require__.r(__webpack_exports__);
420 -/* harmony export */ __webpack_require__.d(__webpack_exports__, {
421 -/* harmony export */ init: function() { return /* reexport safe */ _init__WEBPACK_IMPORTED_MODULE_0__.init; },
422 -/* harmony export */ isHandlingTemplateStyles: function() { return /* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_2__.isHandlingTemplateStyles; },
423 -/* harmony export */ useLoadedTemplates: function() { return /* reexport safe */ _use_loaded_templates__WEBPACK_IMPORTED_MODULE_1__.useLoadedTemplates; }
424 -/* harmony export */ });
425 -/* harmony import */ var _init__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./init */ "./packages/packages/core/editor-templates/src/init.ts");
426 -/* harmony import */ var _use_loaded_templates__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./use-loaded-templates */ "./packages/packages/core/editor-templates/src/use-loaded-templates.ts");
427 -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ "./packages/packages/core/editor-templates/src/utils.ts");
428 -
429 -
430 -
431 -}();
432 -(window.elementorV2 = window.elementorV2 || {}).editorTemplates = __webpack_exports__;
433 -/******/ })()
434 -;
435 -window.elementorV2.editorTemplates?.init?.();
1 +/*! For license information please see editor-templates.js.LICENSE.txt */
2 +!function(){"use strict";var e={"./packages/packages/core/editor-templates/src/init.ts":function(e,t,r){r.r(t),r.d(t,{init:function(){return init}});var a=r("@elementor/editor"),s=r("@elementor/editor-styles-repository"),o=r("@elementor/editor-v1-adapters"),n=r("@elementor/store"),l=r("./packages/packages/core/editor-templates/src/load-templates.ts"),c=r("./packages/packages/core/editor-templates/src/render-template-styles.tsx"),i=r("./packages/packages/core/editor-templates/src/store.ts"),p=r("./packages/packages/core/editor-templates/src/templates-styles-provider.ts"),d=r("./packages/packages/core/editor-templates/src/utils.ts");function init(){(0,d.isHandlingTemplateStyles)()&&((0,n.__registerSlice)(i.slice),s.stylesRepository.register(p.templatesStylesProvider),(0,o.registerDataHook)("after","editor/documents/attach-preview",async()=>{(0,l.unloadTemplates)(),(0,p.clearTemplatesStyles)(),await(0,l.loadTemplates)()}),(0,a.injectIntoLogic)({id:"templates-styles",component:c.RenderTemplateStyles}))}},"./packages/packages/core/editor-templates/src/load-templates.ts":function(e,t,r){r.r(t),r.d(t,{loadTemplates:function(){return loadTemplates},unloadTemplates:function(){return unloadTemplates}});var a=r("@elementor/editor-documents"),s=r("@elementor/editor-v1-adapters"),o=r("@elementor/store"),n=r("./packages/packages/core/editor-templates/src/store.ts");const l='data-elementor-post-type="elementor_library"',c="data-elementor-id";async function loadTemplates(){const e=(0,s.getCanvasIframeDocument)();if(!e)return;const t=(0,a.getV1CurrentDocument)()?.id,r=function getTemplateIds(e,t){const r=[...e.body.querySelectorAll(`[${l}]`)],a=r.map(e=>Number(e.getAttribute(c))).filter(e=>!isNaN(e)&&e!==t);return[...new Set(a)]}(e,t);if(!r.length)return;const i=await async function fetchDocuments(e){return(await Promise.all(e.map(async e=>{try{return await s.ajax.load({data:{id:e},action:"get_document_config",unique_id:`template-${e}`})}catch{return null}}))).filter(e=>null!==e)}(r);(0,o.__dispatch)(n.slice.actions.setTemplates(i))}function unloadTemplates(){(0,o.__dispatch)(n.slice.actions.clearTemplates())}},"./packages/packages/core/editor-templates/src/render-template-styles.tsx":function(e,t,r){r.r(t),r.d(t,{RenderTemplateStyles:function(){return RenderTemplateStyles}});var a=r("react"),s=r("./packages/packages/core/editor-templates/src/templates-styles-provider.ts"),o=r("./packages/packages/core/editor-templates/src/use-loaded-templates.ts");const RenderTemplateStyles=()=>{const e=(0,o.useLoadedTemplates)();return(0,a.useEffect)(()=>{const t=e.flatMap(extractStylesFromDocument);(0,s.addTemplateStyles)(t)},[e]),null};function extractStylesFromDocument(e){return e.length?e.flatMap(extractStylesFromElement):[]}function extractStylesFromElement(e){return[...Object.values(e.styles??{}),...(e.elements??[]).flatMap(extractStylesFromElement)]}},"./packages/packages/core/editor-templates/src/store.ts":function(e,t,r){r.r(t),r.d(t,{selectTemplates:function(){return o},slice:function(){return s}});var a=r("@elementor/store");const s=(0,a.__createSlice)({name:"templates",initialState:{entities:{}},reducers:{setTemplates(e,t){t.payload.forEach(t=>{e.entities[t.id]=t.elements??[]})},clearTemplates(e){e.entities={}}}}),o=(0,a.__createSelector)([e=>e.templates.entities],e=>Object.values(e))},"./packages/packages/core/editor-templates/src/templates-styles-provider.ts":function(e,t,r){r.r(t),r.d(t,{addTemplateStyles:function(){return addTemplateStyles},clearTemplatesStyles:function(){return clearTemplatesStyles},templatesStylesProvider:function(){return n}});var a=r("@elementor/editor-styles-repository");let s=[];const o=new Set;function addTemplateStyles(e){s=[...s,...e],o.forEach(e=>e())}function clearTemplatesStyles(){s=[],o.forEach(e=>e())}const n=(0,a.createStylesProvider)({key:"templates-styles",priority:50,subscribe:e=>(o.add(e),()=>{o.delete(e)}),actions:{all:()=>s,get:e=>s.find(t=>t.id===e)??null}})},"./packages/packages/core/editor-templates/src/use-loaded-templates.ts":function(e,t,r){r.r(t),r.d(t,{useLoadedTemplates:function(){return useLoadedTemplates}});var a=r("@elementor/store"),s=r("./packages/packages/core/editor-templates/src/store.ts");function useLoadedTemplates(){return(0,a.__useSelector)(s.selectTemplates)}},"./packages/packages/core/editor-templates/src/utils.ts":function(e,t,r){r.r(t),r.d(t,{isHandlingTemplateStyles:function(){return isHandlingTemplateStyles}});var a=r("@elementor/utils");const isHandlingTemplateStyles=()=>(0,a.isProActive)()&&!(0,a.isProAtLeast)("4.1")},"@elementor/editor":function(e){e.exports=window.elementorV2.editor},"@elementor/editor-documents":function(e){e.exports=window.elementorV2.editorDocuments},"@elementor/editor-styles-repository":function(e){e.exports=window.elementorV2.editorStylesRepository},"@elementor/editor-v1-adapters":function(e){e.exports=window.elementorV2.editorV1Adapters},"@elementor/store":function(e){e.exports=window.elementorV2.store},"@elementor/utils":function(e){e.exports=window.elementorV2.utils},react:function(e){e.exports=window.React}},t={};function __webpack_require__(r){var a=t[r];if(void 0!==a)return a.exports;var s=t[r]={exports:{}};return e[r](s,s.exports,__webpack_require__),s.exports}__webpack_require__.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=function(e,t){for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};!function(){__webpack_require__.r(r),__webpack_require__.d(r,{init:function(){return e.init},isHandlingTemplateStyles:function(){return a.isHandlingTemplateStyles},useLoadedTemplates:function(){return t.useLoadedTemplates}});var e=__webpack_require__("./packages/packages/core/editor-templates/src/init.ts"),t=__webpack_require__("./packages/packages/core/editor-templates/src/use-loaded-templates.ts"),a=__webpack_require__("./packages/packages/core/editor-templates/src/utils.ts")}(),(window.elementorV2=window.elementorV2||{}).editorTemplates=r}(),window.elementorV2.editorTemplates?.init?.();
436 3 //# sourceMappingURL=editor-templates.js.map