PluginProbe
Elementor Website Builder – more than just a page builder / 4.1.0-dev3
Elementor Website Builder – more than just a page builder v4.1.0-dev3
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 -164 4.3.2 → 4.1.0-dev3 View file →
@@ -1,165 +1,3 @@
1 -(function(_elementor_editor, _elementor_editor_styles_repository, _elementor_editor_v1_adapters, _elementor_store, _elementor_editor_documents, react, _elementor_utils) {
2 -
3 -//#region \0rolldown/runtime.js
4 - var __defProp = Object.defineProperty;
5 - var __name = (target, value) => __defProp(target, "name", {
6 - value,
7 - configurable: true
8 - });
9 - var __exportAll = (all, no_symbols) => {
10 - let target = {};
11 - for (var name in all) {
12 - __defProp(target, name, {
13 - get: all[name],
14 - enumerable: true
15 - });
16 - }
17 - if (!no_symbols) {
18 - __defProp(target, Symbol.toStringTag, { value: "Module" });
19 - }
20 - return target;
21 - };
22 -
23 -//#endregion
24 -
25 -//#region packages/packages/core/editor-templates/src/store.ts
26 - var initialState = { entities: {} };
27 - var slice = (0, _elementor_store.__createSlice)({
28 - name: "templates",
29 - initialState,
30 - reducers: {
31 - setTemplates(state, action) {
32 - action.payload.forEach((doc) => {
33 - state.entities[doc.id] = doc.elements ?? [];
34 - });
35 - },
36 - clearTemplates(state) {
37 - state.entities = {};
38 - }
39 - }
40 - });
41 - var selectEntities = (state) => state.templates.entities;
42 - var selectTemplates = (0, _elementor_store.__createSelector)([selectEntities], (entities) => Object.values(entities));
43 -
44 -//#endregion
45 -//#region packages/packages/core/editor-templates/src/load-templates.ts
46 - var TEMPLATE_ATTRIBUTE = "data-elementor-post-type=\"elementor_library\"";
47 - var DOCUMENT_WRAPPER_ATTR = "data-elementor-id";
48 - async function loadTemplates() {
49 - const iframeDocument = (0, _elementor_editor_v1_adapters.getCanvasIframeDocument)();
50 - if (!iframeDocument) return;
51 - const currentDocumentId = (0, _elementor_editor_documents.getV1CurrentDocument)()?.id;
52 - const templateIds = getTemplateIds(iframeDocument, currentDocumentId);
53 - if (!templateIds.length) return;
54 - const documents = await fetchDocuments(templateIds);
55 - (0, _elementor_store.__dispatch)(slice.actions.setTemplates(documents));
56 - }
57 - function unloadTemplates() {
58 - (0, _elementor_store.__dispatch)(slice.actions.clearTemplates());
59 - }
60 - function getTemplateIds(iframeDocument, currentDocumentId) {
61 - const ids = [...iframeDocument.body.querySelectorAll(`[${TEMPLATE_ATTRIBUTE}]`)].map((el) => Number(el.getAttribute(DOCUMENT_WRAPPER_ATTR))).filter((id) => !isNaN(id) && id !== currentDocumentId);
62 - return [...new Set(ids)];
63 - }
64 - async function fetchDocuments(ids) {
65 - return (await Promise.all(ids.map(async (id) => {
66 - try {
67 - return await _elementor_editor_v1_adapters.ajax.load({
68 - data: { id },
69 - action: "get_document_config",
70 - unique_id: `template-${id}`
71 - });
72 - } catch {
73 - return null;
74 - }
75 - }))).filter((doc) => doc !== null);
76 - }
77 -
78 -//#endregion
79 -//#region packages/packages/core/editor-templates/src/templates-styles-provider.ts
80 - var styles = [];
81 - var listeners = /* @__PURE__ */ new Set();
82 - function addTemplateStyles(newStyles) {
83 - styles = [...styles, ...newStyles];
84 - listeners.forEach((cb) => cb());
85 - }
86 - function clearTemplatesStyles() {
87 - styles = [];
88 - listeners.forEach((cb) => cb());
89 - }
90 - var templatesStylesProvider = (0, _elementor_editor_styles_repository.createStylesProvider)({
91 - key: "templates-styles",
92 - priority: 50,
93 - subscribe: (cb) => {
94 - listeners.add(cb);
95 - return () => {
96 - listeners.delete(cb);
97 - };
98 - },
99 - actions: {
100 - all: () => styles,
101 - get: (id) => styles.find((style) => style.id === id) ?? null
102 - }
103 - });
104 -
105 -//#endregion
106 -//#region packages/packages/core/editor-templates/src/use-loaded-templates.ts
107 - function useLoadedTemplates() {
108 - return (0, _elementor_store.__useSelector)(selectTemplates);
109 - }
110 -
111 -//#endregion
112 -//#region packages/packages/core/editor-templates/src/render-template-styles.tsx
113 - var RenderTemplateStyles = () => {
114 - const templates = useLoadedTemplates();
115 - (0, react.useEffect)(() => {
116 - addTemplateStyles(templates.flatMap(extractStylesFromDocument));
117 - }, [templates]);
118 - return null;
119 - };
120 - function extractStylesFromDocument(elements) {
121 - if (!elements.length) return [];
122 - return elements.flatMap(extractStylesFromElement);
123 - }
124 - function extractStylesFromElement(element) {
125 - return [...Object.values(element.styles ?? {}), ...(element.elements ?? []).flatMap(extractStylesFromElement)];
126 - }
127 -
128 -//#endregion
129 -//#region packages/packages/core/editor-templates/src/utils.ts
130 - var MIN_PRO_VERSION_FOR_SELF_HANDLED_STYLES = "4.1";
131 - var isHandlingTemplateStyles = () => (0, _elementor_utils.isProActive)() && !(0, _elementor_utils.isProAtLeast)(MIN_PRO_VERSION_FOR_SELF_HANDLED_STYLES);
132 -
133 -//#endregion
134 -//#region packages/packages/core/editor-templates/src/init.ts
135 - function init() {
136 - if (!isHandlingTemplateStyles()) return;
137 - (0, _elementor_store.__registerSlice)(slice);
138 - _elementor_editor_styles_repository.stylesRepository.register(templatesStylesProvider);
139 - (0, _elementor_editor_v1_adapters.registerDataHook)("after", "editor/documents/attach-preview", async () => {
140 - unloadTemplates();
141 - clearTemplatesStyles();
142 - await loadTemplates();
143 - });
144 - (0, _elementor_editor.injectIntoLogic)({
145 - id: "templates-styles",
146 - component: RenderTemplateStyles
147 - });
148 - }
149 -
150 -//#endregion
151 -//#region packages/packages/core/editor-templates/src/index.ts
152 - var src_exports = /* @__PURE__ */ __exportAll({
153 - init: () => init,
154 - isHandlingTemplateStyles: () => isHandlingTemplateStyles,
155 - useLoadedTemplates: () => useLoadedTemplates
156 - });
157 -
158 -//#endregion
159 -//#region \0elementor-package-library-entry
160 - (window.elementorV2 = window.elementorV2 || {}).editorTemplates = src_exports;
161 -
162 -//#endregion
163 -})(elementorV2.editor, elementorV2.editorStylesRepository, elementorV2.editorV1Adapters, elementorV2.store, elementorV2.editorDocuments, React, elementorV2.utils);
164 -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?.();
165 3 //# sourceMappingURL=editor-templates.js.map