File: /var/www/html/formacion.bdp.com.py-bk/lib/amd/build/inplace_editable.min.js.map
{"version":3,"file":"inplace_editable.min.js","sources":["../src/inplace_editable.js"],"sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle. If not, see <http://www.gnu.org/licenses/>.\n\n/**\n * AJAX helper for the inline editing a value.\n *\n * This script is automatically included from template core/inplace_editable\n * It registers a click-listener on [data-inplaceeditablelink] link (the \"inplace edit\" icon),\n * then replaces the displayed value with an input field. On \"Enter\" it sends a request\n * to web service core_update_inplace_editable, which invokes the specified callback.\n * Any exception thrown by the web service (or callback) is displayed as an error popup.\n *\n * @module core/inplace_editable\n * @copyright 2016 Marina Glancy\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n * @since 3.1\n */\ndefine(['jquery',\n 'core/ajax',\n 'core/templates',\n 'core/notification',\n 'core/str',\n 'core/config',\n 'core/url',\n 'core/form-autocomplete',\n 'core/pending',\n ],\n function($, ajax, templates, notification, str, cfg, url, autocomplete, Pending) {\n\n $('body').on('click keypress', '[data-inplaceeditable] [data-inplaceeditablelink]', function(e) {\n if (e.type === 'keypress' && e.keyCode !== 13) {\n return;\n }\n var editingEnabledPromise = new Pending('autocomplete-start-editing');\n e.stopImmediatePropagation();\n e.preventDefault();\n var target = $(this),\n mainelement = target.closest('[data-inplaceeditable]');\n\n var addSpinner = function(element) {\n element.addClass('updating');\n var spinner = element.find('img.spinner');\n if (spinner.length) {\n spinner.show();\n } else {\n spinner = $('<img/>')\n .attr('src', url.imageUrl('i/loading_small'))\n .addClass('spinner').addClass('smallicon')\n ;\n element.append(spinner);\n }\n };\n\n var removeSpinner = function(element) {\n element.removeClass('updating');\n element.find('img.spinner').hide();\n };\n\n var updateValue = function(mainelement, value) {\n var pendingId = [\n mainelement.attr('data-itemid'),\n mainelement.attr('data-component'),\n mainelement.attr('data-itemtype'),\n ].join('-');\n var pendingPromise = new Pending(pendingId);\n\n addSpinner(mainelement);\n ajax.call([{\n methodname: 'core_update_inplace_editable',\n args: {\n itemid: mainelement.attr('data-itemid'),\n component: mainelement.attr('data-component'),\n itemtype: mainelement.attr('data-itemtype'),\n value: value,\n },\n }])[0]\n .then(function(data) {\n return templates.render('core/inplace_editable', data)\n .then(function(html, js) {\n var oldvalue = mainelement.attr('data-value');\n var newelement = $(html);\n templates.replaceNode(mainelement, newelement, js);\n newelement.find('[data-inplaceeditablelink]').focus();\n newelement.trigger({\n type: 'updated',\n ajaxreturn: data,\n oldvalue: oldvalue,\n });\n\n return;\n });\n })\n .then(function() {\n return pendingPromise.resolve();\n })\n .fail(function(ex) {\n var e = $.Event('updatefailed', {\n exception: ex,\n newvalue: value\n });\n removeSpinner(mainelement);\n M.util.js_complete(pendingId);\n mainelement.trigger(e);\n if (!e.isDefaultPrevented()) {\n notification.exception(ex);\n }\n });\n };\n\n var turnEditingOff = function(el) {\n el.find('input').off();\n el.find('select').off();\n el.html(el.attr('data-oldcontent'));\n el.removeAttr('data-oldcontent');\n el.removeClass('inplaceeditingon');\n el.find('[data-inplaceeditablelink]').focus();\n };\n\n var turnEditingOffEverywhere = function() {\n $('span.inplaceeditable.inplaceeditingon').each(function() {\n turnEditingOff($(this));\n });\n };\n\n var uniqueId = function(prefix, idlength) {\n var uniqid = prefix,\n i;\n for (i = 0; i < idlength; i++) {\n uniqid += String(Math.floor(Math.random() * 10));\n }\n // Make sure this ID is not already taken by an existing element.\n if ($(\"#\" + uniqid).length === 0) {\n return uniqid;\n }\n return uniqueId(prefix, idlength);\n };\n\n var turnEditingOnText = function(el) {\n str.get_string('edittitleinstructions').done(function(s) {\n var instr = $('<span class=\"editinstructions\">' + s + '</span>').\n attr('id', uniqueId('id_editinstructions_', 20)),\n inputelement = $('<input type=\"text\"/>').\n attr('id', uniqueId('id_inplacevalue_', 20)).\n attr('value', el.attr('data-value')).\n attr('aria-describedby', instr.attr('id')).\n addClass('ignoredirty').\n addClass('form-control'),\n lbl = $('<label class=\"accesshide\">' + mainelement.attr('data-editlabel') + '</label>').\n attr('for', inputelement.attr('id'));\n el.html('').append(instr).append(lbl).append(inputelement);\n\n inputelement.focus();\n inputelement.select();\n inputelement.on('keyup keypress focusout', function(e) {\n if (cfg.behatsiterunning && e.type === 'focusout') {\n // Behat triggers focusout too often.\n return;\n }\n if (e.type === 'keypress' && e.keyCode === 13) {\n // We need 'keypress' event for Enter because keyup/keydown would catch Enter that was\n // pressed in other fields.\n var val = inputelement.val();\n turnEditingOff(el);\n updateValue(el, val);\n }\n if ((e.type === 'keyup' && e.keyCode === 27) || e.type === 'focusout') {\n // We need 'keyup' event for Escape because keypress does not work with Escape.\n turnEditingOff(el);\n }\n });\n });\n };\n\n var turnEditingOnToggle = function(el, newvalue) {\n turnEditingOff(el);\n updateValue(el, newvalue);\n };\n\n var turnEditingOnSelect = function(el, options) {\n var i,\n inputelement = $('<select></select>').\n attr('id', uniqueId('id_inplacevalue_', 20)).\n addClass('custom-select'),\n lbl = $('<label class=\"accesshide\">' + mainelement.attr('data-editlabel') + '</label>')\n .attr('for', inputelement.attr('id'));\n for (i in options) {\n inputelement\n .append($('<option>')\n .attr('value', options[i].key)\n .html(options[i].value));\n }\n inputelement.val(el.attr('data-value'));\n\n el.html('')\n .append(lbl)\n .append(inputelement);\n\n inputelement.focus();\n inputelement.select();\n inputelement.on('keyup change focusout', function(e) {\n if (cfg.behatsiterunning && e.type === 'focusout') {\n // Behat triggers focusout too often.\n return;\n }\n if (e.type === 'change') {\n var val = inputelement.val();\n turnEditingOff(el);\n updateValue(el, val);\n }\n if ((e.type === 'keyup' && e.keyCode === 27) || e.type === 'focusout') {\n // We need 'keyup' event for Escape because keypress does not work with Escape.\n turnEditingOff(el);\n }\n });\n };\n\n var turnEditingOnAutocomplete = function(el, args) {\n var i,\n inputelement = $('<select></select>').\n attr('id', uniqueId('id_inplacevalue_', 20)).\n addClass('form-autocomplete-original-select').\n addClass('custom-select'),\n lbl = $('<label class=\"accesshide\">' + mainelement.attr('data-editlabel') + '</label>')\n .attr('for', inputelement.attr('id')),\n options = args.options,\n attributes = args.attributes,\n saveelement = $('<a href=\"#\"></a>'),\n cancelelement = $('<a href=\"#\"></a>');\n\n for (i in options) {\n inputelement\n .append($('<option>')\n .attr('value', options[i].key)\n .html(options[i].value));\n }\n if (attributes.multiple) {\n inputelement.attr('multiple', 'true');\n }\n inputelement.val(JSON.parse(el.attr('data-value')));\n\n str.get_string('savechanges', 'core').then(function(s) {\n return templates.renderPix('e/save', 'core', s);\n }).then(function(html) {\n saveelement.append(html);\n return;\n }).fail(notification.exception);\n\n str.get_string('cancel', 'core').then(function(s) {\n return templates.renderPix('e/cancel', 'core', s);\n }).then(function(html) {\n cancelelement.append(html);\n return;\n }).fail(notification.exception);\n\n el.html('')\n .append(lbl)\n .append(inputelement)\n .append(saveelement)\n .append(cancelelement);\n\n inputelement.focus();\n inputelement.select();\n autocomplete.enhance(inputelement,\n attributes.tags,\n attributes.ajax,\n attributes.placeholder,\n attributes.caseSensitive,\n attributes.showSuggestions,\n attributes.noSelectionString)\n .then(function() {\n // Focus on the enhanced combobox.\n el.find('[role=combobox]').focus();\n // Stop eslint nagging.\n return;\n }).fail(notification.exception);\n\n inputelement.on('keyup', function(e) {\n if ((e.type === 'keyup' && e.keyCode === 27) || e.type === 'focusout') {\n // We need 'keyup' event for Escape because keypress does not work with Escape.\n turnEditingOff(el);\n }\n });\n saveelement.on('click', function(e) {\n var val = JSON.stringify(inputelement.val());\n // We need to empty the node to destroy all event handlers etc.\n inputelement.empty();\n turnEditingOff(el);\n updateValue(el, val);\n e.preventDefault();\n });\n cancelelement.on('click', function(e) {\n // We need to empty the node to destroy all event handlers etc.\n inputelement.empty();\n turnEditingOff(el);\n e.preventDefault();\n });\n };\n\n var turnEditingOn = function(el) {\n el.addClass('inplaceeditingon');\n el.attr('data-oldcontent', el.html());\n\n var type = el.attr('data-type');\n var options = el.attr('data-options');\n\n if (type === 'toggle') {\n turnEditingOnToggle(el, options);\n } else if (type === 'select') {\n turnEditingOnSelect(el, $.parseJSON(options));\n } else if (type === 'autocomplete') {\n turnEditingOnAutocomplete(el, $.parseJSON(options));\n } else {\n turnEditingOnText(el);\n }\n };\n\n // Turn editing on for the current element and register handler for Enter/Esc keys.\n turnEditingOffEverywhere();\n turnEditingOn(mainelement);\n editingEnabledPromise.resolve();\n\n });\n\n return {};\n});\n"],"names":["define","$","ajax","templates","notification","str","cfg","url","autocomplete","Pending","on","e","type","keyCode","editingEnabledPromise","stopImmediatePropagation","preventDefault","mainelement","this","closest","updateValue","value","pendingId","attr","join","pendingPromise","element","addClass","spinner","find","length","show","imageUrl","append","addSpinner","call","methodname","args","itemid","component","itemtype","then","data","render","html","js","oldvalue","newelement","replaceNode","focus","trigger","ajaxreturn","resolve","fail","ex","Event","exception","newvalue","removeClass","hide","M","util","js_complete","isDefaultPrevented","turnEditingOff","el","off","removeAttr","uniqueId","prefix","idlength","i","uniqid","String","Math","floor","random","each","options","turnEditingOnToggle","inputelement","lbl","key","val","select","behatsiterunning","turnEditingOnSelect","parseJSON","attributes","saveelement","cancelelement","multiple","JSON","parse","get_string","s","renderPix","enhance","tags","placeholder","caseSensitive","showSuggestions","noSelectionString","stringify","empty","turnEditingOnAutocomplete","done","instr","turnEditingOnText","turnEditingOn"],"mappings":"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"}