{"version":3,"sources":["https:\/\/virtual.arte.unicen.edu.ar\/lib\/amd\/src\/form-autocomplete.js"],"names":["define","$","log","str","templates","notification","LoadingIcon","KEYS","DOWN","ENTER","SPACE","ESCAPE","COMMA","UP","uniqueId","Date","now","activateSelection","index","state","selectionElement","document","getElementById","selectionId","length","children","element","get","itemId","attr","Deferred","resolve","updateSelectionList","options","originalSelect","pendingKey","inputId","M","util","js_pending","items","newSelection","activeId","activeValue","each","ele","prop","label","data","html","push","value","context","extend","render","then","js","replaceNodeContents","js_complete","catch","exception","notifyChange","core_formchangechecker","set_form_changed","change","deselectItem","item","selectedItemValue","remove","activateItem","inputElement","suggestionsElement","suggestionsId","globalIndex","scrollPos","offset","top","scrollTop","height","animate","promise","activateNextItem","current","activatePreviousSelection","selectionsElement","activateNextSelection","activatePreviousItem","closeSuggestions","hide","updateSuggestions","query","matchingElements","suggestions","option","innerHTML","searchquery","caseSensitive","toLocaleLowerCase","returnVal","replaceNode","show","node","text","indexOf","tags","get_string","done","nosuggestionsstr","createItem","val","split","found","tagindex","tag","trim","multiple","append","createTextNode","selectCurrentItem","closeSuggestionsOnSelect","focus","updateAjax","e","ajaxHandler","pendingPromise","addPendingJSPromise","parentElement","selectId","parent","addIconToContainerRemoveOnCompletion","currentTarget","transport","selector","results","processedResults","processResults","existingValues","optionIndex","isArray","resultIndex","result","error","reject","addNavigation","on","pendingJsPromise","keyCode","showSuggestions","ajax","require","preventDefault","closest","window","setTimeout","focusElement","activeElement","timeoutPromise","is","arrowElement","downArrowId","off","selectedItem","throttleTimeout","inProgress","handler","arguments","throttledHandler","clearTimeout","bind","last","key","enhance","placeholder","noSelectionString","fail","debug","css","originalLabel","collectedjs","renderInput","renderDatalist","renderSelection","when","input","selection","after","runTemplateJS"],"mappings":"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\/Ce,CA+CTtD,CAAY,CAACuD,SA\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\/H,CAA\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","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 .\n\n\/**\n * Autocomplete wrapper for select2 library.\n *\n * @module core\/form-autocomplete\n * @class autocomplete\n * @package core\n * @copyright 2015 Damyon Wiese \n * @license http:\/\/www.gnu.org\/copyleft\/gpl.html GNU GPL v3 or later\n * @since 3.0\n *\/\n\/* globals require: false *\/\ndefine(\n ['jquery', 'core\/log', 'core\/str', 'core\/templates', 'core\/notification', 'core\/loadingicon'],\nfunction($, log, str, templates, notification, LoadingIcon) {\n\n \/\/ Private functions and variables.\n \/** @var {Object} KEYS - List of keycode constants. *\/\n var KEYS = {\n DOWN: 40,\n ENTER: 13,\n SPACE: 32,\n ESCAPE: 27,\n COMMA: 44,\n UP: 38\n };\n\n var uniqueId = Date.now();\n\n \/**\n * Make an item in the selection list \"active\".\n *\n * @method activateSelection\n * @private\n * @param {Number} index The index in the current (visible) list of selection.\n * @param {Object} state State variables for this autocomplete element.\n * @return {Promise}\n *\/\n var activateSelection = function(index, state) {\n \/\/ Find the elements in the DOM.\n var selectionElement = $(document.getElementById(state.selectionId));\n\n \/\/ Count the visible items.\n var length = selectionElement.children('[aria-selected=true]').length;\n \/\/ Limit the index to the upper\/lower bounds of the list (wrap in both directions).\n index = index % length;\n while (index < 0) {\n index += length;\n }\n \/\/ Find the specified element.\n var element = $(selectionElement.children('[aria-selected=true]').get(index));\n \/\/ Create an id we can assign to this element.\n var itemId = state.selectionId + '-' + index;\n\n \/\/ Deselect all the selections.\n selectionElement.children().attr('data-active-selection', false).attr('id', '');\n \/\/ Select only this suggestion and assign it the id.\n element.attr('data-active-selection', true).attr('id', itemId);\n \/\/ Tell the input field it has a new active descendant so the item is announced.\n selectionElement.attr('aria-activedescendant', itemId);\n\n return $.Deferred().resolve();\n };\n\n \/**\n * Update the element that shows the currently selected items.\n *\n * @method updateSelectionList\n * @private\n * @param {Object} options Original options for this autocomplete element.\n * @param {Object} state State variables for this autocomplete element.\n * @param {JQuery} originalSelect The JQuery object matching the hidden select list.\n * @return {Promise}\n *\/\n var updateSelectionList = function(options, state, originalSelect) {\n var pendingKey = 'form-autocomplete-updateSelectionList-' + state.inputId;\n M.util.js_pending(pendingKey);\n\n \/\/ Build up a valid context to re-render the template.\n var items = [];\n var newSelection = $(document.getElementById(state.selectionId));\n var activeId = newSelection.attr('aria-activedescendant');\n var activeValue = false;\n\n if (activeId) {\n activeValue = $(document.getElementById(activeId)).attr('data-value');\n }\n originalSelect.children('option').each(function(index, ele) {\n if ($(ele).prop('selected')) {\n var label;\n if ($(ele).data('html')) {\n label = $(ele).data('html');\n } else {\n label = $(ele).html();\n }\n if (label !== '') {\n items.push({label: label, value: $(ele).attr('value')});\n }\n }\n });\n var context = $.extend({items: items}, options, state);\n \/\/ Render the template.\n return templates.render('core\/form_autocomplete_selection', context)\n .then(function(html, js) {\n \/\/ Add it to the page.\n templates.replaceNodeContents(newSelection, html, js);\n\n if (activeValue !== false) {\n \/\/ Reselect any previously selected item.\n newSelection.children('[aria-selected=true]').each(function(index, ele) {\n if ($(ele).attr('data-value') === activeValue) {\n activateSelection(index, state);\n }\n });\n }\n\n return activeValue;\n })\n .then(function() {\n return M.util.js_complete(pendingKey);\n })\n .catch(notification.exception);\n };\n\n \/**\n * Notify of a change in the selection.\n *\n * @param {jQuery} originalSelect The jQuery object matching the hidden select list.\n *\/\n var notifyChange = function(originalSelect) {\n if (typeof M.core_formchangechecker !== 'undefined') {\n M.core_formchangechecker.set_form_changed();\n }\n originalSelect.change();\n };\n\n \/**\n * Remove the given item from the list of selected things.\n *\n * @method deselectItem\n * @private\n * @param {Object} options Original options for this autocomplete element.\n * @param {Object} state State variables for this autocomplete element.\n * @param {Element} item The item to be deselected.\n * @param {Element} originalSelect The original select list.\n * @return {Promise}\n *\/\n var deselectItem = function(options, state, item, originalSelect) {\n var selectedItemValue = $(item).attr('data-value');\n\n \/\/ Look for a match, and toggle the selected property if there is a match.\n originalSelect.children('option').each(function(index, ele) {\n if ($(ele).attr('value') == selectedItemValue) {\n $(ele).prop('selected', false);\n \/\/ We remove newly created custom tags from the suggestions list when they are deselected.\n if ($(ele).attr('data-iscustom')) {\n $(ele).remove();\n }\n }\n });\n \/\/ Rerender the selection list.\n return updateSelectionList(options, state, originalSelect)\n .then(function() {\n \/\/ Notify that the selection changed.\n notifyChange(originalSelect);\n\n return;\n });\n };\n\n \/**\n * Make an item in the suggestions \"active\" (about to be selected).\n *\n * @method activateItem\n * @private\n * @param {Number} index The index in the current (visible) list of suggestions.\n * @param {Object} state State variables for this instance of autocomplete.\n * @return {Promise}\n *\/\n var activateItem = function(index, state) {\n \/\/ Find the elements in the DOM.\n var inputElement = $(document.getElementById(state.inputId));\n var suggestionsElement = $(document.getElementById(state.suggestionsId));\n\n \/\/ Count the visible items.\n var length = suggestionsElement.children('[aria-hidden=false]').length;\n \/\/ Limit the index to the upper\/lower bounds of the list (wrap in both directions).\n index = index % length;\n while (index < 0) {\n index += length;\n }\n \/\/ Find the specified element.\n var element = $(suggestionsElement.children('[aria-hidden=false]').get(index));\n \/\/ Find the index of this item in the full list of suggestions (including hidden).\n var globalIndex = $(suggestionsElement.children('[role=option]')).index(element);\n \/\/ Create an id we can assign to this element.\n var itemId = state.suggestionsId + '-' + globalIndex;\n\n \/\/ Deselect all the suggestions.\n suggestionsElement.children().attr('aria-selected', false).attr('id', '');\n \/\/ Select only this suggestion and assign it the id.\n element.attr('aria-selected', true).attr('id', itemId);\n \/\/ Tell the input field it has a new active descendant so the item is announced.\n inputElement.attr('aria-activedescendant', itemId);\n\n \/\/ Scroll it into view.\n var scrollPos = element.offset().top\n - suggestionsElement.offset().top\n + suggestionsElement.scrollTop()\n - (suggestionsElement.height() \/ 2);\n return suggestionsElement.animate({\n scrollTop: scrollPos\n }, 100).promise();\n };\n\n \/**\n * Find the index of the current active suggestion, and activate the next one.\n *\n * @method activateNextItem\n * @private\n * @param {Object} state State variable for this auto complete element.\n * @return {Promise}\n *\/\n var activateNextItem = function(state) {\n \/\/ Find the list of suggestions.\n var suggestionsElement = $(document.getElementById(state.suggestionsId));\n \/\/ Find the active one.\n var element = suggestionsElement.children('[aria-selected=true]');\n \/\/ Find it's index.\n var current = suggestionsElement.children('[aria-hidden=false]').index(element);\n \/\/ Activate the next one.\n return activateItem(current + 1, state);\n };\n\n \/**\n * Find the index of the current active selection, and activate the previous one.\n *\n * @method activatePreviousSelection\n * @private\n * @param {Object} state State variables for this instance of autocomplete.\n * @return {Promise}\n *\/\n var activatePreviousSelection = function(state) {\n \/\/ Find the list of selections.\n var selectionsElement = $(document.getElementById(state.selectionId));\n \/\/ Find the active one.\n var element = selectionsElement.children('[data-active-selection=true]');\n if (!element) {\n return activateSelection(0, state);\n }\n \/\/ Find it's index.\n var current = selectionsElement.children('[aria-selected=true]').index(element);\n \/\/ Activate the next one.\n return activateSelection(current - 1, state);\n };\n\n \/**\n * Find the index of the current active selection, and activate the next one.\n *\n * @method activateNextSelection\n * @private\n * @param {Object} state State variables for this instance of autocomplete.\n * @return {Promise}\n *\/\n var activateNextSelection = function(state) {\n \/\/ Find the list of selections.\n var selectionsElement = $(document.getElementById(state.selectionId));\n\n \/\/ Find the active one.\n var element = selectionsElement.children('[data-active-selection=true]');\n var current = 0;\n\n if (element) {\n \/\/ The element was found. Determine the index and move to the next one.\n current = selectionsElement.children('[aria-selected=true]').index(element);\n current = current + 1;\n } else {\n \/\/ No selected item found. Move to the first.\n current = 0;\n }\n\n return activateSelection(current, state);\n };\n\n \/**\n * Find the index of the current active suggestion, and activate the previous one.\n *\n * @method activatePreviousItem\n * @private\n * @param {Object} state State variables for this autocomplete element.\n * @return {Promise}\n *\/\n var activatePreviousItem = function(state) {\n \/\/ Find the list of suggestions.\n var suggestionsElement = $(document.getElementById(state.suggestionsId));\n\n \/\/ Find the active one.\n var element = suggestionsElement.children('[aria-selected=true]');\n\n \/\/ Find it's index.\n var current = suggestionsElement.children('[aria-hidden=false]').index(element);\n\n \/\/ Activate the previous one.\n return activateItem(current - 1, state);\n };\n\n \/**\n * Close the list of suggestions.\n *\n * @method closeSuggestions\n * @private\n * @param {Object} state State variables for this autocomplete element.\n * @return {Promise}\n *\/\n var closeSuggestions = function(state) {\n \/\/ Find the elements in the DOM.\n var inputElement = $(document.getElementById(state.inputId));\n var suggestionsElement = $(document.getElementById(state.suggestionsId));\n\n \/\/ Announce the list of suggestions was closed, and read the current list of selections.\n inputElement.attr('aria-expanded', false).attr('aria-activedescendant', state.selectionId);\n\n \/\/ Hide the suggestions list (from screen readers too).\n suggestionsElement.hide().attr('aria-hidden', true);\n\n return $.Deferred().resolve();\n };\n\n \/**\n * Rebuild the list of suggestions based on the current values in the select list, and the query.\n *\n * @method updateSuggestions\n * @private\n * @param {Object} options The original options for this autocomplete.\n * @param {Object} state The state variables for this autocomplete.\n * @param {String} query The current text for the search string.\n * @param {JQuery} originalSelect The JQuery object matching the hidden select list.\n * @return {Promise}\n *\/\n var updateSuggestions = function(options, state, query, originalSelect) {\n var pendingKey = 'form-autocomplete-updateSuggestions-' + state.inputId;\n M.util.js_pending(pendingKey);\n\n \/\/ Find the elements in the DOM.\n var inputElement = $(document.getElementById(state.inputId));\n var suggestionsElement = $(document.getElementById(state.suggestionsId));\n\n \/\/ Used to track if we found any visible suggestions.\n var matchingElements = false;\n \/\/ Options is used by the context when rendering the suggestions from a template.\n var suggestions = [];\n originalSelect.children('option').each(function(index, option) {\n if ($(option).prop('selected') !== true) {\n suggestions[suggestions.length] = {label: option.innerHTML, value: $(option).attr('value')};\n }\n });\n\n \/\/ Re-render the list of suggestions.\n var searchquery = state.caseSensitive ? query : query.toLocaleLowerCase();\n var context = $.extend({options: suggestions}, options, state);\n var returnVal = templates.render(\n 'core\/form_autocomplete_suggestions',\n context\n )\n .then(function(html, js) {\n \/\/ We have the new template, insert it in the page.\n templates.replaceNode(suggestionsElement, html, js);\n\n \/\/ Get the element again.\n suggestionsElement = $(document.getElementById(state.suggestionsId));\n \/\/ Show it if it is hidden.\n suggestionsElement.show().attr('aria-hidden', false);\n \/\/ For each option in the list, hide it if it doesn't match the query.\n suggestionsElement.children().each(function(index, node) {\n node = $(node);\n if ((options.caseSensitive && node.text().indexOf(searchquery) > -1) ||\n (!options.caseSensitive && node.text().toLocaleLowerCase().indexOf(searchquery) > -1)) {\n node.show().attr('aria-hidden', false);\n matchingElements = true;\n } else {\n node.hide().attr('aria-hidden', true);\n }\n });\n \/\/ If we found any matches, show the list.\n inputElement.attr('aria-expanded', true);\n if (originalSelect.attr('data-notice')) {\n \/\/ Display a notice rather than actual suggestions.\n suggestionsElement.html(originalSelect.attr('data-notice'));\n } else if (matchingElements) {\n \/\/ We only activate the first item in the list if tags is false,\n \/\/ because otherwise \"Enter\" would select the first item, instead of\n \/\/ creating a new tag.\n if (!options.tags) {\n activateItem(0, state);\n }\n } else {\n \/\/ Nothing matches. Tell them that.\n str.get_string('nosuggestions', 'form').done(function(nosuggestionsstr) {\n suggestionsElement.html(nosuggestionsstr);\n });\n }\n\n return suggestionsElement;\n })\n .then(function() {\n return M.util.js_complete(pendingKey);\n })\n .catch(notification.exception);\n\n return returnVal;\n };\n\n \/**\n * Create a new item for the list (a tag).\n *\n * @method createItem\n * @private\n * @param {Object} options The original options for the autocomplete.\n * @param {Object} state State variables for the autocomplete.\n * @param {JQuery} originalSelect The JQuery object matching the hidden select list.\n * @return {Promise}\n *\/\n var createItem = function(options, state, originalSelect) {\n \/\/ Find the element in the DOM.\n var inputElement = $(document.getElementById(state.inputId));\n \/\/ Get the current text in the input field.\n var query = inputElement.val();\n var tags = query.split(',');\n var found = false;\n\n $.each(tags, function(tagindex, tag) {\n \/\/ If we can only select one at a time, deselect any current value.\n tag = tag.trim();\n if (tag !== '') {\n if (!options.multiple) {\n originalSelect.children('option').prop('selected', false);\n }\n \/\/ Look for an existing option in the select list that matches this new tag.\n originalSelect.children('option').each(function(index, ele) {\n if ($(ele).attr('value') == tag) {\n found = true;\n $(ele).prop('selected', true);\n }\n });\n \/\/ Only create the item if it's new.\n if (!found) {\n var option = $('