📁 File Manager Pro
v10.0.3 | PHP: 8.2.31
Server: LiteSpeed
2026-07-02 06:18:50
📂
/ (Root)
/
home
/
orkouolp
/
web
/
testing.orkobd
/
laravel
/
node_modules
/
alpinejs
/
src
/
directives
📍 /home/orkouolp/web/testing.orkobd/laravel/node_modules/alpinejs/src/directives
🔄 Refresh
✏️
Editing: x-modelable.js
Writable
import { directive } from '../directives' import { entangle } from '../entangle'; directive('modelable', (el, { expression }, { effect, evaluateLater, cleanup }) => { let func = evaluateLater(expression) let innerGet = () => { let result; func(i => result = i); return result; } let evaluateInnerSet = evaluateLater(`${expression} = __placeholder`) let innerSet = val => evaluateInnerSet(() => {}, { scope: { '__placeholder': val }}) let initialValue = innerGet() innerSet(initialValue) queueMicrotask(() => { if (! el._x_model) return // Remove native event listeners as these are now bound with x-modelable. // The reason for this is that it's often useful to wrap <input> elements // in x-modelable/model, but the input events from the native input // override any functionality added by x-modelable causing confusion. el._x_removeModelListeners['default']() let outerGet = el._x_model.get let outerSet = el._x_model.set let releaseEntanglement = entangle( { get() { return outerGet() }, set(value) { outerSet(value) }, }, { get() { return innerGet() }, set(value) { innerSet(value) }, }, ) cleanup(releaseEntanglement) }) })
💾 Save Changes
❌ Cancel