Your IP : 216.73.216.95


Current Path : /var/www/ljmtc/cbt/lib/amd/build/
Upload File :
Current File : /var/www/ljmtc/cbt/lib/amd/build/showhidesettings.min.js.map

{"version":3,"sources":["../src/showhidesettings.js"],"names":["define","$","dependencies","isCheckboxHiddenElement","$el","is","siblings","attr","length","isWrongRadioButton","value","isCheckedRelevant","isUncheckedRadioButton","prop","isUncheckedCheckbox","isMultiSelect","multiSelectMatches","values","selected","val","i","hasOwnProperty","indexOf","depFns","notchecked","$dependon","hide","each","idx","el","checked","noitemselected","eq","hiddenVal","split","defaultCondition","getElementsByName","name","checkDependency","condition","updateDependencies","toHide","dependonname","dependon","elements","elToHide","$parent","closest","show","initHandlers","depname","on","hideDependencyInfo","init","opts"],"mappings":"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","sourcesContent":["/**\n * Show/hide admin settings based on other settings selected\n *\n * @package core\n * @copyright 2018 Davo Smith, Synergy Learning\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(['jquery'], function($) {\n    var dependencies;\n\n    // -------------------------------------------------\n    // Support functions, used by dependency functions.\n    // -------------------------------------------------\n\n    /**\n     * Check to see if the given element is the hidden element that makes sure checkbox\n     * elements always submit a value.\n     * @param {jQuery} $el\n     * @returns {boolean}\n     */\n    function isCheckboxHiddenElement($el) {\n        return ($el.is('input[type=hidden]') && $el.siblings('input[type=checkbox][name=\"' + $el.attr('name') + '\"]').length);\n    }\n\n    /**\n     * Check to see if this is a radio button with the wrong value (i.e. a radio button from\n     * the group we are interested in, but not the specific one we wanted).\n     * @param {jQuery} $el\n     * @param {string} value\n     * @returns {boolean}\n     */\n    function isWrongRadioButton($el, value) {\n        return ($el.is('input[type=radio]') && $el.attr('value') !== value);\n    }\n\n    /**\n     * Is this element relevant when we're looking for checked / not checked status?\n     * @param {jQuery} $el\n     * @param {string} value\n     * @returns {boolean}\n     */\n    function isCheckedRelevant($el, value) {\n        return (!isCheckboxHiddenElement($el) && !isWrongRadioButton($el, value));\n    }\n\n    /**\n     * Is this an unchecked radio button? (If it is, we want to skip it, as\n     * we're only interested in the value of the radio button that is checked)\n     * @param {jQuery} $el\n     * @returns {boolean}\n     */\n    function isUncheckedRadioButton($el) {\n        return ($el.is('input[type=radio]') && !$el.prop('checked'));\n    }\n\n    /**\n     * Is this an unchecked checkbox?\n     * @param {jQuery} $el\n     * @returns {boolean}\n     */\n    function isUncheckedCheckbox($el) {\n        return ($el.is('input[type=checkbox]') && !$el.prop('checked'));\n    }\n\n    /**\n     * Is this a multi-select select element?\n     * @param {jQuery} $el\n     * @returns {boolean}\n     */\n    function isMultiSelect($el) {\n        return ($el.is('select') && $el.prop('multiple'));\n    }\n\n    /**\n     * Does the multi-select exactly match the list of values provided?\n     * @param {jQuery} $el\n     * @param {array} values\n     * @returns {boolean}\n     */\n    function multiSelectMatches($el, values) {\n        var selected = $el.val() || [];\n        if (!values.length) {\n            // No values - nothing to match against.\n            return false;\n        }\n        if (selected.length !== values.length) {\n            // Different number of expected and actual values - cannot possibly be a match.\n            return false;\n        }\n        for (var i in selected) {\n            if (selected.hasOwnProperty(i)) {\n                if (values.indexOf(selected[i]) === -1) {\n                    return false; // Found a non-matching value - give up immediately.\n                }\n            }\n        }\n        // Didn't find a non-matching value, so we have a match.\n        return true;\n    }\n\n    // -------------------------------\n    // Specific dependency functions.\n    // -------------------------------\n\n    var depFns = {\n        notchecked: function($dependon, value) {\n            var hide = false;\n            value = String(value);\n            $dependon.each(function(idx, el) {\n                var $el = $(el);\n                if (isCheckedRelevant($el, value)) {\n                    hide = hide || !$el.prop('checked');\n                }\n            });\n            return hide;\n        },\n\n        checked: function($dependon, value) {\n            var hide = false;\n            value = String(value);\n            $dependon.each(function(idx, el) {\n                var $el = $(el);\n                if (isCheckedRelevant($el, value)) {\n                    hide = hide || $el.prop('checked');\n                }\n            });\n            return hide;\n        },\n\n        noitemselected: function($dependon) {\n            var hide = false;\n            $dependon.each(function(idx, el) {\n                var $el = $(el);\n                hide = hide || ($el.prop('selectedIndex') === -1);\n            });\n            return hide;\n        },\n\n        eq: function($dependon, value) {\n            var hide = false;\n            var hiddenVal = false;\n            value = String(value);\n            $dependon.each(function(idx, el) {\n                var $el = $(el);\n                if (isUncheckedRadioButton($el)) {\n                    // For radio buttons, we're only interested in the one that is checked.\n                    return;\n                }\n                if (isCheckboxHiddenElement($el)) {\n                    // This is the hidden input that is part of the checkbox setting.\n                    // We will use this value, if the associated checkbox is unchecked.\n                    hiddenVal = ($el.val() === value);\n                    return;\n                }\n                if (isUncheckedCheckbox($el)) {\n                    // Checkbox is not checked - hide depends on the 'unchecked' value stored in\n                    // the associated hidden element, which we have already found, above.\n                    hide = hide || hiddenVal;\n                    return;\n                }\n                if (isMultiSelect($el)) {\n                    // Expect a list of values to match, separated by '|' - all of them must\n                    // match the values selected.\n                    var values = value.split('|');\n                    hide = multiSelectMatches($el, values);\n                    return;\n                }\n                // All other element types - just compare the value directly.\n                hide = hide || ($el.val() === value);\n            });\n            return hide;\n        },\n\n        'in': function($dependon, value) {\n            var hide = false;\n            var hiddenVal = false;\n            var values = value.split('|');\n            $dependon.each(function(idx, el) {\n                var $el = $(el);\n                if (isUncheckedRadioButton($el)) {\n                    // For radio buttons, we're only interested in the one that is checked.\n                    return;\n                }\n                if (isCheckboxHiddenElement($el)) {\n                    // This is the hidden input that is part of the checkbox setting.\n                    // We will use this value, if the associated checkbox is unchecked.\n                    hiddenVal = (values.indexOf($el.val()) > -1);\n                    return;\n                }\n                if (isUncheckedCheckbox($el)) {\n                    // Checkbox is not checked - hide depends on the 'unchecked' value stored in\n                    // the associated hidden element, which we have already found, above.\n                    hide = hide || hiddenVal;\n                    return;\n                }\n                if (isMultiSelect($el)) {\n                    // For multiselect, we check to see if the list of values provided matches the list selected.\n                    hide = multiSelectMatches($el, values);\n                    return;\n                }\n                // All other element types - check to see if the value is in the list.\n                hide = hide || (values.indexOf($el.val()) > -1);\n            });\n            return hide;\n        },\n\n        defaultCondition: function($dependon, value) { // Not equal.\n            var hide = false;\n            var hiddenVal = false;\n            value = String(value);\n            $dependon.each(function(idx, el) {\n                var $el = $(el);\n                if (isUncheckedRadioButton($el)) {\n                    // For radio buttons, we're only interested in the one that is checked.\n                    return;\n                }\n                if (isCheckboxHiddenElement($el)) {\n                    // This is the hidden input that is part of the checkbox setting.\n                    // We will use this value, if the associated checkbox is unchecked.\n                    hiddenVal = ($el.val() !== value);\n                    return;\n                }\n                if (isUncheckedCheckbox($el)) {\n                    // Checkbox is not checked - hide depends on the 'unchecked' value stored in\n                    // the associated hidden element, which we have already found, above.\n                    hide = hide || hiddenVal;\n                    return;\n                }\n                if (isMultiSelect($el)) {\n                    // Expect a list of values to match, separated by '|' - all of them must\n                    // match the values selected to *not* hide the element.\n                    var values = value.split('|');\n                    hide = !multiSelectMatches($el, values);\n                    return;\n                }\n                // All other element types - just compare the value directly.\n                hide = hide || ($el.val() !== value);\n            });\n            return hide;\n        }\n    };\n\n    /**\n     * Find the element with the given name\n     * @param {String} name\n     * @returns {*|jQuery|HTMLElement}\n     */\n    function getElementsByName(name) {\n        // For the array elements, we use [name^=\"something[\"] to find the elements that their name begins with 'something['/\n        // This is to find both name = 'something[]' and name='something[index]'.\n        return $('[name=\"' + name + '\"],[name^=\"' + name + '[\"]');\n    }\n\n    /**\n     * Check to see whether a particular condition is met\n     * @param {*|jQuery|HTMLElement} $dependon\n     * @param {String} condition\n     * @param {mixed} value\n     * @returns {Boolean}\n     */\n    function checkDependency($dependon, condition, value) {\n        if (typeof depFns[condition] === \"function\") {\n            return depFns[condition]($dependon, value);\n        }\n        return depFns.defaultCondition($dependon, value);\n    }\n\n    /**\n     * Show / hide the elements that depend on some elements.\n     */\n    function updateDependencies() {\n        // Process all dependency conditions.\n        var toHide = {};\n        $.each(dependencies, function(dependonname) {\n            var dependon = getElementsByName(dependonname);\n            $.each(dependencies[dependonname], function(condition, values) {\n                $.each(values, function(value, elements) {\n                    var hide = checkDependency(dependon, condition, value);\n                    $.each(elements, function(idx, elToHide) {\n                        if (toHide.hasOwnProperty(elToHide)) {\n                            toHide[elToHide] = toHide[elToHide] || hide;\n                        } else {\n                            toHide[elToHide] = hide;\n                        }\n                    });\n                });\n            });\n        });\n\n        // Update the hidden status of all relevant elements.\n        $.each(toHide, function(elToHide, hide) {\n            getElementsByName(elToHide).each(function(idx, el) {\n                var $parent = $(el).closest('.form-item');\n                if ($parent.length) {\n                    if (hide) {\n                        $parent.hide();\n                    } else {\n                        $parent.show();\n                    }\n                }\n            });\n        });\n    }\n\n    /**\n     * Initialise the event handlers.\n     */\n    function initHandlers() {\n        $.each(dependencies, function(depname) {\n            var $el = getElementsByName(depname);\n            if ($el.length) {\n                $el.on('change', updateDependencies);\n            }\n        });\n        updateDependencies();\n    }\n\n    /**\n     * Hide the 'this setting may be hidden' messages.\n     */\n    function hideDependencyInfo() {\n        $('.form-dependenton').hide();\n    }\n\n    return {\n        init: function(opts) {\n            dependencies = opts.dependencies;\n            initHandlers();\n            hideDependencyInfo();\n        }\n    };\n});"],"file":"showhidesettings.min.js"}