aboutsummaryrefslogtreecommitdiff
path: root/static/js/ext/include-vals.js
blob: 53332d391c714a61620f9933979b76e7cda9f3e8 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
(function(){
    if (htmx.version && !htmx.version.startsWith("1.")) {
        console.warn("WARNING: You are using an htmx 1 extension with htmx " + htmx.version +
            ".  It is recommended that you move to the version of this extension found on https://htmx.org/extensions")
    }

    function mergeObjects(obj1, obj2) {
        for (var key in obj2) {
            if (obj2.hasOwnProperty(key)) {
                obj1[key] = obj2[key];
            }
        }
        return obj1;
    }

    htmx.defineExtension('include-vals', {
        onEvent: function (name, evt) {
            if (name === "htmx:configRequest") {
                var includeValsElt = htmx.closest(evt.detail.elt, "[include-vals],[data-include-vals]");
                if (includeValsElt) {
                    var includeVals = includeValsElt.getAttribute("include-vals") || includeValsElt.getAttribute("data-include-vals");
                    var valuesToInclude = eval("({" + includeVals + "})");
                    mergeObjects(evt.detail.parameters, valuesToInclude);
                }
            }
        }
    });
})();