diff --git a/bower.json b/bower.json index 63a242d3..bb9419fa 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "angucomplete-alt", - "version": "0.0.41", + "version": "0.0.42", "homepage": "http://ghiden.github.io/angucomplete-alt/", "authors": [ "Hidenari Nozaki " diff --git a/dist/angucomplete-alt.min.js b/dist/angucomplete-alt.min.js index 3da73e4d..abc9606e 100644 --- a/dist/angucomplete-alt.min.js +++ b/dist/angucomplete-alt.min.js @@ -1,2 +1,2 @@ /*! Copyright (c) 2014 Hidenari Nozaki and contributors | Licensed under the MIT license */ -"use strict";!function(a,b){"undefined"!=typeof module&&module.exports?module.exports=b(require("angular")):"function"==typeof define&&define.amd?define(["angular"],b):b(a.angular)}(window,function(a){a.module("angucomplete-alt",[]).directive("angucompleteAlt",["$q","$parse","$http","$sce","$timeout","$templateCache",function(a,b,c,d,e,f){var g=40,h=39,i=38,j=37,k=27,l=13,m=9,n=3,o=524288,p=500,q=200,r="autocomplete-required",s="Searching...",t="No results found",u="/angucomplete-alt/index.html";return f.put(u,'
{{ result.title }}
{{result.description}}
'),{restrict:"EA",require:"^?form",scope:{selectedObject:"=",disableInput:"=",initialValue:"@",localData:"=",remoteUrlRequestFormatter:"=",remoteUrlRequestWithCredentials:"@",remoteUrlResponseFormatter:"=",remoteUrlErrorCallback:"=",remoteApiHandler:"=",id:"@",type:"@",placeholder:"@",remoteUrl:"@",remoteUrlDataField:"@",titleField:"@",descriptionField:"@",imageField:"@",inputClass:"@",pause:"@",searchFields:"@",minlength:"@",matchClass:"@",clearSelected:"@",overrideSuggestions:"@",fieldRequired:"@",fieldRequiredClass:"@",inputChanged:"=",autoMatch:"@",focusOut:"&",focusIn:"&",inputName:"@"},templateUrl:function(a,b){return b.templateUrl||u},link:function(b,f,u,v){function w(a){return a.which?a.which:a.keyCode}function x(a){"function"==typeof b.selectedObject?b.selectedObject(a):b.selectedObject=a,D(a?!0:!1)}function y(a){return function(c){return b[a]?b[a](c):c}}function z(a){x({originalObject:a}),b.clearSelected&&(b.searchStr=null),S()}function A(a){return b.titleField.split(",").map(function(b){return B(a,b)}).join(" ")}function B(a,b){var c,d;return b?(c=b.split("."),d=a,c.forEach(function(a){d=d[a]})):d=a,d}function C(a,c){var e,f,g;return g=new RegExp(c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"i"),a?(f=a.match(g),e=f?a.replace(g,''+f[0]+""):a,d.trustAsHtml(e)):void 0}function D(a){b.notEmpty=a,eb=b.searchStr,b.fieldRequired&&v&&v.$setValidity(db,a)}function E(a){var c=w(a);if(c!==j&&c!==h)if(c===i||c===l)a.preventDefault();else if(c===g)a.preventDefault(),!b.showDropdown&&b.searchStr&&b.searchStr.length>=bb&&(T(),b.searching=!0,W(b.searchStr));else if(c===k)S(),b.$apply(function(){ab.val(b.searchStr)});else{if(0===bb&&!b.searchStr)return;b.searchStr&&""!==b.searchStr?b.searchStr.length>=bb&&(T(),cb&&e.cancel(cb),b.searching=!0,cb=e(function(){W(b.searchStr)},b.pause)):b.showDropdown=!1,eb&&eb!==b.searchStr&&!b.clearSelected&&x(void 0)}}function F(a){!b.overrideSuggestions||b.selectedObject&&b.selectedObject.originalObject===b.searchStr||(a&&a.preventDefault(),z(b.searchStr))}function G(a){var b=getComputedStyle(a);return a.offsetHeight+parseInt(b.marginTop,10)+parseInt(b.marginBottom,10)}function H(){return gb.getBoundingClientRect().top+parseInt(getComputedStyle(gb).maxHeight,10)}function I(){return f[0].querySelectorAll(".angucomplete-row")[b.currentIndex]}function J(){return I().getBoundingClientRect().top-(gb.getBoundingClientRect().top+parseInt(getComputedStyle(gb).paddingTop,10))}function K(a){gb.scrollTop=gb.scrollTop+a}function L(){var a=b.results[b.currentIndex];ab.val(b.matchClass?A(a.originalObject):a.title)}function M(a){var c=w(a),d=null,e=null;c===l&&b.results?(b.currentIndex>=0&&b.currentIndex=1?(b.$apply(function(){b.currentIndex--,L()}),hb&&(e=J(),0>e&&K(e-1))):0===b.currentIndex&&b.$apply(function(){b.currentIndex=-1,ab.val(b.searchStr)})):c===m&&(b.results&&b.results.length>0&&b.showDropdown?-1===b.currentIndex&&b.overrideSuggestions?F():(-1===b.currentIndex&&(b.currentIndex=0),b.selectResult(b.results[b.currentIndex]),b.$digest()):b.searchStr&&b.searchStr.length>0&&F())}function N(a){return function(c,d,e,f){d||e||f||(c=c.data),b.searching=!1,X(B($(c),b.remoteUrlDataField),a)}}function O(a,c,d,e){c||d||e||(c=a.status),0!==c&&(b.remoteUrlErrorCallback?b.remoteUrlErrorCallback(a,c,d,e):console&&console.error&&console.error("http error"))}function P(){fb&&fb.resolve()}function Q(d){var e={},f=b.remoteUrl+encodeURIComponent(d);b.remoteUrlRequestFormatter&&(e={params:b.remoteUrlRequestFormatter(d)},f=b.remoteUrl),b.remoteUrlRequestWithCredentials&&(e.withCredentials=!0),P(),fb=a.defer(),e.timeout=fb.promise,c.get(f,e).success(N(d)).error(O)}function R(c){P(),fb=a.defer(),b.remoteApiHandler(c,fb.promise).then(N(c))["catch"](O)}function S(){b.showDropdown=!1,b.results=[],gb&&(gb.scrollTop=0)}function T(){b.showDropdown=!0,b.currentIndex=-1,b.results=[]}function U(a){var c,d,e,f,g=b.searchFields.split(","),h=[];for(c=0;c=0;d&&(h[h.length]=b.localData[c])}b.searching=!1,X(h,a)}function V(a,c,d){for(var e in c)if(c[e].toLowerCase()===d.toLowerCase())return void b.selectResult(a)}function W(a){!a||a.length0)for(b.results=[],d=0;d0&&(b.searchStr=b.initialValue,D(!0),_())}),b.$on("angucomplete-alt:clearInput",function(a,c){c?b.id===c&&(b.searchStr=null,S()):(b.searchStr=null,S())}),b.onFocusHandler=function(){b.focusIn&&b.focusIn(),0!==bb||b.searchStr&&0!==b.searchStr.length||(b.showDropdown=!0,Y())},b.hideResults=function(){ib===b.id+"_dropdown"?ib=null:(Z=e(function(){S(),b.$apply(function(){b.searchStr&&b.searchStr.length>0&&ab.val(b.searchStr)})},q),P(),b.focusOut&&b.focusOut(),b.overrideSuggestions&&b.searchStr&&b.searchStr.length>0&&-1===b.currentIndex&&F())},b.resetHideResults=function(){Z&&e.cancel(Z)},b.hoverRow=function(a){b.currentIndex=a},b.selectResult=function(a){b.matchClass&&(a.title=A(a.originalObject),a.description=B(a.originalObject,b.descriptionField)),b.searchStr=b.clearSelected?null:a.title,x(a),S()},b.inputChangeHandler=function(a){return a.length
{{ result.title }}
{{result.description}}
'),{restrict:"EA",require:"^?form",scope:{selectedObject:"=",disableInput:"=",initialValue:"@",localData:"=",remoteUrlRequestFormatter:"=",remoteUrlRequestWithCredentials:"@",remoteUrlResponseFormatter:"=",remoteUrlErrorCallback:"=",remoteApiHandler:"=",id:"@",type:"@",placeholder:"@",remoteUrl:"@",remoteUrlDataField:"@",titleField:"@",descriptionField:"@",imageField:"@",inputClass:"@",pause:"@",searchFields:"@",minlength:"@",matchClass:"@",clearSelected:"@",overrideSuggestions:"@",fieldRequired:"@",fieldRequiredClass:"@",inputChanged:"=",autoMatch:"@",focusOut:"&",focusIn:"&",inputName:"@"},templateUrl:function(a,b){return b.templateUrl||u},link:function(b,f,u,v){function w(a){return a.which?a.which:a.keyCode}function x(a){"function"==typeof b.selectedObject?b.selectedObject(a):b.selectedObject=a,D(a?!0:!1)}function y(a){return function(c){return b[a]?b[a](c):c}}function z(a){x({originalObject:a}),b.clearSelected&&(b.searchStr=null),S()}function A(a){return b.titleField.split(",").map(function(b){return B(a,b)}).join(" ")}function B(a,b){var c,d;return b?(c=b.split("."),d=a,c.forEach(function(a){d=d[a]})):d=a,d}function C(a,c){var e,f,g;return g=new RegExp(c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"i"),a?(f=a.match(g),e=f?a.replace(g,''+f[0]+""):a,d.trustAsHtml(e)):void 0}function D(a){b.notEmpty=a,eb=b.searchStr,b.fieldRequired&&v&&v.$setValidity(db,a)}function E(a){var c=w(a);if(c!==j&&c!==h)if(c===i||c===l)a.preventDefault();else if(c===g)a.preventDefault(),!b.showDropdown&&b.searchStr&&b.searchStr.length>=bb&&(T(),b.searching=!0,W(b.searchStr));else if(c===k)S(),b.$apply(function(){ab.val(b.searchStr)});else{if(0===bb&&!b.searchStr)return;b.searchStr&&""!==b.searchStr?b.searchStr.length>=bb&&(T(),cb&&e.cancel(cb),b.searching=!0,cb=e(function(){W(b.searchStr)},b.pause)):b.showDropdown=!1,eb&&eb!==b.searchStr&&!b.clearSelected&&x(void 0)}}function F(a){!b.overrideSuggestions||b.selectedObject&&b.selectedObject.originalObject===b.searchStr||(a&&a.preventDefault(),z(b.searchStr))}function G(a){var b=getComputedStyle(a);return a.offsetHeight+parseInt(b.marginTop,10)+parseInt(b.marginBottom,10)}function H(){return gb.getBoundingClientRect().top+parseInt(getComputedStyle(gb).maxHeight,10)}function I(){return f[0].querySelectorAll(".angucomplete-row")[b.currentIndex]}function J(){return I().getBoundingClientRect().top-(gb.getBoundingClientRect().top+parseInt(getComputedStyle(gb).paddingTop,10))}function K(a){gb.scrollTop=gb.scrollTop+a}function L(){var a=b.results[b.currentIndex];ab.val(b.matchClass?A(a.originalObject):a.title)}function M(a){var c=w(a),d=null,e=null;c===l&&b.results?(b.currentIndex>=0&&b.currentIndex=1?(b.$apply(function(){b.currentIndex--,L()}),hb&&(e=J(),0>e&&K(e-1))):0===b.currentIndex&&b.$apply(function(){b.currentIndex=-1,ab.val(b.searchStr)})):c===m&&(b.results&&b.results.length>0&&b.showDropdown?-1===b.currentIndex&&b.overrideSuggestions?F():(-1===b.currentIndex&&(b.currentIndex=0),b.selectResult(b.results[b.currentIndex]),b.$digest()):b.searchStr&&b.searchStr.length>0&&F())}function N(a){return function(c,d,e,f){d||e||f||(c=c.data),b.searching=!1,X(B($(c),b.remoteUrlDataField),a)}}function O(a,c,d,e){c||d||e||(c=a.status),0!==c&&(b.remoteUrlErrorCallback?b.remoteUrlErrorCallback(a,c,d,e):console&&console.error&&console.error("http error"))}function P(){fb&&fb.resolve()}function Q(d){var e={},f=b.remoteUrl+encodeURIComponent(d);b.remoteUrlRequestFormatter&&(e={params:b.remoteUrlRequestFormatter(d)},f=b.remoteUrl),b.remoteUrlRequestWithCredentials&&(e.withCredentials=!0),P(),fb=a.defer(),e.timeout=fb.promise,c.get(f,e).success(N(d)).error(O)}function R(c){P(),fb=a.defer(),b.remoteApiHandler(c,fb.promise).then(N(c))["catch"](O)}function S(){b.showDropdown=!1,b.results=[],gb&&(gb.scrollTop=0)}function T(){b.showDropdown=!0,b.currentIndex=-1,b.results=[]}function U(a){var c,d,e,f,g=b.searchFields.split(","),h=[];for(c=0;c=0;d&&(h[h.length]=b.localData[c])}b.searching=!1,X(h,a)}function V(a,c,d){if(d)for(var e in c)if(c[e].toLowerCase()===d.toLowerCase())return void b.selectResult(a)}function W(a){!a||a.length0)for(b.results=[],d=0;d0&&(b.searchStr=b.initialValue,D(!0),_())}),b.$on("angucomplete-alt:clearInput",function(a,c){c?b.id===c&&(b.searchStr=null,S()):(b.searchStr=null,S())}),b.onFocusHandler=function(){b.focusIn&&b.focusIn(),0!==bb||b.searchStr&&0!==b.searchStr.length||(b.showDropdown=!0,Y())},b.hideResults=function(){ib===b.id+"_dropdown"?ib=null:(Z=e(function(){S(),b.$apply(function(){b.searchStr&&b.searchStr.length>0&&ab.val(b.searchStr)})},q),P(),b.focusOut&&b.focusOut(),b.overrideSuggestions&&b.searchStr&&b.searchStr.length>0&&-1===b.currentIndex&&F())},b.resetHideResults=function(){Z&&e.cancel(Z)},b.hoverRow=function(a){b.currentIndex=a},b.selectResult=function(a){b.matchClass&&(a.title=A(a.originalObject),a.description=B(a.originalObject,b.descriptionField)),b.searchStr=b.clearSelected?null:a.title,x(a),S()},b.inputChangeHandler=function(a){return a.length