PluginProbe
Elementor Website Builder – more than just a page builder / 4.0.8
Elementor Website Builder – more than just a page builder v4.0.8
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 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 All 452 releases
← All changes | assets/js/packages/utils/utils.js +2 -342 4.3.0-beta34.0.8 View file →
@@ -1,343 +1,3 @@
1 -(function(react) {
2 -
3 -//#region \0rolldown/runtime.js
4 - var __defProp$1 = Object.defineProperty;
5 - var __name = (target, value) => __defProp$1(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$1(target, name, {
13 - get: all[name],
14 - enumerable: true
15 - });
16 - }
17 - if (!no_symbols) {
18 - __defProp$1(target, Symbol.toStringTag, { value: "Module" });
19 - }
20 - return target;
21 - };
22 -
23 -//#endregion
24 -
25 -//#region packages/packages/libs/utils/src/errors/elementor-error.ts
26 - var __defProp = Object.defineProperty;
27 - var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
28 - enumerable: true,
29 - configurable: true,
30 - writable: true,
31 - value
32 - }) : obj[key] = value;
33 - var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
34 - var ElementorError = class extends Error {
35 - constructor(message, { code, context = null, cause = null }) {
36 - super(message, { cause });
37 - __publicField(this, "context");
38 - __publicField(this, "code");
39 - this.context = context;
40 - this.code = code;
41 - }
42 - };
43 -
44 -//#endregion
45 -//#region packages/packages/libs/utils/src/errors/create-error.ts
46 - var createError = ({ code, message }) => {
47 - return class extends ElementorError {
48 - constructor({ cause, context } = {}) {
49 - super(message, {
50 - cause,
51 - code,
52 - context
53 - });
54 - }
55 - };
56 - };
57 -
58 -//#endregion
59 -//#region packages/packages/libs/utils/src/errors/ensure-error.ts
60 - var ensureError = (error) => {
61 - if (error instanceof Error) return error;
62 - let message;
63 - let cause = null;
64 - try {
65 - message = JSON.stringify(error);
66 - } catch (e) {
67 - cause = e;
68 - message = "Unable to stringify the thrown value";
69 - }
70 - return new Error(`Unexpected non-error thrown: ${message}`, { cause });
71 - };
72 -
73 -//#endregion
74 -//#region packages/packages/libs/utils/src/debounce.ts
75 - function debounce(fn, wait) {
76 - let timer = null;
77 - const cancel = () => {
78 - if (!timer) return;
79 - clearTimeout(timer);
80 - timer = null;
81 - };
82 - const flush = (...args) => {
83 - cancel();
84 - fn(...args);
85 - };
86 - const run = (...args) => {
87 - cancel();
88 - timer = setTimeout(() => {
89 - fn(...args);
90 - timer = null;
91 - }, wait);
92 - };
93 - const pending = () => !!timer;
94 - run.flush = flush;
95 - run.cancel = cancel;
96 - run.pending = pending;
97 - return run;
98 - }
99 -
100 -//#endregion
101 -//#region packages/packages/libs/utils/src/use-debounce-state.ts
102 - function useDebounceState(options = {}) {
103 - const { delay = 300, initialValue = "" } = options;
104 - const [debouncedValue, setDebouncedValue] = (0, react.useState)(initialValue);
105 - const [inputValue, setInputValue] = (0, react.useState)(initialValue);
106 - const runRef = (0, react.useRef)(null);
107 - (0, react.useEffect)(() => {
108 - return () => {
109 - runRef.current?.cancel?.();
110 - };
111 - }, []);
112 - const debouncedSetValue = (0, react.useCallback)((val) => {
113 - runRef.current?.cancel?.();
114 - runRef.current = debounce(() => {
115 - setDebouncedValue(val);
116 - }, delay);
117 - runRef.current();
118 - }, [delay]);
119 - const handleChange = (val) => {
120 - setInputValue(val);
121 - debouncedSetValue(val);
122 - };
123 - return {
124 - debouncedValue,
125 - inputValue,
126 - handleChange,
127 - setInputValue
128 - };
129 - }
130 -
131 -//#endregion
132 -//#region packages/packages/libs/utils/src/use-debounced-callback.ts
133 - function useDebouncedCallback(callback, delay) {
134 - const callbackRef = (0, react.useRef)(callback);
135 - (0, react.useEffect)(() => {
136 - callbackRef.current = callback;
137 - }, [callback]);
138 - const debounced = (0, react.useMemo)(() => debounce((...args) => callbackRef.current(...args), delay), [delay]);
139 - (0, react.useEffect)(() => {
140 - return () => {
141 - debounced.cancel();
142 - };
143 - }, [debounced]);
144 - return debounced;
145 - }
146 -
147 -//#endregion
148 -//#region packages/packages/libs/utils/src/throttle.ts
149 - function throttle(fn, wait, shouldExecuteIgnoredCalls = false) {
150 - let timer = null;
151 - let ignoredExecution = false;
152 - const cancel = () => {
153 - if (!timer) return;
154 - clearTimeout(timer);
155 - timer = null;
156 - };
157 - const flush = (...args) => {
158 - cancel();
159 - fn(...args);
160 - };
161 - const run = (...args) => {
162 - if (timer) {
163 - ignoredExecution = true;
164 - return;
165 - }
166 - fn(...args);
167 - timer = setTimeout(() => {
168 - timer = null;
169 - if (ignoredExecution && shouldExecuteIgnoredCalls) fn(...args);
170 - ignoredExecution = false;
171 - }, wait);
172 - };
173 - const pending = () => !!timer;
174 - run.flush = flush;
175 - run.cancel = cancel;
176 - run.pending = pending;
177 - return run;
178 - }
179 -
180 -//#endregion
181 -//#region packages/packages/libs/utils/src/encoding.ts
182 - var encodeString = (value) => {
183 - const binary = Array.from(new TextEncoder().encode(value), (b) => String.fromCharCode(b)).join("");
184 - return btoa(binary);
185 - };
186 - var decodeString = (value, fallback) => {
187 - try {
188 - const binary = atob(value);
189 - const bytes = new Uint8Array(Array.from(binary, (char) => char.charCodeAt(0)));
190 - return new TextDecoder().decode(bytes);
191 - } catch {
192 - return fallback !== void 0 ? fallback : "";
193 - }
194 - };
195 -
196 -//#endregion
197 -//#region packages/packages/libs/utils/src/hash.ts
198 - function hash(obj) {
199 - return JSON.stringify(obj, (_, value) => isPlainObject(value) ? Object.keys(value).sort().reduce((result, key) => {
200 - result[key] = value[key];
201 - return result;
202 - }, {}) : value);
203 - }
204 - function isPlainObject(value) {
205 - return !!value && typeof value === "object" && !Array.isArray(value);
206 - }
207 - function hashString(str, length) {
208 - let hashBasis = 5381;
209 - let i = str.length;
210 - while (i) hashBasis = hashBasis * 33 ^ str.charCodeAt(--i);
211 - const result = (hashBasis >>> 0).toString(36);
212 - if (length === void 0) return result;
213 - return result.slice(-length).padStart(length, "0");
214 - }
215 -
216 -//#endregion
217 -//#region packages/packages/libs/utils/src/use-search-state.ts
218 - function useSearchState({ localStorageKey }) {
219 - const getInitialSearchValue = () => {
220 - if (localStorageKey) {
221 - const storedValue = localStorage.getItem(localStorageKey);
222 - if (storedValue) {
223 - localStorage.removeItem(localStorageKey);
224 - return storedValue;
225 - }
226 - }
227 - return "";
228 - };
229 - const { debouncedValue, inputValue, handleChange } = useDebounceState({
230 - delay: 300,
231 - initialValue: getInitialSearchValue()
232 - });
233 - return {
234 - debouncedValue,
235 - inputValue,
236 - handleChange
237 - };
238 - }
239 -
240 -//#endregion
241 -//#region packages/packages/libs/utils/src/generate-unique-id.ts
242 - function generateUniqueId(prefix = "") {
243 - return `${prefix ? `${prefix}-` : ""}${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
244 - }
245 -
246 -//#endregion
247 -//#region packages/packages/libs/utils/src/string-helpers.ts
248 - var capitalize = (str) => {
249 - return str.charAt(0).toUpperCase() + str.slice(1);
250 - };
251 -
252 -//#endregion
253 -//#region packages/packages/libs/utils/src/version.ts
254 - var compareVersions = (a, b) => {
255 - const aParts = String(a || "0.0.0").split(".").map(Number);
256 - const bParts = String(b || "0.0.0").split(".").map(Number);
257 - for (let i = 0; i < Math.max(aParts.length, bParts.length); i++) {
258 - const aVal = aParts[i] || 0;
259 - const bVal = bParts[i] || 0;
260 - if (aVal !== bVal) return aVal - bVal;
261 - }
262 - return 0;
263 - };
264 - var isVersionLessThan = (a, b) => {
265 - return compareVersions(a, b) < 0;
266 - };
267 - var isVersionGreaterOrEqual = (a, b) => {
268 - return compareVersions(a, b) >= 0;
269 - };
270 -
271 -//#endregion
272 -//#region packages/packages/libs/utils/src/is-pro.ts
273 - function hasProInstalled() {
274 - return window.elementor?.helpers?.hasPro?.() ?? false;
275 - }
276 - function isProActive() {
277 - if (!hasProInstalled()) return false;
278 - return window.elementorPro?.config?.isActive ?? false;
279 - }
280 - function getProVersion() {
281 - return window.elementorPro?.config?.version ?? "0.0";
282 - }
283 - function isProAtLeast(targetVersion) {
284 - const version = getProVersion();
285 - if (!version) return false;
286 - const [major, minor] = version.split(".").map(Number);
287 - const [targetMajor, targetMinor] = targetVersion.split(".").map(Number);
288 - return major > targetMajor || major === targetMajor && minor >= targetMinor;
289 - }
290 -
291 -//#endregion
292 -//#region packages/packages/libs/utils/src/translations.ts
293 - function createTranslate({ configKey, defaultStrings = {} }) {
294 - return (key, ...args) => {
295 - const appConfig = window.elementorAppConfig;
296 - const remoteStrings = Object.fromEntries(Object.entries(appConfig?.[configKey]?.translations ?? {}).filter(([, value]) => "string" === typeof value && "" !== value.trim()));
297 - let template = {
298 - ...defaultStrings,
299 - ...remoteStrings
300 - }[key];
301 - if (!template) return key;
302 - for (let i = 0; i < args.length; i++) {
303 - template = template.replace(`%${i + 1}$s`, args[i]);
304 - template = template.replace("%s", args[i]);
305 - }
306 - return template;
307 - };
308 - }
309 -
310 -//#endregion
311 -//#region packages/packages/libs/utils/src/index.ts
312 - var src_exports = /* @__PURE__ */ __exportAll({
313 - ElementorError: () => ElementorError,
314 - capitalize: () => capitalize,
315 - compareVersions: () => compareVersions,
316 - createError: () => createError,
317 - createTranslate: () => createTranslate,
318 - debounce: () => debounce,
319 - decodeString: () => decodeString,
320 - encodeString: () => encodeString,
321 - ensureError: () => ensureError,
322 - generateUniqueId: () => generateUniqueId,
323 - hasProInstalled: () => hasProInstalled,
324 - hash: () => hash,
325 - hashString: () => hashString,
326 - isProActive: () => isProActive,
327 - isProAtLeast: () => isProAtLeast,
328 - isVersionGreaterOrEqual: () => isVersionGreaterOrEqual,
329 - isVersionLessThan: () => isVersionLessThan,
330 - throttle: () => throttle,
331 - useDebounceState: () => useDebounceState,
332 - useDebouncedCallback: () => useDebouncedCallback,
333 - useSearchState: () => useSearchState
334 - });
335 -
336 -//#endregion
337 -//#region \0elementor-package-library-entry
338 - (window.elementorV2 = window.elementorV2 || {}).utils = src_exports;
339 -
340 -//#endregion
341 -})(React);
342 -window.elementorV2.utils?.init?.();
1 +/*! For license information please see utils.js.LICENSE.txt */
2 +!function(){"use strict";var e={"./packages/packages/libs/utils/src/debounce.ts":function(e,r,t){function debounce(e,r){let t=null;const cancel=()=>{t&&(clearTimeout(t),t=null)},run=(...n)=>{cancel(),t=setTimeout(()=>{e(...n),t=null},r)};return run.flush=(...r)=>{cancel(),e(...r)},run.cancel=cancel,run.pending=()=>!!t,run}t.r(r),t.d(r,{debounce:function(){return debounce}})},"./packages/packages/libs/utils/src/encoding.ts":function(e,r,t){t.r(r),t.d(r,{decodeString:function(){return decodeString},encodeString:function(){return encodeString}});const encodeString=e=>{const r=Array.from((new TextEncoder).encode(e),e=>String.fromCharCode(e)).join("");return btoa(r)},decodeString=(e,r)=>{try{const r=atob(e),t=new Uint8Array(Array.from(r,e=>e.charCodeAt(0)));return(new TextDecoder).decode(t)}catch{return void 0!==r?r:""}}},"./packages/packages/libs/utils/src/errors/create-error.ts":function(e,r,t){t.r(r),t.d(r,{createError:function(){return createError}});var n=t("./packages/packages/libs/utils/src/errors/elementor-error.ts");const createError=({code:e,message:r})=>class extends n.ElementorError{constructor({cause:t,context:n}={}){super(r,{cause:t,code:e,context:n})}}},"./packages/packages/libs/utils/src/errors/elementor-error.ts":function(e,r,t){t.r(r),t.d(r,{ElementorError:function(){return ElementorError}});class ElementorError extends Error{constructor(e,{code:r,context:t=null,cause:n=null}){super(e,{cause:n}),this.context=t,this.code=r}}},"./packages/packages/libs/utils/src/errors/ensure-error.ts":function(e,r,t){t.r(r),t.d(r,{ensureError:function(){return ensureError}});const ensureError=e=>{if(e instanceof Error)return e;let r,t=null;try{r=JSON.stringify(e)}catch(e){t=e,r="Unable to stringify the thrown value"}return new Error(`Unexpected non-error thrown: ${r}`,{cause:t})}},"./packages/packages/libs/utils/src/errors/index.ts":function(e,r,t){t.r(r),t.d(r,{ElementorError:function(){return n.ElementorError},createError:function(){return s.createError},ensureError:function(){return a.ensureError}});var n=t("./packages/packages/libs/utils/src/errors/elementor-error.ts"),s=t("./packages/packages/libs/utils/src/errors/create-error.ts"),a=t("./packages/packages/libs/utils/src/errors/ensure-error.ts")},"./packages/packages/libs/utils/src/generate-unique-id.ts":function(e,r,t){function generateUniqueId(e=""){return`${e?`${e}-`:""}${Date.now()}-${Math.random().toString(36).substring(2,9)}`}t.r(r),t.d(r,{generateUniqueId:function(){return generateUniqueId}})},"./packages/packages/libs/utils/src/hash.ts":function(e,r,t){function hash(e){return JSON.stringify(e,(e,r)=>function isPlainObject(e){return!!e&&"object"==typeof e&&!Array.isArray(e)}(r)?Object.keys(r).sort().reduce((e,t)=>(e[t]=r[t],e),{}):r)}function hashString(e,r){let t=5381,n=e.length;for(;n;)t=33*t^e.charCodeAt(--n);const s=(t>>>0).toString(36);if(void 0===r)return s;return s.slice(-r).padStart(r,"0")}t.r(r),t.d(r,{hash:function(){return hash},hashString:function(){return hashString}})},"./packages/packages/libs/utils/src/is-pro.ts":function(e,r,t){function hasProInstalled(){return window.elementor?.helpers?.hasPro?.()??!1}function isProActive(){return!!hasProInstalled()&&(window.elementorPro?.config?.isActive??!1)}function isProAtLeast(e){const r=function getProVersion(){return window.elementorPro?.config?.version??"0.0"}();if(!r)return!1;const[t,n]=r.split(".").map(Number),[s,a]=e.split(".").map(Number);return t>s||t===s&&n>=a}t.r(r),t.d(r,{hasProInstalled:function(){return hasProInstalled},isProActive:function(){return isProActive},isProAtLeast:function(){return isProAtLeast}})},"./packages/packages/libs/utils/src/string-helpers.ts":function(e,r,t){t.r(r),t.d(r,{capitalize:function(){return capitalize}});const capitalize=e=>e.charAt(0).toUpperCase()+e.slice(1)},"./packages/packages/libs/utils/src/throttle.ts":function(e,r,t){function throttle(e,r,t=!1){let n=null,s=!1;const cancel=()=>{n&&(clearTimeout(n),n=null)},run=(...a)=>{n?s=!0:(e(...a),n=setTimeout(()=>{n=null,s&&t&&e(...a),s=!1},r))};return run.flush=(...r)=>{cancel(),e(...r)},run.cancel=cancel,run.pending=()=>!!n,run}t.r(r),t.d(r,{throttle:function(){return throttle}})},"./packages/packages/libs/utils/src/translations.ts":function(e,r,t){function createTranslate({configKey:e,defaultStrings:r={}}){return(t,...n)=>{const s=window.elementorAppConfig,a=s?.[e]?.translations;let c={...r,...a}[t];if(!c)return t;for(let e=0;e<n.length;e++)c=c.replace(`%${e+1}$s`,n[e]),c=c.replace("%s",n[e]);return c}}t.r(r),t.d(r,{createTranslate:function(){return createTranslate}})},"./packages/packages/libs/utils/src/use-debounce-state.ts":function(e,r,t){t.r(r),t.d(r,{useDebounceState:function(){return useDebounceState}});var n=t("react"),s=t("./packages/packages/libs/utils/src/debounce.ts");function useDebounceState(e={}){const{delay:r=300,initialValue:t=""}=e,[a,c]=(0,n.useState)(t),[u,o]=(0,n.useState)(t),i=(0,n.useRef)(null);(0,n.useEffect)(()=>()=>{i.current?.cancel?.()},[]);const l=(0,n.useCallback)(e=>{i.current?.cancel?.(),i.current=(0,s.debounce)(()=>{c(e)},r),i.current()},[r]);return{debouncedValue:a,inputValue:u,handleChange:e=>{o(e),l(e)},setInputValue:o}}},"./packages/packages/libs/utils/src/use-search-state.ts":function(e,r,t){t.r(r),t.d(r,{useSearchState:function(){return useSearchState}});var n=t("./packages/packages/libs/utils/src/use-debounce-state.ts");function useSearchState({localStorageKey:e}){const{debouncedValue:r,inputValue:t,handleChange:s}=(0,n.useDebounceState)({delay:300,initialValue:(()=>{if(e){const r=localStorage.getItem(e);if(r)return localStorage.removeItem(e),r}return""})()});return{debouncedValue:r,inputValue:t,handleChange:s}}},"./packages/packages/libs/utils/src/version.ts":function(e,r,t){t.r(r),t.d(r,{compareVersions:function(){return compareVersions},isVersionGreaterOrEqual:function(){return isVersionGreaterOrEqual},isVersionLessThan:function(){return isVersionLessThan}});const compareVersions=(e,r)=>{const t=String(e||"0.0.0").split(".").map(Number),n=String(r||"0.0.0").split(".").map(Number);for(let e=0;e<Math.max(t.length,n.length);e++){const r=t[e]||0,s=n[e]||0;if(r!==s)return r-s}return 0},isVersionLessThan=(e,r)=>compareVersions(e,r)<0,isVersionGreaterOrEqual=(e,r)=>compareVersions(e,r)>=0},react:function(e){e.exports=window.React}},r={};function __webpack_require__(t){var n=r[t];if(void 0!==n)return n.exports;var s=r[t]={exports:{}};return e[t](s,s.exports,__webpack_require__),s.exports}__webpack_require__.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return __webpack_require__.d(r,{a:r}),r},__webpack_require__.d=function(e,r){for(var t in r)__webpack_require__.o(r,t)&&!__webpack_require__.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},__webpack_require__.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},__webpack_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var t={};!function(){__webpack_require__.r(t),__webpack_require__.d(t,{ElementorError:function(){return e.ElementorError},capitalize:function(){return i.capitalize},compareVersions:function(){return l.compareVersions},createError:function(){return e.createError},createTranslate:function(){return g.createTranslate},debounce:function(){return n.debounce},decodeString:function(){return a.decodeString},encodeString:function(){return a.encodeString},ensureError:function(){return e.ensureError},generateUniqueId:function(){return o.generateUniqueId},hasProInstalled:function(){return p.hasProInstalled},hash:function(){return c.hash},hashString:function(){return c.hashString},isProActive:function(){return p.isProActive},isProAtLeast:function(){return p.isProAtLeast},isVersionGreaterOrEqual:function(){return l.isVersionGreaterOrEqual},isVersionLessThan:function(){return l.isVersionLessThan},throttle:function(){return s.throttle},useDebounceState:function(){return r.useDebounceState},useSearchState:function(){return u.useSearchState}});var e=__webpack_require__("./packages/packages/libs/utils/src/errors/index.ts"),r=__webpack_require__("./packages/packages/libs/utils/src/use-debounce-state.ts"),n=__webpack_require__("./packages/packages/libs/utils/src/debounce.ts"),s=__webpack_require__("./packages/packages/libs/utils/src/throttle.ts"),a=__webpack_require__("./packages/packages/libs/utils/src/encoding.ts"),c=__webpack_require__("./packages/packages/libs/utils/src/hash.ts"),u=__webpack_require__("./packages/packages/libs/utils/src/use-search-state.ts"),o=__webpack_require__("./packages/packages/libs/utils/src/generate-unique-id.ts"),i=__webpack_require__("./packages/packages/libs/utils/src/string-helpers.ts"),l=__webpack_require__("./packages/packages/libs/utils/src/version.ts"),p=__webpack_require__("./packages/packages/libs/utils/src/is-pro.ts"),g=__webpack_require__("./packages/packages/libs/utils/src/translations.ts")}(),(window.elementorV2=window.elementorV2||{}).utils=t}(),window.elementorV2.utils?.init?.();
343 3 //# sourceMappingURL=utils.js.map