angular-multi-select
Version:
A multi select dropdown directive for AngularJS
5 lines (4 loc) • 46.8 kB
JavaScript
/*! angular-multi-select 7.4.6 */
"use strict";function _taggedTemplateLiteral(a,b){return Object.freeze(Object.defineProperties(a,{raw:{value:Object.freeze(b)}}))}function _defineProperty(a,b,c){return b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}var _slicedToArray=function(){function a(a,b){var c=[],d=!0,e=!1,f=void 0;try{for(var g,h=a[Symbol.iterator]();!(d=(g=h.next()).done)&&(c.push(g.value),!b||c.length!==b);d=!0);}catch(i){e=!0,f=i}finally{try{!d&&h["return"]&&h["return"]()}finally{if(e)throw f}}return c}return function(b,c){if(Array.isArray(b))return b;if(Symbol.iterator in Object(b))return a(b,c);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol?"symbol":typeof a},_extends=Object.assign||function(a){for(var b=1;b<arguments.length;b++){var c=arguments[b];for(var d in c)Object.prototype.hasOwnProperty.call(c,d)&&(a[d]=c[d])}return a},_templateObject=_taggedTemplateLiteral(['\n\n <div class="ams-button" ng-click="open = !open">\n <div class="ams-button-text" ng-bind-html="amssh.create_dropdown_label(stats, outputModelNotFormatted, self.output_type)"></div>\n <div class="ams-caret"></div>\n </div>\n\n <div class="ams-container ng-cloak" ng-show="open">\n\n <div class="ams-helpers">\n <div class="selects">\n <button class="all ams-btn" type="button" accesskey="a" ng-click="amse.check_all()" ng-hide="hide_helpers.indexOf(\'check_all\') > -1">{{ \'CHECK_ALL\' | translate }}</button>\n <button class="none ams-btn" type="button" accesskey="n" ng-click="amse.uncheck_all()" ng-hide="hide_helpers.indexOf(\'check_none\') > -1">{{ \'CHECK_NONE\' | translate }}</button>\n </div>\n\n <div class="resets">\n <button class="reset ams-btn" type="button" accesskey="r" ng-click="reset()" ng-hide="hide_helpers.indexOf(\'reset\') > -1">{{ \'RESET\' | translate }}</button>\n </div>\n </div>\n\n <div class="ams-search" ng-show="search_field !== null">\n <input class="ams-search-field" type="text" name="ams-search-field" value="" placeholder="{{ \'SEARCH\' | translate }}" ng-model="search" autofocus>\n <div class="ams-spinner" ng-show="search_spinner_visible"></div>\n <button class="clear ams-btn" type="button" accesskey="c" name="clear" title="{{ \'CLEAR\' | translate }}" ng-click="search = \'\'"></button>\n </div>\n\n <div class="ams-items">\n <div\n ng-repeat="item in items track by item[ops.ID_PROPERTY]"\n class="ams-item {{ amssh.get_level_class(item) }} {{ amssh.get_type_class(item) }} {{ amssh.get_open_class(item) }} {{ $index === focused_index ? \'ams-item-focused\' : \'\' }}"\n >\n <!-- Caret -->\n <div\n class="ams-caret {{ amssh.get_open_class(item) }}"\n ng-click="toggle_open_node(item)"\n ></div>\n\n <!-- Text of the element -->\n <div class="ams-item-text" ng-bind-html="amssh.create_label(item)"></div>\n\n <!-- Check holder -->\n <div\n class="check {{ amssh.get_checked_class(item) }}"\n ng-click="toggle_check_node(item)"\n >\n </div>\n </div>\n </div>\n\n </div>\n\n '],['\n\n <div class="ams-button" ng-click="open = !open">\n <div class="ams-button-text" ng-bind-html="amssh.create_dropdown_label(stats, outputModelNotFormatted, self.output_type)"></div>\n <div class="ams-caret"></div>\n </div>\n\n <div class="ams-container ng-cloak" ng-show="open">\n\n <div class="ams-helpers">\n <div class="selects">\n <button class="all ams-btn" type="button" accesskey="a" ng-click="amse.check_all()" ng-hide="hide_helpers.indexOf(\'check_all\') > -1">{{ \'CHECK_ALL\' | translate }}</button>\n <button class="none ams-btn" type="button" accesskey="n" ng-click="amse.uncheck_all()" ng-hide="hide_helpers.indexOf(\'check_none\') > -1">{{ \'CHECK_NONE\' | translate }}</button>\n </div>\n\n <div class="resets">\n <button class="reset ams-btn" type="button" accesskey="r" ng-click="reset()" ng-hide="hide_helpers.indexOf(\'reset\') > -1">{{ \'RESET\' | translate }}</button>\n </div>\n </div>\n\n <div class="ams-search" ng-show="search_field !== null">\n <input class="ams-search-field" type="text" name="ams-search-field" value="" placeholder="{{ \'SEARCH\' | translate }}" ng-model="search" autofocus>\n <div class="ams-spinner" ng-show="search_spinner_visible"></div>\n <button class="clear ams-btn" type="button" accesskey="c" name="clear" title="{{ \'CLEAR\' | translate }}" ng-click="search = \'\'"></button>\n </div>\n\n <div class="ams-items">\n <div\n ng-repeat="item in items track by item[ops.ID_PROPERTY]"\n class="ams-item {{ amssh.get_level_class(item) }} {{ amssh.get_type_class(item) }} {{ amssh.get_open_class(item) }} {{ $index === focused_index ? \'ams-item-focused\' : \'\' }}"\n >\n <!-- Caret -->\n <div\n class="ams-caret {{ amssh.get_open_class(item) }}"\n ng-click="toggle_open_node(item)"\n ></div>\n\n <!-- Text of the element -->\n <div class="ams-item-text" ng-bind-html="amssh.create_label(item)"></div>\n\n <!-- Check holder -->\n <div\n class="check {{ amssh.get_checked_class(item) }}"\n ng-click="toggle_check_node(item)"\n >\n </div>\n </div>\n </div>\n\n </div>\n\n ']);!function(a){function b(a,b){function d(a){return this&&this.constructor===d?(this._keys=[],this._values=[],this._itp=[],this.objectOnly=b,void(a&&c.call(this,a))):new d(a)}return b||t(a,"size",{get:q}),a.constructor=d,d.prototype=a,d}function c(a){this.add?a.forEach(this.add,this):a.forEach(function(a){this.set(a[0],a[1])},this)}function d(a){return this.has(a)&&(this._keys.splice(s,1),this._values.splice(s,1),this._itp.forEach(function(a){s<a[0]&&a[0]--})),s>-1}function e(a){return this.has(a)?this._values[s]:void 0}function f(a,b){if(this.objectOnly&&b!==Object(b))throw new TypeError("Invalid value used as weak collection key");if(b!=b||0===b)for(s=a.length;s--&&!u(a[s],b););else s=a.indexOf(b);return s>-1}function g(a){return f.call(this,this._values,a)}function h(a){return f.call(this,this._keys,a)}function i(a,b){return this.has(a)?this._values[s]=b:this._values[this._keys.push(a)-1]=b,this}function j(a){return this.has(a)||this._values.push(a),this}function k(){(this._keys||0).length=this._values.length=0}function l(){return p(this._itp,this._keys)}function m(){return p(this._itp,this._values)}function n(){return p(this._itp,this._keys,this._values)}function o(){return p(this._itp,this._values,this._values)}function p(a,b,c){var d=[0],e=!1;return a.push(d),{next:function(){var f,g=d[0];return!e&&g<b.length?(f=c?[b[g],c[g]]:b[g],d[0]++):(e=!0,a.splice(a.indexOf(d),1)),{done:e,value:f}}}}function q(){return this._values.length}function r(a,b){for(var c=this.entries();;){var d=c.next();if(d.done)break;a.call(b,d.value[1],d.value[0],this)}}var s,t=Object.defineProperty,u=function(a,b){return isNaN(a)?isNaN(b):a===b};"undefined"==typeof WeakMap&&(a.WeakMap=b({"delete":d,clear:k,get:e,has:h,set:i},!0)),"undefined"!=typeof Map&&"function"==typeof(new Map).values&&(new Map).values().next||(a.Map=b({"delete":d,has:h,get:e,set:i,keys:l,values:m,entries:n,forEach:r,clear:k})),"undefined"!=typeof Set&&"function"==typeof(new Set).values&&(new Set).values().next||(a.Set=b({has:g,add:j,"delete":d,clear:k,keys:m,values:m,entries:o,forEach:r})),"undefined"==typeof WeakSet&&(a.WeakSet=b({"delete":d,add:j,clear:k,has:g},!0))}("undefined"!=typeof exports&&"undefined"!=typeof global?global:window);var angular_multi_select_consts=angular.module("angular-multi-select-constants",[]);angular_multi_select_consts.constant("angularMultiSelectConstants",{ID_PROPERTY:"id",OPEN_PROPERTY:"open",CHECKED_PROPERTY:"checked",CHILDREN_PROPERTY:"children",INTERNAL_KEY_LEVEL:"$ams_level",INTERNAL_KEY_ORDER:"$ams_order",INTERNAL_KEY_PARENTS_ID:"$ams_parents_id",INTERNAL_KEY_CHILDREN_LEAFS:"$ams_children_leafs",INTERNAL_KEY_CHILDREN_NODES:"$ams_children_nodes",INTERNAL_KEY_CHECKED_CHILDREN:"$ams_checked_children",INTERNAL_KEY_TREE_VISIBILITY:"$ams_tree_visibility",INTERNAL_KEY_CHECKED_MODIFICATION:"$ams_checked_modification",INTERNAL_KEY_OUTPUT_MODEL_HACK:"$ams_output_model_hack",INTERNAL_KEY_OUTPUT_TYPE_HACK:"$ams_output_type_hack",INPUT_DATA_OPEN:!0,INPUT_DATA_CLOSED:!1,INTERNAL_DATA_OPEN:!0,INTERNAL_DATA_CLOSED:!1,INPUT_DATA_CHECKED:!0,INPUT_DATA_UNCHECKED:!1,INTERNAL_DATA_LEAF_CHECKED:!0,INTERNAL_DATA_LEAF_UNCHECKED:!1,INTERNAL_DATA_NODE_CHECKED:1,INTERNAL_DATA_NODE_MIXED:0,INTERNAL_DATA_NODE_UNCHECKED:-1,INTERNAL_DATA_NODE_CHECK_UNDEFINED:null,INTERNAL_DATA_VISIBLE:!0,INTERNAL_DATA_INVISIBLE:!1,INTERNAL_DATA_VISIBILITY_UNDEFINED:null,INTERNAL_STATS_CHECKED_LEAFS:"$ams_stats_checked_leafs",INTERNAL_STATS_CHECKED_NODES:"$ams_stats_checked_nodes",INTERNAL_STATS_UNCHECKED_NODES:"$ams_stats_unchecked_nodes",INTERNAL_STATS_TOTAL_LEAFS:"$ams_stats_total_leafs",INTERNAL_STATS_TOTAL_NODES:"$ams_stats_total_nodes",OUTPUT_DATA_TYPE_OBJECTS:"objects",OUTPUT_DATA_TYPE_ARRAYS:"arrays",OUTPUT_DATA_TYPE_OBJECT:"object",OUTPUT_DATA_TYPE_ARRAY:"array",OUTPUT_DATA_TYPE_VALUES:"values",OUTPUT_DATA_TYPE_VALUE:"value",CSS_OPEN:"open",CSS_CLOSED:"closed",CSS_LEAF_CHECKED:"checked",CSS_LEAF_UNCHECKED:"unchecked",CSS_NODE_MIXED:"mixed",CSS_NODE_CHECKED:"checked",CSS_NODE_UNCHECKED:"unchecked",CSS_LEAF:"leaf",CSS_NODE:"node",FIND_LEAFS:"leafs",FIND_LEAFS_MIXED_NODES:"leafs_mixed_nodes",FIND_LEAFS_CHECKED_NODES:"leafs_checked_nodes",FIND_LEAFS_MIXED_CHECKED_NODES:"leafs_mixed_checked_nodes",FIND_MIXED_NODES:"midex_nodes",FIND_CHECKED_NODES:"checked_nodes",FIND_MIXED_CHECKED_NODES:"mixed_checked_nodes"});var angular_multi_select_data_converter=angular.module("angular-multi-select-data-converter",["angular-multi-select-utils","angular-multi-select-constants"]);angular_multi_select_data_converter.factory("angularMultiSelectDataConverter",["angularMultiSelectUtils","angularMultiSelectConstants",function(a,b){var c=function(b){this.amsu=new a,_extends(this,this.amsu.sanitize_ops(b))};return c.prototype.check_prerequisites=function(a){function c(a){if(f!==!1)for(var h=0;h<a.length;h++){var i=a[h];if(-1!==i.constructor.toString().indexOf("Array"))return f=!1;if(!(e.ID_PROPERTY in i)||d.has(i[e.ID_PROPERTY])){for(;d.has(g);)g++;i[e.ID_PROPERTY]=g++}d.add(i[e.ID_PROPERTY]),e.OPEN_PROPERTY in i&&i[e.OPEN_PROPERTY]===b.INPUT_DATA_OPEN||(i[e.OPEN_PROPERTY]=b.INPUT_DATA_CLOSED),e.CHILDREN_PROPERTY in i&&(!Array.isArray(i[e.CHILDREN_PROPERTY])||0===i[e.CHILDREN_PROPERTY].length)&&delete i[e.CHILDREN_PROPERTY],e.CHILDREN_PROPERTY in i&&delete i[e.CHECKED_PROPERTY],e.CHECKED_PROPERTY in i&&i[e.CHECKED_PROPERTY]!==b.INPUT_DATA_CHECKED&&(i[e.CHECKED_PROPERTY]=b.INPUT_DATA_UNCHECKED),e.CHILDREN_PROPERTY in i||e.CHECKED_PROPERTY in i||(i[e.CHECKED_PROPERTY]=b.INPUT_DATA_UNCHECKED),e.CHILDREN_PROPERTY in i&&c(i[e.CHILDREN_PROPERTY])}}if(this.DEBUG===!0&&console.time(this.NAME+" -> check_prerequisites"),!Array.isArray(a))return!1;var d=new Set,e=this,f=!0,g=Date.now();return c(a),this.DEBUG===!0&&console.timeEnd(this.NAME+" -> check_prerequisites"),f?a:f},c.prototype.to_internal=function(a){function c(a,d){for(var e=0;e<a.length;e++){f=a[e];var j=_extends({},f);delete j[h.CHECKED_PROPERTY],delete j[h.CHILDREN_PROPERTY],h.CHECKED_PROPERTY in f&&"boolean"==typeof f[h.CHECKED_PROPERTY]?j[h.CHECKED_PROPERTY]=f[h.CHECKED_PROPERTY]:j[h.CHECKED_PROPERTY]=b.INTERNAL_DATA_NODE_CHECK_UNDEFINED,j[b.INTERNAL_KEY_LEVEL]=d,j[b.INTERNAL_KEY_ORDER]=g++,j[b.INTERNAL_KEY_PARENTS_ID]=[],j[b.INTERNAL_KEY_CHILDREN_LEAFS]=0,j[b.INTERNAL_KEY_CHILDREN_NODES]=0,j[b.INTERNAL_KEY_CHECKED_CHILDREN]=0,j[b.INTERNAL_KEY_TREE_VISIBILITY]=b.INTERNAL_DATA_VISIBILITY_UNDEFINED,j[b.INTERNAL_KEY_CHECKED_MODIFICATION]=0,i.push(j),h.CHILDREN_PROPERTY in f&&c(f[h.CHILDREN_PROPERTY],d+1)}}this.DEBUG===!0&&console.time(this.NAME+" -> to_internal");var d,e,f,g=1,h=this,i=[];c(a,0);var j=[],k=Date.now();for(d=0;d<i.length;d++)if(f=i[d],f[b.INTERNAL_KEY_CHECKED_MODIFICATION]=k++,j[f[b.INTERNAL_KEY_LEVEL]]=f[h.ID_PROPERTY],0!==f[b.INTERNAL_KEY_LEVEL]&&(f[b.INTERNAL_KEY_PARENTS_ID]=j.slice(0,f[b.INTERNAL_KEY_LEVEL])),0===f[b.INTERNAL_KEY_LEVEL]&&(f[b.INTERNAL_KEY_TREE_VISIBILITY]=b.INTERNAL_DATA_VISIBLE),"boolean"!=typeof f[this.CHECKED_PROPERTY]){var l=0,m=0,n=0;for(e=d+1;e<i.length;e++){var o=i[e];if(f[b.INTERNAL_KEY_LEVEL]===o[b.INTERNAL_KEY_LEVEL]-1&&(o[b.INTERNAL_KEY_TREE_VISIBILITY]=f[this.OPEN_PROPERTY]),f[b.INTERNAL_KEY_LEVEL]>=o[b.INTERNAL_KEY_LEVEL])break;o[this.CHECKED_PROPERTY]===b.INTERNAL_DATA_LEAF_CHECKED?(l++,f[b.INTERNAL_KEY_CHILDREN_LEAFS]++):o[this.CHECKED_PROPERTY]===b.INTERNAL_DATA_LEAF_UNCHECKED?(m++,f[b.INTERNAL_KEY_CHILDREN_LEAFS]++):o[this.CHECKED_PROPERTY]===b.INTERNAL_DATA_NODE_CHECK_UNDEFINED&&(n++,f[b.INTERNAL_KEY_CHILDREN_NODES]++)}f[b.INTERNAL_KEY_CHILDREN_LEAFS]===l?f[this.CHECKED_PROPERTY]=b.INTERNAL_DATA_NODE_CHECKED:f[b.INTERNAL_KEY_CHILDREN_LEAFS]===m?f[this.CHECKED_PROPERTY]=b.INTERNAL_DATA_NODE_UNCHECKED:f[this.CHECKED_PROPERTY]=b.INTERNAL_DATA_NODE_MIXED,f[b.INTERNAL_KEY_CHECKED_CHILDREN]=l}return this.DEBUG===!0&&console.timeEnd(this.NAME+" -> to_internal"),i},c.prototype.to_external=function(a){if(!Array.isArray(a)||0===a.length)return[];this.DEBUG===!0&&console.time(this.NAME+" -> to_external"),a=JSON.parse(JSON.stringify(a));for(var c=0;c<a.length;c++)delete a[c][b.INTERNAL_KEY_LEVEL],delete a[c][b.INTERNAL_KEY_ORDER],delete a[c][b.INTERNAL_KEY_PARENTS_ID],delete a[c][b.INTERNAL_KEY_CHILDREN_LEAFS],delete a[c][b.INTERNAL_KEY_CHILDREN_NODES],delete a[c][b.INTERNAL_KEY_CHECKED_CHILDREN],delete a[c][b.INTERNAL_KEY_TREE_VISIBILITY],delete a[c][b.INTERNAL_KEY_CHECKED_MODIFICATION],delete a[c].meta,delete a[c].$loki;return this.DEBUG===!0&&console.timeEnd(this.NAME+" -> to_external"),a},c.prototype.to_format=function(a,c,d){var e;switch(c){case b.OUTPUT_DATA_TYPE_OBJECTS:e=this.to_array_of_objects(a,d);break;case b.OUTPUT_DATA_TYPE_ARRAYS:e=this.to_array_of_arrays(a,d);break;case b.OUTPUT_DATA_TYPE_OBJECT:e=this.to_object(a,d);break;case b.OUTPUT_DATA_TYPE_ARRAY:e=this.to_array(a,d);break;case b.OUTPUT_DATA_TYPE_VALUES:e=this.to_values(a,d);break;case b.OUTPUT_DATA_TYPE_VALUE:e=this.to_value(a,d)}return e},c.prototype.to_array_of_objects=function(a,b){if(!Array.isArray(a)||0===a.length)return[];this.DEBUG===!0&&console.time(this.NAME+" -> to_array_of_objects"),void 0===b&&(b=[]);for(var c=[],d=0;d<a.length;d++){var e={},f=a[d];if("object"===("undefined"==typeof f?"undefined":_typeof(f))&&!Array.isArray(f))if(0===b.length)c.push(f);else{for(var g=0;g<b.length;g++)b[g]in f&&(e[b[g]]=f[b[g]]);c.push(e)}}return this.DEBUG===!0&&console.timeEnd(this.NAME+" -> to_array_of_objects"),c},c.prototype.to_array_of_arrays=function(a,b){function c(a){return Object.keys(a).map(function(b){return a[b]})}if(!Array.isArray(a)||0===a.length)return[];this.DEBUG===!0&&console.time(this.NAME+" -> to_array_of_arrays"),void 0===b&&(b=[]);for(var d=[],e=0;e<a.length;e++){var f=[],g=a[e];if("object"===("undefined"==typeof g?"undefined":_typeof(g))&&!Array.isArray(g))if(0===b.length)d.push(c(g));else{for(var h=0;h<b.length;h++)b[h]in g&&f.push(g[b[h]]);d.push(f)}}return this.DEBUG===!0&&console.timeEnd(this.NAME+" -> to_array_of_arrays"),d},c.prototype.to_array=function(a,b){function c(a){return Object.keys(a).map(function(b){return a[b]})}if(!Array.isArray(a)||0===a.length)return[];this.DEBUG===!0&&console.time(this.NAME+" -> to_array"),void 0===b&&(b=[]);var d,e=a[0],f=[];if("object"!==("undefined"==typeof e?"undefined":_typeof(e))||Array.isArray(e));else if(0===b.length){var g=c(e);for(d=0;d<g.length;d++)f.push(g[d])}else for(d=0;d<b.length;d++)b[d]in e&&f.push(e[b[d]]);return this.DEBUG===!0&&console.timeEnd(this.NAME+" -> to_array"),f},c.prototype.to_object=function(a,b){if(!Array.isArray(a)||0===a.length)return{};this.DEBUG===!0&&console.time(this.NAME+" -> to_object"),void 0===b&&(b=[]);var c,d=a[0];if("object"!==("undefined"==typeof d?"undefined":_typeof(d))||Array.isArray(d))c={};else if(0===b.length)c=d;else{for(var e={},f=0;f<b.length;f++)b[f]in d&&(e[b[f]]=d[b[f]]);c=e}return this.DEBUG===!0&&console.timeEnd(this.NAME+" -> to_object"),c},c.prototype.to_values=function(a,b){if(!Array.isArray(a)||0===a.length)return[];this.DEBUG===!0&&console.time(this.NAME+" -> to_values"),void 0===b&&(b=[]);var c=[];if("object"===("undefined"==typeof a?"undefined":_typeof(a))&&Array.isArray(a)&&0!==b.length)for(var d=0;d<a.length;d++)for(var e=0;e<b.length;e++)b[e]in a[d]&&c.push(a[d][b[e]]);else;return this.DEBUG===!0&&console.timeEnd(this.NAME+" -> to_values"),c},c.prototype.to_value=function(a,b){if(Array.isArray(a)&&0!==a.length){this.DEBUG===!0&&console.time(this.NAME+" -> to_value");var c,d=a[0];if("object"!==("undefined"==typeof d?"undefined":_typeof(d))||Array.isArray(d))c=void 0;else if(void 0===b){var e=Object.keys(d);0===e.length?c=void 0:(b=e[0],c=b in d?d[b]:void 0)}else b=Array.isArray(b)?b[0]:b,c=b in d?d[b]:void 0;return this.DEBUG===!0&&console.timeEnd(this.NAME+" -> to_value"),c}},c}]);var angular_multi_select_engine=angular.module("angular-multi-select-engine",["angular-multi-select-utils","angular-multi-select-constants"]);angular_multi_select_engine.factory("angularMultiSelectEngine",["angularMultiSelectUtils","angularMultiSelectConstants",function(a,b){var c=function(b){this.amsu=new a,_extends(this,this.amsu.sanitize_ops(b)),this.db=new loki,this.on_data_change_fn=null,this.on_visual_change_fn=null};return c.prototype.on_data_change=function(a){var c={skip_internal:!1};a=a||{};for(var d in c)a.hasOwnProperty(d)||(a[d]=c[d]);a.skip_internal===!1&&this.MAX_CHECKED_LEAFS>-1&&this.stats[b.INTERNAL_STATS_CHECKED_LEAFS]>this.MAX_CHECKED_LEAFS&&this.uncheck_first(this.stats[b.INTERNAL_STATS_CHECKED_LEAFS]-this.MAX_CHECKED_LEAFS),"function"==typeof this.on_data_change_fn&&this.on_data_change_fn()},c.prototype.on_visual_change=function(a){var b={skip_internal:!1};a=a||{};for(var c in b)a.hasOwnProperty(c)||(a[c]=b[c]);a.skip_internal===!1,"function"==typeof this.on_visual_change_fn&&this.on_visual_change_fn()},c.prototype.create_collection=function(a){this.DEBUG===!0&&console.time(this.NAME+" -> create_collection"),this.collection=this.db.addCollection(a,{indices:[this.ID_PROPERTY,this.CHECKED_PROPERTY,b.INTERNAL_KEY_LEVEL,b.INTERNAL_KEY_PARENTS_ID,b.INTERNAL_KEY_TREE_VISIBILITY]}),this.DEBUG===!0&&console.timeEnd(this.NAME+" -> create_collection")},c.prototype.remove_collection=function(a){this.DEBUG===!0&&console.time(this.NAME+" -> remove_collection"),a=a||this.NAME,this.db.removeCollection(a),this.DEBUG===!0&&console.timeEnd(this.NAME+" -> remove_collection")},c.prototype.insert=function(a){if(this.DEBUG===!0&&console.time(this.NAME+" -> insert"),this.remove_collection(this.NAME),this.create_collection(this.NAME),this.reset_stats(),a=a||[],Array.isArray(a))for(var b=0;b<a.length;b++)this.collection.insert(a[b]),this.update_stats(a[b]);else this.collection.insert(a),this.update_stats(a);this.DEBUG===!0&&console.timeEnd(this.NAME+" -> insert"),this.on_data_change()},c.prototype.get_stats=function(){return this.stats},c.prototype.update_stats=function(a){switch(a[this.CHECKED_PROPERTY]){case b.INTERNAL_DATA_NODE_CHECKED:this.stats[b.INTERNAL_STATS_CHECKED_NODES]++,this.stats[b.INTERNAL_STATS_TOTAL_NODES]++;break;case b.INTERNAL_DATA_NODE_UNCHECKED:this.stats[b.INTERNAL_STATS_UNCHECKED_NODES]++,this.stats[b.INTERNAL_STATS_TOTAL_NODES]++;break;case b.INTERNAL_DATA_NODE_MIXED:this.stats[b.INTERNAL_STATS_TOTAL_NODES]++;break;case b.INTERNAL_DATA_LEAF_CHECKED:this.stats[b.INTERNAL_STATS_CHECKED_LEAFS]++,this.stats[b.INTERNAL_STATS_TOTAL_LEAFS]++;break;case b.INTERNAL_DATA_LEAF_UNCHECKED:this.stats[b.INTERNAL_STATS_TOTAL_LEAFS]++}},c.prototype.reset_stats=function(){var a;this.stats=(a={},_defineProperty(a,b.INTERNAL_STATS_CHECKED_LEAFS,0),_defineProperty(a,b.INTERNAL_STATS_CHECKED_NODES,0),_defineProperty(a,b.INTERNAL_STATS_UNCHECKED_NODES,0),_defineProperty(a,b.INTERNAL_STATS_TOTAL_LEAFS,0),_defineProperty(a,b.INTERNAL_STATS_TOTAL_NODES,0),a)},c.prototype.get_full_tree=function(){this.DEBUG===!0&&console.time(this.NAME+" -> get_full_tree");var a=this.collection.chain().find({}).simplesort(b.INTERNAL_KEY_ORDER,!1).data();return this.DEBUG===!0&&console.time(this.NAME+" -> get_full_tree"),a},c.prototype.get_visible_tree=function(){this.DEBUG===!0&&console.time(this.NAME+" -> get_visible_tree");var a=this.collection.chain().find(_defineProperty({},b.INTERNAL_KEY_TREE_VISIBILITY,b.INTERNAL_DATA_VISIBLE)).simplesort(b.INTERNAL_KEY_ORDER,!1).data();return this.DEBUG===!0&&console.timeEnd(this.NAME+" -> get_visible_tree"),a},c.prototype.get_filtered_tree=function(a){this.DEBUG===!0&&console.time(this.NAME+" -> get_filtered_tree");for(var c=[],d=0;d<a.length;d++){var e=a[d];c.push(_defineProperty({},e.field,{$contains:e.query}))}var f=this.collection.chain().find({$and:c}).simplesort(b.INTERNAL_KEY_ORDER,!1).data();return this.DEBUG===!0&&console.timeEnd(this.NAME+" -> get_filtered_tree"),f},c.prototype.get_checked_tree=function(a){this.DEBUG===!0&&console.time(this.NAME+" -> get_checked_tree");var c;switch(a){case b.FIND_LEAFS:c=[b.INTERNAL_DATA_LEAF_CHECKED];break;case b.FIND_LEAFS_MIXED_NODES:c=[b.INTERNAL_DATA_LEAF_CHECKED,b.INTERNAL_DATA_NODE_MIXED];break;case b.FIND_LEAFS_CHECKED_NODES:c=[b.INTERNAL_DATA_LEAF_CHECKED,b.INTERNAL_DATA_NODE_CHECKED];break;case b.FIND_LEAFS_MIXED_CHECKED_NODES:c=[b.INTERNAL_DATA_LEAF_CHECKED,b.INTERNAL_DATA_NODE_CHECKED,b.INTERNAL_DATA_NODE_MIXED];break;case b.FIND_MIXED_NODES:c=[b.INTERNAL_DATA_NODE_MIXED];break;case b.FIND_CHECKED_NODES:c=[b.INTERNAL_DATA_NODE_CHECKED];break;case b.FIND_MIXED_CHECKED_NODES:c=[b.INTERNAL_DATA_NODE_CHECKED,b.INTERNAL_DATA_NODE_MIXED];break;default:c=[b.INTERNAL_DATA_LEAF_CHECKED]}var d=this.collection.chain().find(_defineProperty({},this.CHECKED_PROPERTY,{$in:c})).simplesort(b.INTERNAL_KEY_ORDER,!1).data();return this.DEBUG===!0&&console.timeEnd(this.NAME+" -> get_checked_tree"),d},c.prototype.get_item=function(a){if("object"!==("undefined"==typeof a?"undefined":_typeof(a))||0===Object.keys(a).length)return{};var b=[];for(var c in a)b.push(_defineProperty({},c,a[c]));var d=this.collection.find({$and:b});return Array.isArray(d)&&d.length>0?d[0]:{}},c.prototype.toggle_open_node=function(a){0!==a[b.INTERNAL_KEY_CHILDREN_LEAFS]&&(a[this.OPEN_PROPERTY]===b.INTERNAL_DATA_OPEN?this.close_node(a):this.open_node(a),this.on_visual_change())},c.prototype.open_node=function(a){var c=this;this.DEBUG===!0&&console.time(this.NAME+" -> open_node");var d=0;this.collection.chain().find(_defineProperty({},this.ID_PROPERTY,a[this.ID_PROPERTY])).update(function(a){a[c.OPEN_PROPERTY]=b.INTERNAL_DATA_OPEN}),this.collection.chain().find({$and:[_defineProperty({},b.INTERNAL_KEY_PARENTS_ID,{$contains:a[this.ID_PROPERTY]}),_defineProperty({},b.INTERNAL_KEY_LEVEL,{$gte:a[b.INTERNAL_KEY_LEVEL]+1})]}).limit(a[b.INTERNAL_KEY_CHILDREN_LEAFS]+a[b.INTERNAL_KEY_CHILDREN_NODES]).update(function(a){return d>0?void d--:(a[b.INTERNAL_KEY_CHILDREN_LEAFS]>0&&a[c.OPEN_PROPERTY]===b.INTERNAL_DATA_CLOSED&&(d=a[b.INTERNAL_KEY_CHILDREN_LEAFS]+a[b.INTERNAL_KEY_CHILDREN_NODES]),void(a[b.INTERNAL_KEY_TREE_VISIBILITY]=b.INTERNAL_DATA_VISIBLE))}),this.DEBUG===!0&&console.timeEnd(this.NAME+" -> open_node")},c.prototype.close_node=function(a){var c=this;this.DEBUG===!0&&console.time(this.NAME+" -> close_node"),this.collection.chain().find(_defineProperty({},this.ID_PROPERTY,a[this.ID_PROPERTY])).update(function(a){a[c.OPEN_PROPERTY]=b.INTERNAL_DATA_CLOSED}),this.collection.chain().find({$and:[_defineProperty({},b.INTERNAL_KEY_PARENTS_ID,{$contains:a[this.ID_PROPERTY]}),_defineProperty({},b.INTERNAL_KEY_LEVEL,{$gte:a[b.INTERNAL_KEY_LEVEL]+1})]}).limit(a[b.INTERNAL_KEY_CHILDREN_LEAFS]+a[b.INTERNAL_KEY_CHILDREN_NODES]).update(function(a){a[b.INTERNAL_KEY_TREE_VISIBILITY]=b.INTERNAL_DATA_INVISIBLE}),this.DEBUG===!0&&console.timeEnd(this.NAME+" -> close_node")},c.prototype.check_all=function(){var a=this;this.DEBUG===!0&&console.time(this.NAME+" -> check_all"),this.collection.chain().find({}).update(function(c){0===c[b.INTERNAL_KEY_CHILDREN_LEAFS]?c[a.CHECKED_PROPERTY]=b.INTERNAL_DATA_LEAF_CHECKED:(c[a.CHECKED_PROPERTY]=b.INTERNAL_DATA_NODE_CHECKED,c[b.INTERNAL_KEY_CHECKED_CHILDREN]=c[b.INTERNAL_KEY_CHILDREN_LEAFS])}),this.stats[b.INTERNAL_STATS_UNCHECKED_NODES]=0,this.stats[b.INTERNAL_STATS_CHECKED_LEAFS]=this.stats[b.INTERNAL_STATS_TOTAL_LEAFS],this.stats[b.INTERNAL_STATS_CHECKED_NODES]=this.stats[b.INTERNAL_STATS_TOTAL_NODES],this.DEBUG===!0&&console.time(this.NAME+" -> check_all"),this.on_data_change()},c.prototype.uncheck_all=function(){var a=this;this.DEBUG===!0&&console.time(this.NAME+" -> uncheck_all"),this.collection.chain().find({}).update(function(c){0===c[b.INTERNAL_KEY_CHILDREN_LEAFS]?c[a.CHECKED_PROPERTY]=b.INTERNAL_DATA_LEAF_UNCHECKED:(c[a.CHECKED_PROPERTY]=b.INTERNAL_DATA_NODE_UNCHECKED,c[b.INTERNAL_KEY_CHECKED_CHILDREN]=0)}),this.stats[b.INTERNAL_STATS_CHECKED_LEAFS]=0,this.stats[b.INTERNAL_STATS_CHECKED_NODES]=0,this.stats[b.INTERNAL_STATS_UNCHECKED_NODES]=this.stats[b.INTERNAL_STATS_TOTAL_NODES],this.DEBUG===!0&&console.time(this.NAME+" -> uncheck_all"),this.on_data_change()},c.prototype.toggle_check_node=function(a,c){switch(a[this.CHECKED_PROPERTY]){case b.INTERNAL_DATA_NODE_CHECKED:case b.INTERNAL_DATA_LEAF_CHECKED:this.uncheck_node(a,c);break;case b.INTERNAL_DATA_NODE_MIXED:case b.INTERNAL_DATA_NODE_UNCHECKED:case b.INTERNAL_DATA_LEAF_UNCHECKED:this.check_node(a,c)}},c.prototype.check_node_by=function(a){this.DEBUG===!0&&console.time(this.NAME+" -> check_node_by");var c=_slicedToArray(a,2),d=c[0],e=c[1],f=this.collection.findOne({$and:[_defineProperty({},d,e),_defineProperty({},this.CHECKED_PROPERTY,{$nin:[b.INTERNAL_DATA_NODE_CHECKED,b.INTERNAL_DATA_LEAF_CHECKED]})]});null!==f&&this.check_node(f),this.DEBUG===!0&&console.timeEnd(this.NAME+" -> check_node_by")},c.prototype.check_node=function(a,c){var d=this;this.DEBUG===!0&&console.time(this.NAME+" -> check_node");var e={call_on_data_change:!0};c=c||{};for(var f in e)c.hasOwnProperty(f)||(c[f]=e[f]);var g=new Date,h=0,i=a[b.INTERNAL_KEY_CHECKED_CHILDREN];this.collection.chain().find(_defineProperty({},this.ID_PROPERTY,a[this.ID_PROPERTY])).update(function(c){0===a[b.INTERNAL_KEY_CHILDREN_LEAFS]?(d.stats[b.INTERNAL_STATS_CHECKED_LEAFS]++,c[d.CHECKED_PROPERTY]=b.INTERNAL_DATA_LEAF_CHECKED):(c[d.CHECKED_PROPERTY]===b.INTERNAL_DATA_NODE_UNCHECKED&&d.stats[b.INTERNAL_STATS_UNCHECKED_NODES]--,d.stats[b.INTERNAL_STATS_CHECKED_NODES]++,c[d.CHECKED_PROPERTY]=b.INTERNAL_DATA_NODE_CHECKED,c[b.INTERNAL_KEY_CHECKED_CHILDREN]=c[b.INTERNAL_KEY_CHILDREN_LEAFS],h=c[b.INTERNAL_KEY_CHECKED_CHILDREN]-i),c[b.INTERNAL_KEY_CHECKED_MODIFICATION]=g.getTime()}),0===a[b.INTERNAL_KEY_CHILDREN_LEAFS]?this.collection.chain().find(_defineProperty({},this.ID_PROPERTY,{$in:a[b.INTERNAL_KEY_PARENTS_ID]})).simplesort(b.INTERNAL_KEY_ORDER,!0).update(function(a){a[d.CHECKED_PROPERTY]===b.INTERNAL_DATA_NODE_UNCHECKED&&d.stats[b.INTERNAL_STATS_UNCHECKED_NODES]--,a[b.INTERNAL_KEY_CHECKED_CHILDREN]+1===a[b.INTERNAL_KEY_CHILDREN_LEAFS]&&d.stats[b.INTERNAL_STATS_CHECKED_NODES]++,a[b.INTERNAL_KEY_CHECKED_CHILDREN]++,a[b.INTERNAL_KEY_CHECKED_CHILDREN]===a[b.INTERNAL_KEY_CHILDREN_LEAFS]?a[d.CHECKED_PROPERTY]=b.INTERNAL_DATA_NODE_CHECKED:a[d.CHECKED_PROPERTY]=b.INTERNAL_DATA_NODE_MIXED,a[b.INTERNAL_KEY_CHECKED_MODIFICATION]=g.getTime()}):(this.collection.chain().find({$and:[_defineProperty({},b.INTERNAL_KEY_PARENTS_ID,{$contains:a[this.ID_PROPERTY]}),_defineProperty({},b.INTERNAL_KEY_LEVEL,{$gte:a[b.INTERNAL_KEY_LEVEL]+1}),_defineProperty({},this.CHECKED_PROPERTY,{$in:[b.INTERNAL_DATA_NODE_MIXED,b.INTERNAL_DATA_NODE_UNCHECKED,b.INTERNAL_DATA_LEAF_UNCHECKED]})]}).simplesort(b.INTERNAL_KEY_ORDER,!1).update(function(a){0===a[b.INTERNAL_KEY_CHILDREN_LEAFS]?(d.stats[b.INTERNAL_STATS_CHECKED_LEAFS]++,a[d.CHECKED_PROPERTY]=b.INTERNAL_DATA_LEAF_CHECKED):(d.stats[b.INTERNAL_STATS_CHECKED_NODES]++,a[d.CHECKED_PROPERTY]===b.INTERNAL_DATA_NODE_UNCHECKED&&d.stats[b.INTERNAL_STATS_UNCHECKED_NODES]--,a[d.CHECKED_PROPERTY]=b.INTERNAL_DATA_NODE_CHECKED,a[b.INTERNAL_KEY_CHECKED_CHILDREN]=a[b.INTERNAL_KEY_CHILDREN_LEAFS]),a[b.INTERNAL_KEY_CHECKED_MODIFICATION]=g.getTime()}),this.collection.chain().find(_defineProperty({},this.ID_PROPERTY,{$in:a[b.INTERNAL_KEY_PARENTS_ID]})).simplesort(b.INTERNAL_KEY_ORDER,!0).update(function(a){a[d.CHECKED_PROPERTY]===b.INTERNAL_DATA_NODE_UNCHECKED&&d.stats[b.INTERNAL_STATS_UNCHECKED_NODES]--,a[b.INTERNAL_KEY_CHECKED_CHILDREN]+h===a[b.INTERNAL_KEY_CHILDREN_LEAFS]&&d.stats[b.INTERNAL_STATS_CHECKED_NODES]++,a[b.INTERNAL_KEY_CHECKED_CHILDREN]+=h,a[b.INTERNAL_KEY_CHECKED_CHILDREN]===a[b.INTERNAL_KEY_CHILDREN_LEAFS]?a[d.CHECKED_PROPERTY]=b.INTERNAL_DATA_NODE_CHECKED:a[d.CHECKED_PROPERTY]=b.INTERNAL_DATA_NODE_MIXED,a[b.INTERNAL_KEY_CHECKED_MODIFICATION]=g.getTime()})),this.DEBUG===!0&&console.timeEnd(this.NAME+" -> check_node"),c.call_on_data_change&&this.on_data_change()},c.prototype.uncheck_node=function(a,c){var d=this;this.DEBUG===!0&&console.time(this.NAME+" -> uncheck_node");var e={call_on_data_change:!0};c=c||{};for(var f in e)c.hasOwnProperty(f)||(c[f]=e[f]);var g=new Date,h=0,i=a[b.INTERNAL_KEY_CHECKED_CHILDREN];this.collection.chain().find(_defineProperty({},this.ID_PROPERTY,a[this.ID_PROPERTY])).update(function(c){0===a[b.INTERNAL_KEY_CHILDREN_LEAFS]?(d.stats[b.INTERNAL_STATS_CHECKED_LEAFS]--,c[d.CHECKED_PROPERTY]=b.INTERNAL_DATA_LEAF_UNCHECKED):(d.stats[b.INTERNAL_STATS_CHECKED_NODES]--,d.stats[b.INTERNAL_STATS_UNCHECKED_NODES]++,c[d.CHECKED_PROPERTY]=b.INTERNAL_DATA_NODE_UNCHECKED,c[b.INTERNAL_KEY_CHECKED_CHILDREN]=0,h=i-c[b.INTERNAL_KEY_CHECKED_CHILDREN]),c[b.INTERNAL_KEY_CHECKED_MODIFICATION]=g.getTime()}),0===a[b.INTERNAL_KEY_CHILDREN_LEAFS]?this.collection.chain().find(_defineProperty({},this.ID_PROPERTY,{$in:a[b.INTERNAL_KEY_PARENTS_ID]})).simplesort(b.INTERNAL_KEY_ORDER,!0).update(function(a){a[d.CHECKED_PROPERTY]===b.INTERNAL_DATA_NODE_CHECKED&&d.stats[b.INTERNAL_STATS_CHECKED_NODES]--,a[b.INTERNAL_KEY_CHECKED_CHILDREN]-1===0&&d.stats[b.INTERNAL_STATS_UNCHECKED_NODES]++,a[b.INTERNAL_KEY_CHECKED_CHILDREN]--,0===a[b.INTERNAL_KEY_CHECKED_CHILDREN]?a[d.CHECKED_PROPERTY]=b.INTERNAL_DATA_NODE_UNCHECKED:a[d.CHECKED_PROPERTY]=b.INTERNAL_DATA_NODE_MIXED,a[b.INTERNAL_KEY_CHECKED_MODIFICATION]=g.getTime()}):(this.collection.chain().find({$and:[_defineProperty({},b.INTERNAL_KEY_PARENTS_ID,{$contains:a[this.ID_PROPERTY]}),_defineProperty({},b.INTERNAL_KEY_LEVEL,{$gte:a[b.INTERNAL_KEY_LEVEL]+1}),_defineProperty({},this.CHECKED_PROPERTY,{$in:[b.INTERNAL_DATA_NODE_MIXED,b.INTERNAL_DATA_NODE_CHECKED,b.INTERNAL_DATA_LEAF_CHECKED]})]}).simplesort(b.INTERNAL_KEY_ORDER,!1).update(function(a){0===a[b.INTERNAL_KEY_CHILDREN_LEAFS]?(d.stats[b.INTERNAL_STATS_CHECKED_LEAFS]--,a[d.CHECKED_PROPERTY]=b.INTERNAL_DATA_LEAF_UNCHECKED):(d.stats[b.INTERNAL_STATS_UNCHECKED_NODES]++,a[d.CHECKED_PROPERTY]===b.INTERNAL_DATA_NODE_CHECKED&&d.stats[b.INTERNAL_STATS_CHECKED_NODES]--,a[d.CHECKED_PROPERTY]=b.INTERNAL_DATA_NODE_UNCHECKED,a[b.INTERNAL_KEY_CHECKED_CHILDREN]=0),a[b.INTERNAL_KEY_CHECKED_MODIFICATION]=g.getTime()}),this.collection.chain().find(_defineProperty({},this.ID_PROPERTY,{$in:a[b.INTERNAL_KEY_PARENTS_ID]})).simplesort(b.INTERNAL_KEY_ORDER,!0).update(function(a){a[d.CHECKED_PROPERTY]===b.INTERNAL_DATA_NODE_CHECKED&&d.stats[b.INTERNAL_STATS_CHECKED_NODES]--,a[b.INTERNAL_KEY_CHECKED_CHILDREN]-h===0&&d.stats[b.INTERNAL_STATS_UNCHECKED_NODES]++,a[b.INTERNAL_KEY_CHECKED_CHILDREN]-=h,0===a[b.INTERNAL_KEY_CHECKED_CHILDREN]?a[d.CHECKED_PROPERTY]=b.INTERNAL_DATA_NODE_UNCHECKED:a[d.CHECKED_PROPERTY]=b.INTERNAL_DATA_NODE_MIXED,a[b.INTERNAL_KEY_CHECKED_MODIFICATION]=g.getTime()})),this.DEBUG===!0&&console.timeEnd(this.NAME+" -> uncheck_node"),c.call_on_data_change&&this.on_data_change()},c.prototype.uncheck_first=function(a){this.DEBUG===!0&&console.time(this.NAME+" -> uncheck_first"),
a=a||1;for(var c=this.collection.chain().find({$and:[_defineProperty({},this.CHECKED_PROPERTY,b.INTERNAL_DATA_LEAF_CHECKED),_defineProperty({},b.INTERNAL_KEY_CHILDREN_LEAFS,0)]}).sort(function(a,c){var d=a[b.INTERNAL_KEY_CHECKED_MODIFICATION]-c[b.INTERNAL_KEY_CHECKED_MODIFICATION];return 0===d?a[b.INTERNAL_KEY_ORDER]-c[b.INTERNAL_KEY_ORDER]:d}).limit(a).data(),d=0;d<c.length;d++)this.toggle_check_node(c[d],{call_on_data_change:!1});this.DEBUG===!0&&console.timeEnd(this.NAME+" -> uncheck_first")},c}]);var angular_multi_select_styles_helper=angular.module("angular-multi-select-styles-helper",["angular-multi-select-utils","angular-multi-select-constants"]);angular_multi_select_styles_helper.run([function(){for(var a=angular.element("<style>"),b=10,c=20,d=document.styleSheets||[],e=0;e<d.length;e++){var f=d[e];if(f.href&&-1!==f.href.indexOf("angular-multi-select"))for(var g=f.cssRules||[],h=0;h<g.length;h++){var i=g[h];switch(i.selectorText){case".ams-item .check":b=parseInt(i.style.width);break;case".ams-item-level-0":c=parseInt(i.style.paddingLeft)}}}var j="";for(e=1;20>e;e++)j+=".ams-item-level-"+e+" { padding-left: "+(e+1)*c+"px; }";a.text(".ams-item { padding-right: "+(b+10)+"px; } "+j),angular.element(document.getElementsByTagName("head")).append(a)}]),angular_multi_select_styles_helper.factory("angularMultiSelectStylesHelper",["$sce","$interpolate","angularMultiSelectUtils","angularMultiSelectConstants",function(a,b,c,d){var e=function(a,e){e=e||{},this.amsu=new c,_extends(this,this.amsu.sanitize_ops(a)),this.START_REPLACE_SYMBOL_REGEX=/<\[/g,this.END_REPLACE_SYMBOL_REGEX=/\]>/g,this.START_INTERPOLATE_SYMBOL=b.startSymbol(),this.END_INTERPOLATE_SYMBOL=b.endSymbol(),this.START_REPLACE_SYMBOL_ALTERNATIVE_REGEX=/<#/g,this.END_REPLACE_SYMBOL_ALTERNATIVE_REGEX=/#>/g,this.START_INTERPOLATE_SYMBOL_ALTERNATIVE=b.startSymbol(),this.END_INTERPOLATE_SYMBOL_ALTERNATIVE=b.endSymbol(),this.START_REPLACE_SYMBOL_ALTERNATIVE2_REGEX=/<\(/g,this.END_REPLACE_SYMBOL_ALTERNATIVE2_REGEX=/\)>/g,this.START_INTERPOLATE_SYMBOL_ALTERNATIVE2=b.startSymbol(),this.END_INTERPOLATE_SYMBOL_ALTERNATIVE2=b.endSymbol(),this.START_REPLACE_SYMBOL_ALTERNATIVE_REPETITIVE_REGEX=/<#/g,this.END_REPLACE_SYMBOL_ALTERNATIVE_REPETITIVE_REGEX=/#>/g,this.START_INTERPOLATE_SYMBOL_ALTERNATIVE_REPETITIVE="<["+b.startSymbol(),this.END_INTERPOLATE_SYMBOL_ALTERNATIVE_REPETITIVE=b.endSymbol()+"]>",this.dropdown_repr_attr=e.dropdownLabel||"",this.dropdown_repr=this.interpolate_alternative(this.dropdown_repr_attr)({angularMultiSelectConstants:d}),this.dropdown_repr=this.interpolate(this.dropdown_repr),this.node_repr_attr=e.nodeLabel||"",this.node_repr=this.interpolate_alternative_repetitive(this.node_repr_attr)({angularMultiSelectConstants:d}),this.node_repr=this.interpolate(this.node_repr),this.leaf_repr_attr=e.leafLabel||"",this.leaf_repr=this.interpolate_alternative_repetitive(this.leaf_repr_attr)({angularMultiSelectConstants:d}),this.leaf_repr=this.interpolate(this.leaf_repr)};return e.prototype.get_level_class=function(a){return"ams-item-level-"+a[d.INTERNAL_KEY_LEVEL]},e.prototype.get_open_class=function(a){return 0===a[d.INTERNAL_KEY_CHILDREN_LEAFS]?"":a[this.OPEN_PROPERTY]===!0?d.CSS_OPEN:d.CSS_CLOSED},e.prototype.get_checked_class=function(a){return"boolean"==typeof a[this.CHECKED_PROPERTY]?a[this.CHECKED_PROPERTY]?d.CSS_LEAF_CHECKED:d.CSS_LEAF_UNCHECKED:a[this.CHECKED_PROPERTY]<0?d.CSS_NODE_UNCHECKED:a[this.CHECKED_PROPERTY]>0?d.CSS_NODE_CHECKED:d.CSS_NODE_MIXED},e.prototype.get_type_class=function(a){return 0===a[d.INTERNAL_KEY_CHILDREN_LEAFS]?d.CSS_LEAF:d.CSS_NODE},e.prototype.interpolate=function(a){return a=a.replace(this.START_REPLACE_SYMBOL_REGEX,this.START_INTERPOLATE_SYMBOL).replace(this.END_REPLACE_SYMBOL_REGEX,this.END_INTERPOLATE_SYMBOL),b(a)},e.prototype.interpolate_alternative=function(a){return a=a.replace(this.START_REPLACE_SYMBOL_ALTERNATIVE_REGEX,this.START_INTERPOLATE_SYMBOL_ALTERNATIVE).replace(this.END_REPLACE_SYMBOL_ALTERNATIVE_REGEX,this.END_INTERPOLATE_SYMBOL_ALTERNATIVE),b(a)},e.prototype.interpolate_alternative2=function(a){return a=a.replace(this.START_REPLACE_SYMBOL_ALTERNATIVE2_REGEX,this.START_INTERPOLATE_SYMBOL_ALTERNATIVE2).replace(this.END_REPLACE_SYMBOL_ALTERNATIVE2_REGEX,this.END_INTERPOLATE_SYMBOL_ALTERNATIVE2),b(a)},e.prototype.interpolate_alternative_repetitive=function(a){return a=a.replace(this.START_REPLACE_SYMBOL_ALTERNATIVE_REPETITIVE_REGEX,this.START_INTERPOLATE_SYMBOL_ALTERNATIVE_REPETITIVE).replace(this.END_REPLACE_SYMBOL_ALTERNATIVE_REPETITIVE_REGEX,this.END_INTERPOLATE_SYMBOL_ALTERNATIVE_REPETITIVE),b(a)},e.prototype.create_dropdown_label=function(b,c,e){if(void 0===b)return"";b[d.INTERNAL_KEY_OUTPUT_MODEL_HACK]=c,b[d.INTERNAL_KEY_OUTPUT_TYPE_HACK]=e;var f=this.dropdown_repr(b);return delete b[d.INTERNAL_KEY_OUTPUT_MODEL_HACK],delete b[d.INTERNAL_KEY_OUTPUT_TYPE_HACK],a.trustAsHtml(f)},e.prototype.create_label=function(b){var c;return c=0===b[d.INTERNAL_KEY_CHILDREN_LEAFS]?this.leaf_repr(b):this.node_repr(b),a.trustAsHtml(c)},e.prototype.transform_position=function(a){var b=a[0].getElementsByClassName("ams-button")[0],c=a[0].getElementsByClassName("ams-container")[0],d=0,e=0,f=b.getBoundingClientRect(),g=c.getBoundingClientRect();document.documentElement.clientWidth-(f.left+f.width)<g.width&&f.left+f.width>=g.width&&(d-=g.width-f.width),document.documentElement.clientHeight-(f.top+f.height)<g.height&&f.top>=g.height&&(e-=g.height+f.height),c.style.transform="translate("+d+"px, "+e+"px)"},e}]);var angular_multi_select_utils=angular.module("angular-multi-select-utils",["angular-multi-select-constants"]);angular_multi_select_utils.factory("angularMultiSelectUtils",["angularMultiSelectConstants",function(a){var b=function(){};return b.prototype.sanitize_ops=function(b){return b=b||{},{DEBUG:b.DEBUG||!1,NAME:b.NAME||"angular-multi-select-"+Math.round(Date.now()/1e3)+Math.random(),MAX_CHECKED_LEAFS:b.MAX_CHECKED_LEAFS||-1,ID_PROPERTY:b.ID_PROPERTY||a.ID_PROPERTY,OPEN_PROPERTY:b.OPEN_PROPERTY||a.OPEN_PROPERTY,CHECKED_PROPERTY:b.CHECKED_PROPERTY||a.CHECKED_PROPERTY,CHILDREN_PROPERTY:b.CHILDREN_PROPERTY||a.CHILDREN_PROPERTY}},b.prototype.array_from_attr=function(a){return"string"==typeof a&&a.length>0?a.split(",").map(function(a){return a.replace(/^\s+|\s+$/g,"")}):[]},b.prototype.parse_pairs=function(a){for(var b=0;b<a.length;b+=2){var c=a[b+1];null!==c.match(/^'(.*)'$/gi)||null!==c.match(/^"(.*)"$/gi)?a[b+1]=c.substring(1,c.length-1):null!==c.match(/^([0-9\.]*)$/gi)&&(a[b+1]=Number(c))}},b.prototype.element_belongs_to_directive=function(a,b){for(var c=!1,d=angular.element(a).parent();d.length>0;){if(d.attr("name")===b){c=!0;break}d=d.parent()}return c},b.prototype.prevent_scroll_bubbling=function(a){a.addEventListener("mousewheel",function(b){a.clientHeight+a.scrollTop+b.deltaY>=a.scrollHeight?(b.preventDefault(),a.scrollTop=a.scrollHeight):a.scrollTop+b.deltaY<=0&&(b.preventDefault(),a.scrollTop=0)},!1)},b.prototype.process_kb_input=function(b,c,d){var e,f=!0,g=b.keyCode?b.keyCode:b.which;switch(g){case 27:c.open=!1;break;case 32:e=c.items[c.focused_index],void 0!==e&&c.amse.toggle_check_node(e);break;case 37:e=c.items[c.focused_index],void 0!==e&&e[a.OPEN_PROPERTY]===a.INTERNAL_DATA_OPEN&&c.amse.toggle_open_node(e);break;case 38:c.focused_index=-1===c.focused_index?c.items.length-1:c.focused_index-1;break;case 39:e=c.items[c.focused_index],void 0!==e&&e[a.OPEN_PROPERTY]===a.INTERNAL_DATA_CLOSED&&c.amse.toggle_open_node(e);break;case 40:c.focused_index=c.focused_index+1>c.items.length?0:c.focused_index+1;break;default:f=!1}f===!0&&b.preventDefault(),c.$apply(),38!==g&&40!==g||-1!==c.focused_index&&this.scroll_to_item(d)},b.prototype.scroll_to_item=function(a){var b=a[0].getElementsByClassName("ams-item-focused")[0];if(void 0!==b){var c=a[0].getElementsByClassName("ams-items")[0];c.scrollTop=b.offsetTop+b.offsetHeight-c.offsetHeight}},b}]);var angular_multi_select=angular.module("angular-multi-select",["angular-multi-select-utils","angular-multi-select-engine","angular-multi-select-constants","angular-multi-select-styles-helper","angular-multi-select-data-converter"]);angular_multi_select.directive("angularMultiSelect",["$http","$compile","$timeout","$rootScope","$templateCache","angularMultiSelectUtils","angularMultiSelectEngine","angularMultiSelectConstants","angularMultiSelectStylesHelper","angularMultiSelectDataConverter",function(a,b,c,d,e,f,g,h,i,j){return{restrict:"AE",scope:{inputModel:"=",outputModel:"=?"},link:function(k,l,m){var n=e.get("angular-multi-select.tpl"),o=b(n)(k);l.append(o);var p={};k.self=p,p.react_to_data_changes=!1,p.react_to_visual_changes=!0;var q=new f;k.ops={DEBUG:"true"===m.debug,NAME:m.name,MAX_CHECKED_LEAFS:parseInt(m.maxCheckedLeafs),ID_PROPERTY:m.idProperty,OPEN_PROPERTY:m.openProperty,CHECKED_PROPERTY:m.checkedProperty,CHILDREN_PROPERTY:m.childrenProperty},k.ops=q.sanitize_ops(k.ops),l.attr("name",k.ops.NAME),p.do_not_check_data="true"===m.doNotCheckData,p.do_not_convert_data="true"===m.doNotConvertData,p.output_keys=q.array_from_attr(m.outputKeys),p.output_type=void 0===m.outputType?"objects":m.outputType,p.output_filter=void 0===m.outputFilter?h.FIND_LEAFS:m.outputFilter,k.search_field=void 0===m.searchField?null:m.searchField,p.preselect=q.array_from_attr(m.preselect),q.parse_pairs(p.preselect),k.hide_helpers=q.array_from_attr(m.hideHelpers),k.amsc=h;var r=new g(k.ops),s=new i(k.ops,m),t=new j(k.ops);k.amse=r,k.amssh=s,k.toggle_open_node=function(a){d.$broadcast("ams_toggle_open_node",{name:k.ops.NAME,item:JSON.parse(JSON.stringify(t.to_external([a])[0]))}),r.toggle_open_node(a)},k.toggle_check_node=function(a){d.$broadcast("ams_toggle_check_node",{name:k.ops.NAME,item:JSON.parse(JSON.stringify(t.to_external([a])[0]))}),r.toggle_check_node(a)},d.$on("ams_do_check_all",function(a,b){b.name!==k.ops.NAME&&"*"!==b.name||r.check_all()}),d.$on("ams_do_uncheck_all",function(a,b){b.name!==k.ops.NAME&&"*"!==b.name||r.uncheck_all()}),d.$on("ams_do_reset",function(a,b){b.name!==k.ops.NAME&&"*"!==b.name||k.reset()}),d.$on("ams_do_toggle_open_node",function(a,b){b.name!==k.ops.NAME&&"*"!==b.name||r.toggle_open_node(r.get_item(b.item))}),d.$on("ams_do_toggle_check_node",function(a,b){b.name!==k.ops.NAME&&"*"!==b.name||r.toggle_check_node(r.get_item(b.item))}),d.$on("ams_open",function(a,b){b.name!==k.ops.NAME&&"*"!==b.name||(k.open=!0)}),d.$on("ams_close",function(a,b){b.name!==k.ops.NAME&&"*"!==b.name||(k.open=!1)}),k.open=!1,k.onclick_listener=function(a){a.target&&(q.element_belongs_to_directive(a.target,k.ops.NAME)||(k.open=!1,k.$apply()))},document.addEventListener("click",k.onclick_listener),k.$watch("open",function(a,b){a===!0&&c(function(){s.transform_position(l)})}),q.prevent_scroll_bubbling(l[0].getElementsByClassName("ams-items")[0]),k.focused_index=-1,k.onkeypress_listener=function(a){k.open!==!1&&q.process_kb_input(a,k,l)},document.addEventListener("keydown",k.onkeypress_listener),k.reset_model=null,k.reset=function(){p.init(k.reset_model)},k.search="",p.search_promise=null,k.search_spinner_visible=!1,k.$watch("search",function(a,b){if((a!==b||""!==a)&&null!==k.search_field){if(""===a)return null!==p.search_promise&&c.cancel(p.search_promise),k.items=r.get_visible_tree(),k.search_spinner_visible=!1,void c(function(){s.transform_position(l)});null!==p.search_promise&&c.cancel(p.search_promise),k.search_spinner_visible=!0;var d=function(a){p.search_promise=c(function(){var b=[];b.push({field:k.search_field,query:a}),k.items=r.get_filtered_tree(b),k.search_spinner_visible=!1,c(function(){s.transform_position(l)})},1500,!0)};d(a)}}),r.on_data_change_fn=function(){if(p.react_to_data_changes!==!1){k.stats=r.get_stats(),k.search||(k.items=r.get_visible_tree());var a=r.get_checked_tree(p.output_filter),b=t.to_external(a);"string"==typeof m.dropdownLabel&&m.dropdownLabel.indexOf(!1)&&(k.outputModelNotFormatted=JSON.parse(JSON.stringify(b))),b=t.to_format(b,p.output_type,p.output_keys),angular.equals(k.outputModel,b)||(k.outputModel=b,c(function(){d.$broadcast("ams_output_model_change",{name:k.ops.NAME})}))}},r.on_visual_change_fn=function(){k.items=r.get_visible_tree(),c(function(){s.transform_position(l)})},p.prepare_data=function(a){if(!Array.isArray(a))return[];var b=p.do_not_check_data?a:t.check_prerequisites(a),c=p.do_not_convert_data?b:t.to_internal(b);return c},p.init=function(a){k.reset_model=JSON.parse(JSON.stringify(a)),r.insert(a);for(var b=0;b<p.preselect.length;b+=2)r.check_node_by([p.preselect[b],p.preselect[b+1]]);c(function(){d.$broadcast("ams_input_model_change",{name:k.ops.NAME})})},k.$watch("inputModel",function(b,c){p.react_to_data_changes=!1;var d;if("string"==typeof b)try{d=p.prepare_data(JSON.parse(b)),p.init(d),p.react_to_data_changes=!0,r.on_data_change()}catch(e){a.get(b).then(function(a){d=p.prepare_data(a.data),p.init(d),p.react_to_data_changes=!0,r.on_data_change()})}else d=p.prepare_data(b),p.init(d),p.react_to_data_changes=!0,r.on_data_change()}),k.$on("$destroy",function(){r.remove_collection(k.ops.NAME),document.removeEventListener("click",k.onclick_listener),document.removeEventListener("keydown",k.onkeypress_listener)})}}}]);var angular_multi_select=angular.module("angular-multi-select");angular_multi_select.run(["$templateCache",function(a){var b=function(a){return a.toString()};a.put("angular-multi-select.tpl",b(_templateObject))}]);var angular_multi_select=angular.module("angular-multi-select");angular_multi_select.filter("translate",["angularMultiSelectI18n",function(a){return function(b){return a.translate(b)}}]),angular_multi_select.filter("outputModelIterator",["angularMultiSelectConstants","angularMultiSelectStylesHelper",function(a,b){return function(c,d,e,f){var g,h=[],i=new b;if(!d[a.INTERNAL_KEY_OUTPUT_MODEL_HACK]||0===d[a.INTERNAL_KEY_OUTPUT_MODEL_HACK].length)return f||"";switch(d[a.INTERNAL_KEY_OUTPUT_TYPE_HACK]){case a.OUTPUT_DATA_TYPE_OBJECTS:case a.OUTPUT_DATA_TYPE_ARRAYS:case a.OUTPUT_DATA_TYPE_VALUES:d[a.INTERNAL_KEY_OUTPUT_MODEL_HACK].map(function(a){g=i.interpolate_alternative2(c),h.push(g(a))});break;case a.OUTPUT_DATA_TYPE_OBJECT:case a.OUTPUT_DATA_TYPE_ARRAY:case a.OUTPUT_DATA_TYPE_VALUE:g=i.interpolate_alternative2(c),h.push(g(d[a.INTERNAL_KEY_OUTPUT_MODEL_HACK][0]))}return h.join(e)||f||""}}]);var angular_multi_select=angular.module("angular-multi-select");angular_multi_select.provider("angularMultiSelectI18n",function(){function a(a){return f[a]}function b(a,b){f[a]=b}function c(a){e=a}function d(){function a(a){return f[e][a]||f.en[a]}return{translate:a}}var e="en",f={en:{CHECK_ALL:"Check all",CHECK_NONE:"Uncheck all",RESET:"Reset",SEARCH:"Search...",CLEAR:"Clear"}};return{getTranslation:a,createTranslation:b,setLang:c,$get:d}});
//# sourceMappingURL=angular-multi-select.min.js.map