{"version":3,"sources":["jsdelivr-header.js","/npm/@rsession/jquery-chained@2.0.0-beta.2/jquery.chained.remote.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,CCSC,SAAU,GACP,aAEA,EAAE,GAAG,cAAgB,SAAS,GAE1B,IAAI,EAAW,EAAE,OAAO,CAAC,EAAG,EAAE,GAAG,cAAc,SAAU,GAOzD,OAJI,EAAS,UACT,EAAS,OAAQ,GAGd,KAAK,MAAK,WAGb,IAAI,EAAO,KACP,GAAU,EA6Dd,SAAS,EAAM,GAEX,IAAI,EAAc,EAAE,YAAa,GAAM,MAGvC,EAAE,SAAU,GAAM,SAEd,EAAE,QAAQ,GAGV,EAAE,KAAK,GAAM,SAAS,EAAK,GACvB,EAAE,KAAK,GAAO,SAAS,EAAK,GACxB,GAAI,aAAe,EACf,EAAc,MACX,CACH,IAAI,EAAS,EAAE,cAAc,IAAI,GAAK,OAAO,GAC7C,EAAE,GAAM,OAAO,EACnB,CACJ,GACJ,IAIA,EAAE,KAAK,GAAM,SAAS,EAAK,GACvB,GAAI,EAAK,eAAe,GAEpB,GAAI,aAAe,EACf,EAAc,MACX,CACH,IAAI,EAAS,EAAE,cAAc,IAAI,GAAK,OAAO,GAC7C,EAAE,GAAM,OAAO,EACnB,CAER,IAIJ,EAAE,GAAM,WAAW,MAAK,WAChB,EAAE,MAAM,QAAU,EAAc,IAChC,EAAE,MAAM,KAAK,WAAY,WAEjC,IAGI,IAAM,EAAE,SAAU,GAAM,QAA4B,KAAlB,EAAE,GAAM,MAC1C,EAAE,GAAM,KAAK,YAAY,GAEzB,EAAE,GAAM,KAAK,YAAY,EAEjC,CA5GA,EAAE,EAAS,SAAS,MAAK,WACrB,EAAE,MAAM,KAAK,UAAU,WAGnB,IAAI,EAAO,CAAC,EACZ,EAAE,EAAS,SAAS,MAAK,WACrB,IAAI,EAAK,EAAE,MAAM,KAAK,EAAS,WAC3B,GAAS,EAAE,MAAM,GAAG,UAAY,EAAE,YAAa,MAAQ,EAAE,OAAO,MACpE,EAAK,GAAM,EAGP,EAAS,SACT,EAAE,EAAS,SAAS,MAAK,WAErB,GAAI,IAAS,KAAM,CACf,IAAI,EAAK,EAAE,MAAM,KAAK,EAAS,WAC3B,EAAQ,EAAE,MAAM,MACpB,EAAK,GAAM,CACf,CACJ,GAER,IAII,GAAW,EAAE,WAAW,EAAQ,SAChC,EAAQ,QACR,GAAU,GAGV,EAAS,QACL,EAAS,QAET,EAAM,KAAK,EAAM,CAAC,GAAK,EAAS,UAGhC,EAAE,SAAU,GAAM,SAItB,EAAE,GAAM,QAAQ,WAGpB,EAAU,EAAE,QAAQ,EAAS,IAAK,GAAM,SAAS,GAC7C,EAAO,EAAS,KAAK,GACrB,EAAM,KAAK,EAAM,GAEjB,EAAE,GAAM,QAAQ,SACpB,GACJ,IAGI,EAAS,YACT,EAAM,KAAK,EAAM,EAAS,WAC1B,EAAS,UAAY,KAE7B,GAqDJ,GACJ,EAGA,EAAE,GAAG,gBAAkB,EAAE,GAAG,cAG5B,EAAE,GAAG,cAAc,SAAW,CAC1B,UAAW,OACX,QAAS,KACT,UAAW,KACX,QAAS,KACT,OAAO,EACP,KAAM,SAAS,GAAQ,OAAO,CAAM,EAG3C,CA/IA,CA+IE,OAAO,QAAU,OAAO,MAAO,OAAQ","file":"/npm/@rsession/jquery-chained@2.0.0-beta.2/jquery.chained.remote.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/@rsession/jquery-chained@2.0.0-beta.2/jquery.chained.remote.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/*\n * Chained - jQuery / Zepto chained selects plugin\n *\n * Copyright (c) 2010-2017 Mika Tuupola\n *\n * Licensed under the MIT license:\n *   http://www.opensource.org/licenses/mit-license.php\n *\n * Project home:\n *   http://www.appelsiini.net/projects/chained\n *\n * Version: 2.0.0-beta.2\n *\n */\n\n;(function($, window, document, undefined) {\n    \"use strict\";\n\n    $.fn.remoteChained = function(options) {\n\n        var settings = $.extend({}, $.fn.remoteChained.defaults, options);\n\n        /* Loading text always clears the select. */\n        if (settings.loading) {\n            settings.clear = true;\n        }\n\n        return this.each(function() {\n\n            /* Save this to self because this changes when scope changes. */\n            var self = this;\n            var request = false; /* Track xhr requests. */\n\n            $(settings.parents).each(function() {\n                $(this).bind(\"change\", function() {\n\n                    /* Build data array from parents values. */\n                    var data = {};\n                    $(settings.parents).each(function() {\n                        var id = $(this).attr(settings.attribute);\n                        var value = ($(this).is(\"select\") ? $(\":selected\", this) : $(this)).val();\n                        data[id] = value;\n\n                        /* Optionally also depend on values from these inputs. */\n                        if (settings.depends) {\n                            $(settings.depends).each(function() {\n                                /* Do not include own value. */\n                                if (self !== this) {\n                                    var id = $(this).attr(settings.attribute);\n                                    var value = $(this).val();\n                                    data[id] = value;\n                                }\n                            });\n                        }\n                    });\n\n                    /* If previous request running, abort it. */\n                    /* TODO: Probably should use Sinon to test this. */\n                    if (request && $.isFunction(request.abort)) {\n                        request.abort();\n                        request = false;\n                    }\n\n                    if (settings.clear) {\n                        if (settings.loading) {\n                            /* Clear the select and show loading text. */\n                            build.call(self, {\"\" : settings.loading});\n                        } else {\n                            /* Clear the select. */\n                            $(\"option\", self).remove();\n                        }\n\n                        /* Force updating the children to clear too. */\n                        $(self).trigger(\"change\");\n                    }\n\n                    request = $.getJSON(settings.url, data, function(json) {\n                        json = settings.data(json);\n                        build.call(self, json);\n                        /* Force updating the children. */\n                        $(self).trigger(\"change\");\n                    });\n                });\n\n                /* If we have bootstrapped data given in options. */\n                if (settings.bootstrap) {\n                    build.call(self, settings.bootstrap);\n                    settings.bootstrap = null;\n                }\n            });\n\n            /* Build the select from given data. */\n            function build(json) {\n                /* If select already had something selected, preserve it. */\n                var selectedKey = $(\":selected\", self).val();\n\n                /* Clear the select. */\n                $(\"option\", self).remove();\n\n                if ($.isArray(json)) {\n                    /* Add new options from json which is an array of objects. */\n                    /* [ {\"\":\"--\"},{\"series-1\":\"1 series\"},{\"series-3\"}:{\"3 series\"}] */\n                    $.each(json, function(key, value) {\n                        $.each(value, function(key, value) {\n                            if (\"selected\" === key) {\n                                selectedKey = value;\n                            } else {\n                                var option = $(\"<option />\").val(key).append(value);\n                                $(self).append(option);\n                            }\n                        });\n                    });\n                } else {\n                    /* Add new options from json which is an object. */\n                    /* {\"\":\"--\",\"series-1\":\"1 series\",\"series-3\":\"3 series\"} */\n                    $.each(json, function(key, value) {\n                        if (json.hasOwnProperty(key)) {\n                            /* Set the selected option from JSON. */\n                            if (\"selected\" === key) {\n                                selectedKey = value;\n                            } else {\n                                var option = $(\"<option />\").val(key).append(value);\n                                $(self).append(option);\n                            }\n                        }\n                    });\n                }\n\n                /* Loop option again to set selected. IE needed this... */\n                $(self).children().each(function() {\n                    if ($(this).val() === selectedKey + \"\") {\n                        $(this).attr(\"selected\", \"selected\");\n                    }\n                });\n\n                /* If we have only the default value disable select. */\n                if (1 === $(\"option\", self).length && $(self).val() === \"\") {\n                    $(self).prop(\"disabled\", true);\n                } else {\n                    $(self).prop(\"disabled\", false);\n                }\n            }\n        });\n    };\n\n    /* Alias for those who like to use more English like syntax. */\n    $.fn.remoteChainedTo = $.fn.remoteChained;\n\n    /* Default settings for plugin. */\n    $.fn.remoteChained.defaults = {\n        attribute: \"name\",\n        depends: null,\n        bootstrap: null,\n        loading: null,\n        clear: false,\n        data: function(json) { return json; }\n    };\n\n})(window.jQuery || window.Zepto, window, document);\n"]}