{"version":3,"sources":["../src/errors/elementor-error.ts","../src/errors/create-error.ts","../src/errors/ensure-error.ts","../src/use-debounce-state.ts","../src/debounce.ts","../src/use-debounced-callback.ts","../src/throttle.ts","../src/encoding.ts","../src/hash.ts","../src/use-search-state.ts","../src/generate-unique-id.ts","../src/string-helpers.ts","../src/version.ts","../src/is-pro.ts","../src/translations.ts"],"sourcesContent":["export type ElementorErrorOptions = {\n\tcause?: Error[ 'cause' ];\n\tcontext?: Record< string, unknown > | null;\n\tcode: string;\n};\n\nexport class ElementorError extends Error {\n\treadonly context: ElementorErrorOptions[ 'context' ];\n\treadonly code: ElementorErrorOptions[ 'code' ];\n\n\tconstructor( message: string, { code, context = null, cause = null }: ElementorErrorOptions ) {\n\t\tsuper( message, { cause } );\n\t\tthis.context = context;\n\t\tthis.code = code;\n\t}\n}\n","import { ElementorError, type ElementorErrorOptions } from './elementor-error';\n\nexport type CreateErrorParams = {\n\tcode: ElementorErrorOptions[ 'code' ];\n\tmessage: string;\n};\n\nexport const createError = < T extends ElementorErrorOptions[ 'context' ] >( { code, message }: CreateErrorParams ) => {\n\treturn class extends ElementorError {\n\t\tconstructor( { cause, context }: { cause?: ElementorErrorOptions[ 'cause' ]; context?: T } = {} ) {\n\t\t\tsuper( message, { cause, code, context } );\n\t\t}\n\t};\n};\n","export const ensureError = ( error: unknown ) => {\n\tif ( error instanceof Error ) {\n\t\treturn error;\n\t}\n\n\tlet message: string;\n\tlet cause: unknown = null;\n\n\ttry {\n\t\tmessage = JSON.stringify( error );\n\t} catch ( e ) {\n\t\tcause = e;\n\t\tmessage = 'Unable to stringify the thrown value';\n\t}\n\treturn new Error( `Unexpected non-error thrown: ${ message }`, { cause } );\n};\n","import { useCallback, useEffect, useRef, useState } from 'react';\nimport type * as React from 'react';\n\nimport { debounce } from './debounce';\n\nexport type UseDebounceStateOptions = {\n\tdelay?: number;\n\tinitialValue?: string;\n};\n\nexport type UseDebounceStateResult = {\n\tdebouncedValue: string;\n\tinputValue: string;\n\thandleChange: ( val: string ) => void;\n\tsetImmediateValue: ( val: string ) => void;\n\tsetInputValue: React.Dispatch< React.SetStateAction< string > >;\n};\n\nexport function useDebounceState( options: UseDebounceStateOptions = {} ): UseDebounceStateResult {\n\tconst { delay = 300, initialValue = '' } = options;\n\n\tconst [ debouncedValue, setDebouncedValue ] = useState( initialValue );\n\tconst [ inputValue, setInputValue ] = useState( initialValue );\n\n\tconst runRef = useRef< ReturnType< typeof debounce > | null >( null );\n\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\trunRef.current?.cancel?.();\n\t\t};\n\t}, [] );\n\n\tconst debouncedSetValue = useCallback(\n\t\t( val: string ) => {\n\t\t\trunRef.current?.cancel?.();\n\t\t\trunRef.current = debounce( () => {\n\t\t\t\tsetDebouncedValue( val );\n\t\t\t}, delay );\n\t\t\trunRef.current();\n\t\t},\n\t\t[ delay ]\n\t);\n\n\tconst handleChange = ( val: string ) => {\n\t\tsetInputValue( val );\n\t\tdebouncedSetValue( val );\n\t};\n\n\tconst setImmediateValue = ( val: string ) => {\n\t\trunRef.current?.cancel?.();\n\t\tsetInputValue( val );\n\t\tsetDebouncedValue( val );\n\t};\n\n\treturn {\n\t\tdebouncedValue,\n\t\tinputValue,\n\t\thandleChange,\n\t\tsetImmediateValue,\n\t\tsetInputValue,\n\t};\n}\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function debounce< TArgs extends any[] >( fn: ( ...args: TArgs ) => void, wait: number ) {\n\tlet timer: ReturnType< typeof setTimeout > | null = null;\n\n\tconst cancel = () => {\n\t\tif ( ! timer ) {\n\t\t\treturn;\n\t\t}\n\n\t\tclearTimeout( timer );\n\t\ttimer = null;\n\t};\n\n\tconst flush = ( ...args: TArgs ) => {\n\t\tcancel();\n\n\t\tfn( ...args );\n\t};\n\n\tconst run = ( ...args: TArgs ) => {\n\t\tcancel();\n\n\t\ttimer = setTimeout( () => {\n\t\t\tfn( ...args );\n\n\t\t\ttimer = null;\n\t\t}, wait );\n\t};\n\n\tconst pending = () => !! timer;\n\n\trun.flush = flush;\n\trun.cancel = cancel;\n\trun.pending = pending;\n\n\treturn run;\n}\n","import { useEffect, useMemo, useRef } from 'react';\n\nimport { debounce } from './debounce';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function useDebouncedCallback< TArgs extends any[] >( callback: ( ...args: TArgs ) => void, delay: number ) {\n\tconst callbackRef = useRef( callback );\n\n\tuseEffect( () => {\n\t\tcallbackRef.current = callback;\n\t}, [ callback ] );\n\n\tconst debounced = useMemo(\n\t\t() => debounce( ( ...args: TArgs ) => callbackRef.current( ...args ), delay ),\n\t\t[ delay ]\n\t);\n\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tdebounced.cancel();\n\t\t};\n\t}, [ debounced ] );\n\n\treturn debounced;\n}\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function throttle< TArgs extends any[] >(\n\tfn: ( ...args: TArgs ) => void,\n\twait: number,\n\tshouldExecuteIgnoredCalls: boolean = false\n) {\n\tlet timer: ReturnType< typeof setTimeout > | null = null;\n\tlet ignoredExecution: boolean = false;\n\n\tconst cancel = () => {\n\t\tif ( ! timer ) {\n\t\t\treturn;\n\t\t}\n\n\t\tclearTimeout( timer );\n\t\ttimer = null;\n\t};\n\n\tconst flush = ( ...args: TArgs ) => {\n\t\tcancel();\n\n\t\tfn( ...args );\n\t};\n\n\tconst run = ( ...args: TArgs ) => {\n\t\tif ( timer ) {\n\t\t\tignoredExecution = true;\n\t\t\treturn;\n\t\t}\n\n\t\tfn( ...args );\n\n\t\ttimer = setTimeout( () => {\n\t\t\ttimer = null;\n\n\t\t\tif ( ignoredExecution && shouldExecuteIgnoredCalls ) {\n\t\t\t\tfn( ...args );\n\t\t\t}\n\n\t\t\tignoredExecution = false;\n\t\t}, wait );\n\t};\n\n\tconst pending = () => !! timer;\n\n\trun.flush = flush;\n\trun.cancel = cancel;\n\trun.pending = pending;\n\n\treturn run;\n}\n","export const encodeString = ( value: string ): string => {\n\tconst binary = Array.from( new TextEncoder().encode( value ), ( b ) => String.fromCharCode( b ) ).join( '' );\n\treturn btoa( binary );\n};\n\nexport const decodeString = < T = string >( value: string, fallback?: T ): string | T => {\n\ttry {\n\t\tconst binary = atob( value );\n\t\tconst bytes = new Uint8Array( Array.from( binary, ( char ) => char.charCodeAt( 0 ) ) );\n\t\treturn new TextDecoder().decode( bytes );\n\t} catch {\n\t\treturn fallback !== undefined ? fallback : '';\n\t}\n};\n","/* eslint-disable no-bitwise */\ntype UnknownObject = Record< string, unknown >;\n\n// Inspired by:\n// https://github.com/TanStack/query/blob/66ea5f2fc/packages/query-core/src/utils.ts#L212\nexport function hash( obj: UnknownObject ): string {\n\treturn JSON.stringify( obj, ( _, value ) =>\n\t\tisPlainObject( value )\n\t\t\t? Object.keys( value )\n\t\t\t\t\t.sort()\n\t\t\t\t\t.reduce< UnknownObject >( ( result, key ) => {\n\t\t\t\t\t\tresult[ key ] = value[ key ];\n\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}, {} )\n\t\t\t: value\n\t);\n}\n\nfunction isPlainObject( value: unknown ): value is UnknownObject {\n\treturn !! value && typeof value === 'object' && ! Array.isArray( value );\n}\n\n// Inspired by:\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nexport function hashString( str: string, length?: number ): string {\n\tlet hashBasis = 5381;\n\n\tlet i = str.length;\n\twhile ( i ) {\n\t\thashBasis = ( hashBasis * 33 ) ^ str.charCodeAt( --i );\n\t}\n\n\t/* JavaScript does bitwise operations (like XOR, above) on 32-bit signed\n\t * integers. Since we want the results to be always positive, convert the\n\t * signed int to an unsigned by doing an unsigned bitshift. */\n\tconst result = ( hashBasis >>> 0 ).toString( 36 );\n\n\tif ( length === undefined ) {\n\t\treturn result;\n\t}\n\n\tconst sliced = result.slice( -length );\n\treturn sliced.padStart( length, '0' );\n}\n","import { useDebounceState, type UseDebounceStateResult } from './use-debounce-state';\n\nexport type UseSearchStateResult = UseDebounceStateResult;\n\nexport function useSearchState( { localStorageKey }: { localStorageKey?: string } ) {\n\tconst getInitialSearchValue = () => {\n\t\tif ( localStorageKey ) {\n\t\t\tconst storedValue = localStorage.getItem( localStorageKey );\n\t\t\tif ( storedValue ) {\n\t\t\t\tlocalStorage.removeItem( localStorageKey );\n\t\t\t\treturn storedValue;\n\t\t\t}\n\t\t}\n\t\treturn '';\n\t};\n\tconst { debouncedValue, inputValue, handleChange } = useDebounceState( {\n\t\tdelay: 300,\n\t\tinitialValue: getInitialSearchValue(),\n\t} );\n\treturn {\n\t\tdebouncedValue,\n\t\tinputValue,\n\t\thandleChange,\n\t};\n}\n","export function generateUniqueId( prefix: string = '' ): string {\n\tconst prefixStr = prefix ? `${ prefix }-` : '';\n\n\treturn `${ prefixStr }${ Date.now() }-${ Math.random().toString( 36 ).substring( 2, 9 ) }`;\n}\n","export const capitalize = ( str: string ): string => {\n\treturn str.charAt( 0 ).toUpperCase() + str.slice( 1 );\n};\n","export const compareVersions = ( a: string | number, b: string | number ): number => {\n\tconst aParts = String( a || '0.0.0' )\n\t\t.split( '.' )\n\t\t.map( Number );\n\tconst bParts = String( b || '0.0.0' )\n\t\t.split( '.' )\n\t\t.map( Number );\n\n\tfor ( let i = 0; i < Math.max( aParts.length, bParts.length ); i++ ) {\n\t\tconst aVal = aParts[ i ] || 0;\n\t\tconst bVal = bParts[ i ] || 0;\n\t\tif ( aVal !== bVal ) {\n\t\t\treturn aVal - bVal;\n\t\t}\n\t}\n\treturn 0;\n};\n\nexport const isVersionLessThan = ( a: string | number, b: string | number ): boolean => {\n\treturn compareVersions( a, b ) < 0;\n};\n\nexport const isVersionGreaterOrEqual = ( a: string | number, b: string | number ): boolean => {\n\treturn compareVersions( a, b ) >= 0;\n};\n","export function hasProInstalled(): boolean {\n\treturn window.elementor?.helpers?.hasPro?.() ?? false;\n}\n\nexport function isProActive(): boolean {\n\tif ( ! hasProInstalled() ) {\n\t\treturn false;\n\t}\n\n\treturn window.elementorPro?.config?.isActive ?? false;\n}\n\nfunction getProVersion(): string {\n\treturn window.elementorPro?.config?.version ?? '0.0';\n}\n\nexport function isProAtLeast( targetVersion: string ): boolean {\n\tconst version = getProVersion();\n\n\tif ( ! version ) {\n\t\treturn false;\n\t}\n\n\tconst [ major, minor ] = version.split( '.' ).map( Number );\n\tconst [ targetMajor, targetMinor ] = targetVersion.split( '.' ).map( Number );\n\n\treturn major > targetMajor || ( major === targetMajor && minor >= targetMinor );\n}\n","type TranslateFunction = ( key: string, ...args: string[] ) => string;\n\ninterface CreateTranslateOptions {\n\tconfigKey: string;\n\tdefaultStrings?: Record< string, string >;\n}\n\nexport function createTranslate( { configKey, defaultStrings = {} }: CreateTranslateOptions ): TranslateFunction {\n\treturn ( key: string, ...args: string[] ): string => {\n\t\tconst appConfig = window.elementorAppConfig as\n\t\t\t| Record< string, { translations?: Record< string, string > } >\n\t\t\t| undefined;\n\t\tconst remoteStrings = Object.fromEntries(\n\t\t\tObject.entries( appConfig?.[ configKey ]?.translations ?? {} ).filter(\n\t\t\t\t( [ , value ] ) => 'string' === typeof value && '' !== value.trim()\n\t\t\t)\n\t\t);\n\t\tconst strings: Record< string, string > = {\n\t\t\t...defaultStrings,\n\t\t\t...remoteStrings,\n\t\t};\n\n\t\tlet template = strings[ key ];\n\n\t\tif ( ! template ) {\n\t\t\treturn key;\n\t\t}\n\n\t\tfor ( let i = 0; i < args.length; i++ ) {\n\t\t\ttemplate = template.replace( `%${ i + 1 }$s`, args[ i ] );\n\t\t\ttemplate = template.replace( '%s', args[ i ] );\n\t\t}\n\n\t\treturn template;\n\t};\n}\n"],"mappings":"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","names":["useEffect","useRef","useRef","useEffect"]}