UNPKG

11.3 kBSource Map (JSON)View Raw
1{"version":3,"sources":["autocomplete/pl-autocomplete.js"],"names":["window","Ractive","controller","component","data","el","config","done","_refresh","top","_$el","input","offset","width","outerWidth","height","outerHeight","Autocomplete","set","get","length","listContent","listPosition","_select","event","select","val","_change","change","_charCode","original","charCode","keyCode","plName","$","extend","focused","inEdition","listfocused","listTop","listWidth","listHeight","selection","partials","templateDefault","join","refresh","clear","focus","find","list","template","on","parseInt","keypath","substring","lastIndexOf","value","stopPropagation","preventDefault","context","blur","keydown","keyup","autoSelection","observe","setTimeout"],"mappings":"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","file":"autocomplete/pl-autocomplete.min.js","sourcesContent":["(function() {\n 'use strict';\n\n window.Ractive.controller('pl-autocomplete', function(component, data, el, config, done) {\n\n var Autocomplete = component({\n plName: 'pl-autocomplete',\n data: $.extend(true, {\n focused: false,\n inEdition: false,\n listfocused: -1,\n listTop: 0,\n listWidth: 0,\n listHeight: 0,\n selection: ''\n }, data),\n partials: $.extend(true, {\n templateDefault: [\n '<div',\n ' class=\"pl-autocomplete-list-item {{listfocused == @index ? \\'focused\\' : \\'\\'}}\"',\n ' on-mousedown=\"selectListItem\"',\n ' on-mouseenter=\"enterListItem\"',\n '>',\n '{{{display}}}',\n '</div>'\n ].join('')\n }, config.partials),\n\n refresh: function() {\n _refresh();\n },\n\n clear: function() {\n if (_$el.input.val()) {\n _$el.input.val('');\n _change(event);\n }\n\n if (Autocomplete.get('list')) {\n Autocomplete.set('list', null);\n }\n\n if (Autocomplete.get('listfocused') !== -1) {\n Autocomplete.set('listfocused', -1);\n }\n\n if (Autocomplete.get('selection')) {\n Autocomplete.set('selection', null);\n }\n },\n\n focus: function() {\n _$el.input.focus();\n }\n }),\n _$el = {\n window: $(window),\n input: $(Autocomplete.el).find('.pl-autocomplete-input'),\n selection: $(Autocomplete.el).find('.pl-autocomplete-selection'),\n list: $(Autocomplete.el).find('.pl-autocomplete-list'),\n listContent: $(Autocomplete.el).find('.pl-autocomplete-list-content')\n };\n\n function _refresh() {\n var top = _$el.input.offset().top,\n width = _$el.input.outerWidth(),\n height = _$el.input.outerHeight();\n\n Autocomplete.set('inEdition', Autocomplete.get('focused') && Autocomplete.get('list') && Autocomplete.get('list').length);\n\n Autocomplete.set('listWidth', width);\n Autocomplete.set('listHeight', Autocomplete.get('focused') ? _$el.listContent.outerHeight() : 0);\n\n var listPosition = Autocomplete.get('listposition') || 'auto';\n\n if (\n listPosition == 'top' ||\n (listPosition == 'auto' && top + (height - 2) + Autocomplete.get('listHeight') > _$el.window.height())\n ) {\n Autocomplete.set('listFromBottom', true);\n Autocomplete.set('listTop', -Autocomplete.get('listHeight') + 2);\n }\n else {\n Autocomplete.set('listFromBottom', false);\n Autocomplete.set('listTop', height - 2);\n }\n\n Autocomplete.set('selectionWidth', width);\n }\n\n function _select(event) {\n var select = Autocomplete.get('select');\n if (select) {\n select(event, _$el.input.val(), Autocomplete);\n }\n }\n\n function _change(event) {\n var change = Autocomplete.get('change');\n if (change) {\n change(event, _$el.input.val(), Autocomplete);\n }\n }\n\n function _charCode(event) {\n return event.original.charCode ? event.original.charCode : event.original.keyCode;\n }\n\n Autocomplete.partials.template = Autocomplete.partials.template || Autocomplete.partials.templateDefault;\n\n Autocomplete.on('enterListItem', function(event) {\n var list = Autocomplete.get('list'),\n listfocused = parseInt(event.keypath.substring(event.keypath.lastIndexOf('.') + 1), 10);\n\n Autocomplete.set('listfocused', listfocused);\n Autocomplete.set('selection', list && list.length && list[listfocused].value || '');\n });\n\n Autocomplete.on('selectListItem', function(event) {\n event.original.stopPropagation();\n event.original.preventDefault();\n\n _$el.input.val(event.context.value);\n\n _change(event);\n _select(event);\n });\n\n Autocomplete.on('inputFocus', function(event) {\n Autocomplete.set('focused', true);\n\n _refresh();\n\n var focus = Autocomplete.get('focus');\n if (focus) {\n focus(event, _$el.input.val(), Autocomplete);\n }\n });\n\n Autocomplete.on('inputBlur', function(event) {\n Autocomplete.set('focused', false);\n\n _refresh();\n\n var blur = Autocomplete.get('blur');\n if (blur) {\n blur(event, _$el.input.val(), Autocomplete);\n }\n });\n\n Autocomplete.on('inputKeydown', function(event) {\n var charCode = _charCode(event);\n\n if (charCode == 9) {\n var selection = Autocomplete.get('selection');\n\n if (selection && _$el.input.val() != selection) {\n event.original.stopPropagation();\n event.original.preventDefault();\n\n _$el.input.val(selection);\n\n _change(event);\n\n return;\n }\n }\n\n var keydown = Autocomplete.get('keydown');\n if (keydown) {\n keydown(event, Autocomplete);\n }\n });\n\n Autocomplete.on('inputKeyup', function(event) {\n var keyup = Autocomplete.get('keyup');\n if (keyup) {\n if (keyup(event, Autocomplete) === false) {\n return;\n }\n }\n\n var charCode = _charCode(event),\n autoSelection = (Autocomplete.get('autoselection') || 'true') == 'true',\n selection = Autocomplete.get('selection'),\n list = Autocomplete.get('list'),\n listfocused = Autocomplete.get('listfocused');\n\n // Right\n if (autoSelection && charCode == 39 && selection) {\n _$el.input.val(selection);\n\n _change(event);\n\n return;\n }\n\n // Top - Bottom\n if ((charCode == 38 || charCode == 40) && list && list.length) {\n listfocused = listfocused + (charCode == 38 ? -1 : 1);\n listfocused = listfocused == -2 ? list.length - 1 : listfocused;\n listfocused = listfocused == list.length ? -1 : listfocused;\n\n Autocomplete.set('listfocused', listfocused);\n Autocomplete.set('selection', list && list.length && list[listfocused].value || '');\n\n return;\n }\n\n // Enter\n if (charCode == 13) {\n if (!list || !list.length || listfocused === -1) {\n _select(event);\n }\n else if (list && list.length && list[listfocused]) {\n _$el.input.val(list[listfocused].value);\n\n Autocomplete.set('listfocused', -1);\n\n _change(event);\n _select(event);\n }\n\n return;\n }\n\n _change(event);\n });\n\n Autocomplete.observe('list', function(list) {\n Autocomplete.set('selection', list && list.length && list[0].value || '');\n Autocomplete.set('listfocused', -1);\n\n setTimeout(_refresh);\n });\n\n done();\n });\n\n})();\n"],"sourceRoot":"/source/"}
\No newline at end of file