HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //var/www/quadcode/node_modules/alpinejs/src/ids.js
import { findClosest } from './lifecycle'

let globalIdMemo = {}

export function findAndIncrementId(name) {
    if (! globalIdMemo[name]) globalIdMemo[name] = 0

    return ++globalIdMemo[name]
}

export function closestIdRoot(el, name) {
    return findClosest(el, element => {
        if (element._x_ids && element._x_ids[name]) return true
    })
}

export function setIdRoot(el, name) {
    if (! el._x_ids) el._x_ids = {}
    if (! el._x_ids[name]) el._x_ids[name] = findAndIncrementId(name) 
}