forked from paolodm/angular-selectize
-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathng-selectize.min.js
1 lines (1 loc) · 1.44 KB
/
ng-selectize.min.js
1
!function(a){"use strict";a.module("ng-selectize",["ng"]).directive("selectize",["$timeout",function(b){return{restrict:"A",require:"ngModel",scope:{selectize:"&",options:"&",ngDisabled:"="},link:function(c,d,e,f){function g(a){a=a&&""!==a?a:void 0,o||(c.$parent.$apply(function(){f.$setViewValue(a)}),"single"===p.mode&&q.blur())}function h(b){return a.isArray(b)?b:b?String(b).split(p.delimiter):[]}function i(a,b){for(var c=0;c<a.length;c++)if(a[c]===b)return c;return-1}function j(a,b){return-1!==i(a,b)}function k(a,b){a.map(function(a){j(b,a)||j(r,a)||r.push(a)})}function l(a,b){var c,d;for(c=0;c<a.length;c++)d=i(r,a[c][q.settings.valueField]),-1!==d&&(b.push(a[c][q.settings.valueField]),r.splice(d,1))}function m(a){b(function(){var b=h(a);o||b===h(q.getValue())||(o=!0,q.setValue(b),k(b,h(q.getValue())),o=!1)})}function n(a){var b=h(f.$viewValue);"multi"===p.mode&&a&&l(a,b),a&&(Array.isArray(a)&&0===a.length&&q.clearOptions(),q.addOption(a),q.refreshOptions(!1),m(b))}var o,p,q,r=[],s=c.options(),t=c.selectize();p=a.extend({delimiter:",",persist:!0,mode:"SELECT"===d[0].tagName?d[0].hasAttribute("multiple")?"multi":"single":"multi"},t||{}),q=d.selectize(p)[0].selectize,q.on("change",function(){g(q.getValue())});var u=function(a){return a?void q.disable():void q.enable()};c.$watch("ngDisabled",u),c.$parent.$watch(e.ngModel,m),e.options&&c.$parent.$watch(e.options,n,!0),c.$parent.$watch(s,n(s),!0),c.$on("$destroy",function(){q.destroy()})}}}])}(this.angular);