From 1bc55520e707c66d31d4e70f64a5052590d7cbdb Mon Sep 17 00:00:00 2001 From: Josh Johnson Date: Mon, 2 May 2016 21:53:21 +0100 Subject: [PATCH] Reduce re-rendering --- assets/scripts/dist/bundle.js | 4 ++-- assets/scripts/src/choices.js | 13 ++++++++++--- assets/styles/css/choices.css | 2 +- assets/styles/css/choices.min.css | 2 +- assets/styles/scss/choices.scss | 2 +- 5 files changed, 15 insertions(+), 8 deletions(-) diff --git a/assets/scripts/dist/bundle.js b/assets/scripts/dist/bundle.js index fd06e04..52d30f9 100644 --- a/assets/scripts/dist/bundle.js +++ b/assets/scripts/dist/bundle.js @@ -1,2 +1,2 @@ -!function(t){function e(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return t[i].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p="/assets/scripts/dist/",e(0)}([function(t,e,n){t.exports=n(1)},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0}),e.Choices=void 0;var r=function(){function t(t,e){for(var n=0;n1)for(var a=1;a0){var o=n-i;this.dropdown.scrollTop+=o}else this.dropdown.scrollTop=t.offsetTop}}},{key:"highlightOption",value:function(t){var e=this,n=Array.from(this.dropdown.querySelectorAll("[data-option-selectable]")),i=Array.from(this.dropdown.querySelectorAll("."+this.options.classNames.highlightedState));if(i.forEach(function(t){t.classList.remove(e.options.classNames.highlightedState)}),t)this.highlightPosition=n.indexOf(t),t.classList.add(this.options.classNames.highlightedState);else{var o=n[this.highlightPosition];o||(o=n[0]),o&&o.classList.add(this.options.classNames.highlightedState)}}},{key:"selectItem",value:function(t){if(t){var e=t.id;this.store.dispatch((0,c.selectItem)(e,!0))}}},{key:"deselectItem",value:function(t){if(t){var e=t.id;this.store.dispatch((0,c.selectItem)(e,!1))}}},{key:"selectAll",value:function(){var t=this,e=this.getItems();e.forEach(function(e){t.selectItem(e)})}},{key:"deselectAll",value:function(){var t=this,e=this.getItems();e.forEach(function(e){t.deselectItem(e)})}},{key:"addItem",value:function(t,e){var n=arguments.length<=2||void 0===arguments[2]?-1:arguments[2],i=arguments.length<=3||void 0===arguments[3]?this.options.callbackOnAddItem:arguments[3],o=t.trim(),r=e||o,s=n||-1;this.options.prependValue&&(o=this.options.prependValue+o.toString()),this.options.appendValue&&(o+=this.options.appendValue.toString());var a=this.store.getState().items.length+1;this.store.dispatch((0,c.addItem)(o,r,a,s)),i&&((0,u.isType)("Function",i)?i(a,t):console.error("callbackOnAddItem: Callback is not a function"))}},{key:"removeItem",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?this.options.callbackOnRemoveItem:arguments[1];if(!t||!(0,u.isType)("Object",t))return void console.error("removeItem: No item object was passed to be removed");var n=t.id,i=t.value,o=t.optionId;this.store.dispatch((0,c.removeItem)(n,o)),e&&((0,u.isType)("Function",e)?e(i):console.error("callbackOnRemoveItem: Callback is not a function"))}},{key:"removeItemsByValue",value:function(t){var e=this;t&&(0,u.isType)("String",t)||console.error("removeItemsByValue: No value was passed to be removed");var n=this.getItemsFilteredByActive();n.forEach(function(n){n.value===t&&e.removeItem(n)})}},{key:"removeAllItems",value:function(){var t=this,e=this.getItemsFilteredByActive();e.forEach(function(e){e.active&&t.removeItem(e)})}},{key:"removeAllSelectedItems",value:function(){var t=this,e=this.getItemsFilteredByActive();e.forEach(function(e){e.selected&&e.active&&t.removeItem(e)})}},{key:"showDropdown",value:function(){this.dropdown.classList.add(this.options.classNames.activeState);var t=this.dropdown.getBoundingClientRect(),e=t.top+t.height>=document.body.offsetHeight;e?this.dropdown.classList.add(this.options.classNames.flippedState):this.dropdown.classList.remove(this.options.classNames.flippedState)}},{key:"hideDropdown",value:function(){var t=this.dropdown.classList.contains(this.options.classNames.flippedState);this.dropdown.classList.remove(this.options.classNames.activeState),t&&this.dropdown.classList.remove(this.options.classNames.flippedState)}},{key:"toggleDropdown",value:function(){if(this.dropdown){var t=this.dropdown.classList.contains(this.options.classNames.activeState);t?this.hideDropdown():this.showDropdown()}}},{key:"addOption",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?-1:arguments[1],n=this.store.getState(),i=n.options.length+1,o=t.value,r=t.innerHTML,s=t.disabled||t.parentNode.disabled;this.store.dispatch((0,c.addOption)(o,r,i,e,s)),t.selected&&!s&&this.addItem(o,r,i)}},{key:"addGroup",value:function(t,e,n){var i=this,o=Array.from(t.getElementsByTagName("OPTION")),r=e;o?(this.store.dispatch((0,c.addGroup)(t.label,r,!0,t.disabled)),o.forEach(function(t,e){i.addOption(t,r)})):this.store.dispatch((0,c.addGroup)(t.label,t.id,!1,t.disabled))}},{key:"getItems",value:function(){var t=this.store.getState();return t.items}},{key:"getItemsFilteredByActive",value:function(){var t=this.getItems(),e=t.filter(function(t){return t.active===!0},[]);return e}},{key:"getItemsReducedToValues",value:function(){var t=this.getItems(),e=t.reduce(function(t,e){return t.push(e.value),t},[]);return e}},{key:"getOptions",value:function(){var t=this.store.getState();return t.options}},{key:"getOptionsFilteredByActive",value:function(){var t=this.getOptions(),e=t.filter(function(t){return t.active===!0&&t.selected!==!0},[]);return e}},{key:"getOptionsFiltedBySelectable",value:function(){var t=this.getOptions(),e=t.filter(function(t){return t.disabled===!1},[]);return e}},{key:"getGroups",value:function(){var t=this.store.getState();return t.groups}},{key:"getGroupsFilteredByActive",value:function(){var t=this.getGroups(),e=this.getOptions(),n=t.filter(function(t){var n=t.active===!0&&t.disabled===!1,i=e.some(function(t){return t.active===!0&&t.disabled===!1});return!(!n||!i)},[]);return n}},{key:"generateInput",value:function(){var t=this,e=this.getTemplate("containerOuter"),n=this.getTemplate("containerInner"),i=this.getTemplate("list"),o=this.getTemplate("input");if(this.passedElement.classList.add(this.options.classNames.input,this.options.classNames.hiddenState),this.passedElement.tabIndex="-1",this.passedElement.setAttribute("style","display:none;"),this.passedElement.setAttribute("aria-hidden","true"),(0,u.wrap)(this.passedElement,n),(0,u.wrap)(n,e),this.options.placeholder&&this.options.placeholderValue&&(o.placeholder=this.options.placeholderValue,o.style.width=(0,u.getWidthOfInput)(o)),this.options.addItems||(o.disabled=!0,e.classList.add(this.options.classNames.disabledState)),e.appendChild(n),n.appendChild(i),n.appendChild(o),"select-multiple"===this.passedElement.type){this.highlightPosition=0;var r=this.getTemplate("dropdown"),s=Array.from(this.passedElement.getElementsByTagName("OPTGROUP"));if(e.appendChild(r),this.dropdown=r,s.length)s.forEach(function(e,n){var i=0===n;t.addGroup(e,n,i)});else{var a=Array.from(this.passedElement.options);a.forEach(function(e){t.addOption(e)})}}else"text"===this.passedElement.type&&this.presetItems.forEach(function(e){t.addItem(e)});this.containerOuter=e,this.containerInner=n,this.input=o,this.list=i}},{key:"render",value:function(){var t=this,e=arguments.length<=0||void 0===arguments[0]?this.options.callbackOnRender:arguments[0],n=(this.options.classNames,this.getItemsFilteredByActive());"select-multiple"===this.passedElement.type&&!function(){var e=t.getOptionsFilteredByActive(),n=t.getGroupsFilteredByActive();t.dropdown.innerHTML="";var i=document.createDocumentFragment();if(n.length>=1?n.forEach(function(n,o){var r=e.filter(function(t){return t.groupId===n.id});r.length>=1&&!function(){var e=t.getTemplate("optgroup",n);r.forEach(function(n,i){var o=t.getTemplate("option",n);e.appendChild(o)}),i.appendChild(e)}()}):e.length>=1&&e.forEach(function(e,n){var o=t.getTemplate("option",e);i.appendChild(o)}),t.dropdown.appendChild(i),""===t.dropdown.innerHTML){var o=t.getTemplate("notice","No options to select");i.appendChild(o),t.dropdown.appendChild(i)}else t.highlightOption()}(),n&&!function(){var e=t.getItemsReducedToValues();t.passedElement.value=e.join(t.options.delimiter),t.list.innerHTML="";var i=document.createDocumentFragment();n.forEach(function(e){var n=t.getTemplate("item",e);i.appendChild(n)}),t.list.appendChild(i)}(),e&&((0,u.isType)("Function",e)?e(n):console.error("callbackOnRender: Callback is not a function"))}},{key:"getTemplate",value:function(t){if(t){for(var e=this.options.templates,n=arguments.length,i=Array(n>1?n-1:0),o=1;n>o;o++)i[o-1]=arguments[o];return e[t].apply(e,i)}}},{key:"createTemplates",value:function(){var t=this.options.classNames,e={containerOuter:function(){return(0,u.strToEl)('
')},containerInner:function(){return(0,u.strToEl)('
')},list:function(){return(0,u.strToEl)('
    ')},input:function(){return(0,u.strToEl)('')},dropdown:function(){return(0,u.strToEl)('
    ')},notice:function(e){return(0,u.strToEl)('
    '+e+"
    ")},option:function(e){return(0,u.strToEl)('\n
    \n '+e.label+"\n
    \n ")},optgroup:function(e){return(0,u.strToEl)('\n
    \n
    '+e.value+"
    \n
    \n ")},item:function(e){return(0,u.strToEl)('\n
    \n '+e.label+"\n
    \n ")}};this.options.templates=(0,u.extend)(this.options.templates,e)}},{key:"addEventListeners",value:function(){document.addEventListener("keyup",this.onKeyUp),document.addEventListener("keydown",this.onKeyDown),document.addEventListener("click",this.onClick),document.addEventListener("paste",this.onPaste),document.addEventListener("mouseover",this.onMouseOver),this.input.addEventListener("focus",this.onFocus),this.input.addEventListener("blur",this.onBlur)}},{key:"removeEventListeners",value:function(){document.removeEventListener("keyup",this.onKeyUp),document.removeEventListener("keydown",this.onKeyDown),document.removeEventListener("click",this.onClick),document.removeEventListener("paste",this.onPaste),document.removeEventListener("mouseover",this.onMouseOver),this.input.removeEventListener("focus",this.onFocus),this.input.removeEventListener("blur",this.onBlur)}},{key:"init",value:function(){var t=arguments.length<=0||void 0===arguments[0]?this.options.callbackOnInit:arguments[0];this.initialised=!0,this.createTemplates(),this.generateInput(),this.store.subscribe(this.render),this.render(),this.addEventListeners(),t&&((0,u.isType)("Function",t)?t():console.error("callbackOnInit: Callback is not a function"))}},{key:"destroy",value:function(){this.passedElement=null,this.userOptions=null,this.options=null,this.initialised=null,this.store=null}}]),t}();window.Choices=t.exports=h},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0,e.compose=e.applyMiddleware=e.bindActionCreators=e.combineReducers=e.createStore=void 0;var o=n(3),r=i(o),s=n(8),a=i(s),l=n(10),c=i(l),u=n(11),d=i(u),p=n(12),h=i(p),f=n(9);i(f);e.createStore=r.default,e.combineReducers=a.default,e.bindActionCreators=c.default,e.applyMiddleware=d.default,e.compose=h.default},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function o(t,e,n){function i(){f===h&&(f=h.slice())}function r(){return p}function l(t){if("function"!=typeof t)throw new Error("Expected listener to be a function.");var e=!0;return i(),f.push(t),function(){if(e){e=!1,i();var n=f.indexOf(t);f.splice(n,1)}}}function c(t){if(!(0,s.default)(t))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if("undefined"==typeof t.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(v)throw new Error("Reducers may not dispatch actions.");try{v=!0,p=d(p,t)}finally{v=!1}for(var e=h=f,n=0;nn;n++)e[n]=arguments[n];return function(t){return function(n,i,o){var s=t(n,i,o),l=s.dispatch,c=[],u={getState:s.getState,dispatch:function(t){return l(t)}};return c=e.map(function(t){return t(u)}),l=a.default.apply(void 0,c)(s.dispatch),r({},s,{dispatch:l})}}}var r=Object.assign||function(t){for(var e=1;en;n++)e[n]=arguments[n];return function(){if(0===e.length)return arguments.length<=0?void 0:arguments[0];var t=e[e.length-1],n=e.slice(0,-1);return n.reduceRight(function(t,e){return e(t)},t.apply(void 0,arguments))}}e.__esModule=!0,e.default=n},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(2),r=n(14),s=i(r),a=n(15),l=i(a),c=n(16),u=i(c),d=(0,o.combineReducers)({items:s.default,groups:l.default,options:u.default});e.default=d},function(t,e){"use strict";function n(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e-1?t.map(function(t){return t.id===parseInt(e.optionId)&&(t.selected=!0),t}):t;case"REMOVE_ITEM":return e.optionId>-1?t.map(function(t){return t.id===parseInt(e.optionId)&&(t.selected=!1),t}):t;case"FILTER_OPTIONS":var i=e.results.items,o=t.map(function(t,e){return t.active=i.some(function(t){return t.id===e}),t});return o;case"ACTIVATE_OPTIONS":return t.map(function(t){return t.active=e.active,t});default:return t}};e.default=i},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.addItem=function(t,e,n,i){return{type:"ADD_ITEM",value:t,label:e,id:n,optionId:i}},e.removeItem=function(t,e){return{type:"REMOVE_ITEM",id:t,optionId:e}},e.selectItem=function(t,e){return{type:"SELECT_ITEM",id:t,selected:e}},e.addOption=function(t,e,n,i,o){return{type:"ADD_OPTION",value:t,label:e,id:n,groupId:i,disabled:o}},e.filterOptions=function(t){return{type:"FILTER_OPTIONS",results:t}},e.activateOptions=function(){var t=arguments.length<=0||void 0===arguments[0]?!0:arguments[0];return{type:"ACTIVATE_OPTIONS",active:t}},e.addGroup=function(t,e,n,i){return{type:"ADD_GROUP",value:t,id:e,active:n,disabled:i}}},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=(e.hasClass=function(t,e){return new RegExp(" "+e+" ").test(" "+t.className+" ")},e.capitalise=function(t){return t.replace(/\w\S*/g,function(t){return t.charAt(0).toUpperCase()+t.substr(1).toLowerCase()})},e.isType=function(t,e){var n=Object.prototype.toString.call(e).slice(8,-1);return void 0!==e&&null!==e&&n===t}),i=(e.extend=function r(){for(var t={},e=!1,i=arguments.length,o=function(i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(e&&n("Object",i[o])?t[o]=r(!0,t[o],i[o]):t[o]=i[o])},s=0;i>s;s++){var a=arguments[s];n("Object",a)?o(a):console.error("Custom options must be an object")}return t},e.whichTransitionEvent=function(){var t,e=document.createElement("fakeelement"),n={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(t in n)if(void 0!==e.style[t])return n[t]},e.whichAnimationEvent=function(){var t,e=document.createElement("fakeelement"),n={animation:"animationend",OAnimation:"oAnimationEnd",MozAnimation:"animationend",WebkitAnimation:"webkitAnimationEnd"};for(t in n)if(void 0!==e.style[t])return n[t]}),o=(e.getParentsUntil=function(t,e,n){for(var i=[];t&&t!==document;t=t.parentNode){if(e){var o=e.charAt(0);if("."===o&&t.classList.contains(e.substr(1)))break;if("#"===o&&t.id===e.substr(1))break;if("["===o&&t.hasAttribute(e.substr(1,e.length-1)))break;if(t.tagName.toLowerCase()===e)break}if(n){var r=n.charAt(0);"."===r&&t.classList.contains(n.substr(1))&&i.push(t),"#"===r&&t.id===n.substr(1)&&i.push(t),"["===r&&t.hasAttribute(n.substr(1,n.length-1))&&i.push(t),t.tagName.toLowerCase()===n&&i.push(t)}else i.push(t)}return 0===i.length?null:i},e.wrap=function(t,e){return e=e||document.createElement("div"),t.nextSibling?t.parentNode.insertBefore(e,t.nextSibling):t.parentNode.appendChild(e),e.appendChild(t)},e.getSiblings=function(t){for(var e=[],n=t.parentNode.firstChild;n;n=n.nextSibling)1===n.nodeType&&n!==t&&e.push(n);return e},e.findAncestor=function(t,e){for(;(t=t.parentElement)&&!t.classList.contains(e););return t},e.debounce=function(t,e,n){var i;return function(){var o=this,r=arguments,s=function(){i=null,n||t.apply(o,r)},a=n&&!i;clearTimeout(i),i=setTimeout(s,e),a&&t.apply(o,r)}},e.getElemDistance=function(t){var e=0;if(t.offsetParent)do e+=t.offsetTop,t=t.offsetParent;while(t);return e>=0?e:0},e.getElementOffset=function(t,e){var n=e;return n>1&&(n=1),n>0&&(n=0),Math.max(t.offsetHeight*n)},e.getAdjacentEl=function(t,e){var n=arguments.length<=2||void 0===arguments[2]?1:arguments[2];if(t&&e){var i=t.parentNode.parentNode,o=Array.from(i.querySelectorAll(e)),r=o.indexOf(t),s=n>0?1:-1;return o[r+s]}},e.getScrollPosition=function(t){return"bottom"===t?Math.max((window.scrollY||window.pageYOffset)+(window.innerHeight||document.documentElement.clientHeight)):window.scrollY||window.pageYOffset},e.isInView=function(t,e,n){return this.getScrollPosition(e)>this.getElemDistance(t)+this.getElementOffset(t,n)},e.isScrolledIntoView=function(t,e){var n=arguments.length<=2||void 0===arguments[2]?1:arguments[2];if(t){var i=void 0;return i=n>0?e.scrollTop+e.offsetHeight>=t.offsetTop+t.offsetHeight:t.offsetTop>=e.scrollTop}},e.stripHTML=function(t){var e=document.createElement("DIV");return e.innerHTML=t,e.textContent||e.innerText||""},e.addAnimation=function(t,e){var n=i(),o=function r(){t.classList.remove(e),t.removeEventListener(n,r,!1)};t.classList.add(e),t.addEventListener(n,o,!1)},e.getRandomNumber=function(t,e){return Math.floor(Math.random()*(e-t)+t)},e.strToEl=function(){var t=document.createElement("div");return function(e){var n;for(t.innerHTML=e,n=t.children[0];t.firstChild;)t.removeChild(t.firstChild);return n}}());e.getWidthOfInput=function(t){var e=arguments.length<=1||void 0===arguments[1]?20:arguments[1],n=t.value||t.placeholder,i=t.offsetWidth;if(n){var r=o(''+n+"");r.style.position="absolute",r.style.top="-9999px",r.style.left="-9999px",r.style.padding="0",r.style.width="auto",document.body.appendChild(r),r.offsetWidth>e&&r.offsetWidth!=t.offsetWidth&&(i=r.offsetWidth+e/4),document.body.removeChild(r)}return i+"px"}},function(t,e,n){var i,o;!function(r,s){i=s,o="function"==typeof i?i.call(e,n,e,t):i,!(void 0!==o&&(t.exports=o))}(this,function(){var t=function(t,e){this.items=t,this.settings=e||{diacritics:!0}};t.prototype.tokenize=function(t){if(t=i(String(t||"").toLowerCase()),!t||!t.length)return[];var e,n,r,a,l=[],c=t.split(/ +/);for(e=0,n=c.length;n>e;e++){if(r=o(c[e]),this.settings.diacritics)for(a in s)s.hasOwnProperty(a)&&(r=r.replace(new RegExp(a,"g"),s[a]));l.push({string:c[e],regex:new RegExp(r,"i")})}return l},t.prototype.iterator=function(t,e){var n;n=r(t)?Array.prototype.forEach||function(t){for(var e=0,n=this.length;n>e;e++)t(this[e],e,this)}:function(t){for(var e in this)this.hasOwnProperty(e)&&t(this[e],e,this); -},n.apply(t,[e])},t.prototype.getScoreFunction=function(t,e){var n,i,o,r;n=this,t=n.prepareSearch(t,e),o=t.tokens,i=t.options.fields,r=o.length;var s=function(t,e){var n,i;return t?(t=String(t||""),i=t.search(e.regex),-1===i?0:(n=e.string.length/t.length,0===i&&(n+=.5),n)):0},a=function(){var t=i.length;return t?1===t?function(t,e){return s(e[i[0]],t)}:function(e,n){for(var o=0,r=0;t>o;o++)r+=s(n[i[o]],e);return r/t}:function(){return 0}}();return r?1===r?function(t){return a(o[0],t)}:"and"===t.options.conjunction?function(t){for(var e,n=0,i=0;r>n;n++){if(e=a(o[n],t),0>=e)return 0;i+=e}return i/r}:function(t){for(var e=0,n=0;r>e;e++)n+=a(o[e],t);return n/r}:function(){return 0}},t.prototype.getSortFunction=function(t,n){var i,o,r,s,a,l,c,u,d,p,h;if(r=this,t=r.prepareSearch(t,n),h=!t.query&&n.sort_empty||n.sort,d=function(t,e){return"$score"===t?e.score:r.items[e.id][t]},a=[],h)for(i=0,o=h.length;o>i;i++)(t.query||"$score"!==h[i].field)&&a.push(h[i]);if(t.query){for(p=!0,i=0,o=a.length;o>i;i++)if("$score"===a[i].field){p=!1;break}p&&a.unshift({field:"$score",direction:"desc"})}else for(i=0,o=a.length;o>i;i++)if("$score"===a[i].field){a.splice(i,1);break}for(u=[],i=0,o=a.length;o>i;i++)u.push("desc"===a[i].direction?-1:1);return l=a.length,l?1===l?(s=a[0].field,c=u[0],function(t,n){return c*e(d(s,t),d(s,n))}):function(t,n){var i,o,r;for(i=0;l>i;i++)if(r=a[i].field,o=u[i]*e(d(r,t),d(r,n)))return o;return 0}:null},t.prototype.prepareSearch=function(t,e){if("object"==typeof t)return t;e=n({},e);var i=e.fields,o=e.sort,s=e.sort_empty;return i&&!r(i)&&(e.fields=[i]),o&&!r(o)&&(e.sort=[o]),s&&!r(s)&&(e.sort_empty=[s]),{options:e,query:String(t||"").toLowerCase(),tokens:this.tokenize(t),total:0,items:[]}},t.prototype.search=function(t,e){var n,i,o,r,s=this;return i=this.prepareSearch(t,e),e=i.options,t=i.query,r=e.score||s.getScoreFunction(i),t.length?s.iterator(s.items,function(t,o){n=r(t),(e.filter===!1||n>0)&&i.items.push({score:n,id:o})}):s.iterator(s.items,function(t,e){i.items.push({score:1,id:e})}),o=s.getSortFunction(i,e),o&&i.items.sort(o),i.total=i.items.length,"number"==typeof e.limit&&(i.items=i.items.slice(0,e.limit)),i};var e=function(t,e){return"number"==typeof t&&"number"==typeof e?t>e?1:e>t?-1:0:(t=a(String(t||"")),e=a(String(e||"")),t>e?1:e>t?-1:0)},n=function(t,e){var n,i,o,r;for(n=1,i=arguments.length;i>n;n++)if(r=arguments[n])for(o in r)r.hasOwnProperty(o)&&(t[o]=r[o]);return t},i=function(t){return(t+"").replace(/^\s+|\s+$|/g,"")},o=function(t){return(t+"").replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")},r=Array.isArray||"undefined"!=typeof $&&$.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)},s={a:"[aÀÁÂÃÄÅàáâãäåĀāąĄ]",c:"[cÇçćĆčČ]",d:"[dđĐďĎð]",e:"[eÈÉÊËèéêëěĚĒēęĘ]",i:"[iÌÍÎÏìíîïĪī]",l:"[lłŁ]",n:"[nÑñňŇńŃ]",o:"[oÒÓÔÕÕÖØòóôõöøŌō]",r:"[rřŘ]",s:"[sŠšśŚ]",t:"[tťŤ]",u:"[uÙÚÛÜùúûüůŮŪū]",y:"[yŸÿýÝ]",z:"[zŽžżŻźŹ]"},a=function(){var t,e,n,i,o="",r={};for(n in s)if(s.hasOwnProperty(n))for(i=s[n].substring(2,s[n].length-1),o+=i,t=0,e=i.length;e>t;t++)r[i.charAt(t)]=n;var a=new RegExp("["+o+"]","g");return function(t){return t.replace(a,function(t){return r[t]}).toLowerCase()}}();return t})}]); \ No newline at end of file +!function(t){function e(i){if(n[i])return n[i].exports;var o=n[i]={exports:{},id:i,loaded:!1};return t[i].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var n={};return e.m=t,e.c=n,e.p="/assets/scripts/dist/",e(0)}([function(t,e,n){t.exports=n(1)},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0}),e.Choices=void 0;var r=function(){function t(t,e){for(var n=0;n1)for(var a=1;a0){var o=n-i;this.dropdown.scrollTop+=o}else this.dropdown.scrollTop=t.offsetTop}}},{key:"highlightOption",value:function(t){var e=this,n=Array.from(this.dropdown.querySelectorAll("[data-option-selectable]")),i=Array.from(this.dropdown.querySelectorAll("."+this.options.classNames.highlightedState));if(i.forEach(function(t){t.classList.remove(e.options.classNames.highlightedState)}),t)this.highlightPosition=n.indexOf(t),t.classList.add(this.options.classNames.highlightedState);else{var o=n[this.highlightPosition];o||(o=n[0]),o&&o.classList.add(this.options.classNames.highlightedState)}}},{key:"selectItem",value:function(t){if(t){var e=t.id;this.store.dispatch((0,c.selectItem)(e,!0))}}},{key:"deselectItem",value:function(t){if(t){var e=t.id;this.store.dispatch((0,c.selectItem)(e,!1))}}},{key:"selectAll",value:function(){var t=this,e=this.getItems();e.forEach(function(e){t.selectItem(e)})}},{key:"deselectAll",value:function(){var t=this,e=this.getItems();e.forEach(function(e){t.deselectItem(e)})}},{key:"addItem",value:function(t,e){var n=arguments.length<=2||void 0===arguments[2]?-1:arguments[2],i=arguments.length<=3||void 0===arguments[3]?this.options.callbackOnAddItem:arguments[3],o=t.trim(),r=e||o,s=n||-1;this.options.prependValue&&(o=this.options.prependValue+o.toString()),this.options.appendValue&&(o+=this.options.appendValue.toString());var a=this.store.getState().items.length+1;this.store.dispatch((0,c.addItem)(o,r,a,s)),i&&((0,u.isType)("Function",i)?i(a,t):console.error("callbackOnAddItem: Callback is not a function"))}},{key:"removeItem",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?this.options.callbackOnRemoveItem:arguments[1];if(!t||!(0,u.isType)("Object",t))return void console.error("removeItem: No item object was passed to be removed");var n=t.id,i=t.value,o=t.optionId;this.store.dispatch((0,c.removeItem)(n,o)),e&&((0,u.isType)("Function",e)?e(i):console.error("callbackOnRemoveItem: Callback is not a function"))}},{key:"removeItemsByValue",value:function(t){var e=this;t&&(0,u.isType)("String",t)||console.error("removeItemsByValue: No value was passed to be removed");var n=this.getItemsFilteredByActive();n.forEach(function(n){n.value===t&&e.removeItem(n)})}},{key:"removeAllItems",value:function(){var t=this,e=this.getItemsFilteredByActive();e.forEach(function(e){e.active&&t.removeItem(e)})}},{key:"removeAllSelectedItems",value:function(){var t=this,e=this.getItemsFilteredByActive();e.forEach(function(e){e.selected&&e.active&&t.removeItem(e)})}},{key:"showDropdown",value:function(){this.dropdown.classList.add(this.options.classNames.activeState);var t=this.dropdown.getBoundingClientRect(),e=t.top+t.height>=document.body.offsetHeight;e?this.dropdown.classList.add(this.options.classNames.flippedState):this.dropdown.classList.remove(this.options.classNames.flippedState)}},{key:"hideDropdown",value:function(){var t=this.dropdown.classList.contains(this.options.classNames.flippedState);this.dropdown.classList.remove(this.options.classNames.activeState),t&&this.dropdown.classList.remove(this.options.classNames.flippedState)}},{key:"toggleDropdown",value:function(){if(this.dropdown){var t=this.dropdown.classList.contains(this.options.classNames.activeState);t?this.hideDropdown():this.showDropdown()}}},{key:"addOption",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?-1:arguments[1],n=this.store.getState(),i=n.options.length+1,o=t.value,r=t.innerHTML,s=t.disabled||t.parentNode.disabled;this.store.dispatch((0,c.addOption)(o,r,i,e,s)),t.selected&&!s&&this.addItem(o,r,i)}},{key:"addGroup",value:function(t,e,n){var i=this,o=Array.from(t.getElementsByTagName("OPTION")),r=e;o?(this.store.dispatch((0,c.addGroup)(t.label,r,!0,t.disabled)),o.forEach(function(t,e){i.addOption(t,r)})):this.store.dispatch((0,c.addGroup)(t.label,t.id,!1,t.disabled))}},{key:"getItems",value:function(){var t=this.store.getState();return t.items}},{key:"getItemsFilteredByActive",value:function(){var t=this.getItems(),e=t.filter(function(t){return t.active===!0},[]);return e}},{key:"getItemsReducedToValues",value:function(){var t=this.getItems(),e=t.reduce(function(t,e){return t.push(e.value),t},[]);return e}},{key:"getOptions",value:function(){var t=this.store.getState();return t.options}},{key:"getOptionsFilteredByActive",value:function(){var t=this.getOptions(),e=t.filter(function(t){return t.active===!0&&t.selected!==!0},[]);return e}},{key:"getOptionsFiltedBySelectable",value:function(){var t=this.getOptions(),e=t.filter(function(t){return t.disabled===!1},[]);return e}},{key:"getGroups",value:function(){var t=this.store.getState();return t.groups}},{key:"getGroupsFilteredByActive",value:function(){var t=this.getGroups(),e=this.getOptions(),n=t.filter(function(t){var n=t.active===!0&&t.disabled===!1,i=e.some(function(t){return t.active===!0&&t.disabled===!1});return!(!n||!i)},[]);return n}},{key:"generateInput",value:function(){var t=this,e=this.getTemplate("containerOuter"),n=this.getTemplate("containerInner"),i=this.getTemplate("list"),o=this.getTemplate("input");if(this.passedElement.classList.add(this.options.classNames.input,this.options.classNames.hiddenState),this.passedElement.tabIndex="-1",this.passedElement.setAttribute("style","display:none;"),this.passedElement.setAttribute("aria-hidden","true"),(0,u.wrap)(this.passedElement,n),(0,u.wrap)(n,e),this.options.placeholder&&this.options.placeholderValue&&(o.placeholder=this.options.placeholderValue,o.style.width=(0,u.getWidthOfInput)(o)),this.options.addItems||(o.disabled=!0,e.classList.add(this.options.classNames.disabledState)),e.appendChild(n),n.appendChild(i),n.appendChild(o),"select-multiple"===this.passedElement.type){this.highlightPosition=0;var r=this.getTemplate("dropdown"),s=Array.from(this.passedElement.getElementsByTagName("OPTGROUP"));if(e.appendChild(r),this.dropdown=r,s.length)s.forEach(function(e,n){var i=0===n;t.addGroup(e,n,i)});else{var a=Array.from(this.passedElement.options);a.forEach(function(e){t.addOption(e)})}}else"text"===this.passedElement.type&&this.presetItems.forEach(function(e){t.addItem(e)});this.containerOuter=e,this.containerInner=n,this.input=o,this.list=i}},{key:"render",value:function(){var t=this,e=arguments.length<=0||void 0===arguments[0]?this.options.callbackOnRender:arguments[0],n=(this.options.classNames,this.getItemsFilteredByActive());"select-multiple"===this.passedElement.type&&!function(){var e=t.getOptionsFilteredByActive(),n=t.getGroupsFilteredByActive();t.dropdown.innerHTML="";var i=document.createDocumentFragment();if(n.length>=1?n.forEach(function(n,o){var r=e.filter(function(t){return t.groupId===n.id});r.length>=1&&!function(){var e=t.getTemplate("optgroup",n);r.forEach(function(n,i){var o=t.getTemplate("option",n);e.appendChild(o)}),i.appendChild(e)}()}):e.length>=1&&e.forEach(function(e,n){var o=t.getTemplate("option",e);i.appendChild(o)}),t.dropdown.appendChild(i),""===t.dropdown.innerHTML){var o=t.getTemplate("notice","No options to select");i.appendChild(o),t.dropdown.appendChild(i)}else t.highlightOption()}(),n&&!function(){var e=t.getItemsReducedToValues();t.passedElement.value=e.join(t.options.delimiter),t.list.innerHTML="";var i=document.createDocumentFragment();n.forEach(function(e){var n=t.getTemplate("item",e);i.appendChild(n)}),t.list.appendChild(i)}(),e&&((0,u.isType)("Function",e)?e(n):console.error("callbackOnRender: Callback is not a function"))}},{key:"getTemplate",value:function(t){if(t){for(var e=this.options.templates,n=arguments.length,i=Array(n>1?n-1:0),o=1;n>o;o++)i[o-1]=arguments[o];return e[t].apply(e,i)}}},{key:"createTemplates",value:function(){var t=this.options.classNames,e={containerOuter:function(){return(0,u.strToEl)('
    ')},containerInner:function(){return(0,u.strToEl)('
    ')},list:function(){return(0,u.strToEl)('
      ')},input:function(){return(0,u.strToEl)('')},dropdown:function(){return(0,u.strToEl)('
      ')},notice:function(e){return(0,u.strToEl)('
      '+e+"
      ")},option:function(e){return(0,u.strToEl)('\n
      \n '+e.label+"\n
      \n ")},optgroup:function(e){return(0,u.strToEl)('\n
      \n
      '+e.value+"
      \n
      \n ")},item:function(e){return(0,u.strToEl)('\n
      \n '+e.label+"\n
      \n ")}};this.options.templates=(0,u.extend)(this.options.templates,e)}},{key:"addEventListeners",value:function(){document.addEventListener("keyup",this.onKeyUp),document.addEventListener("keydown",this.onKeyDown),document.addEventListener("click",this.onClick),document.addEventListener("paste",this.onPaste),document.addEventListener("mouseover",this.onMouseOver),this.input.addEventListener("focus",this.onFocus),this.input.addEventListener("blur",this.onBlur)}},{key:"removeEventListeners",value:function(){document.removeEventListener("keyup",this.onKeyUp),document.removeEventListener("keydown",this.onKeyDown),document.removeEventListener("click",this.onClick),document.removeEventListener("paste",this.onPaste),document.removeEventListener("mouseover",this.onMouseOver),this.input.removeEventListener("focus",this.onFocus),this.input.removeEventListener("blur",this.onBlur)}},{key:"init",value:function(){var t=arguments.length<=0||void 0===arguments[0]?this.options.callbackOnInit:arguments[0];this.initialised=!0,this.createTemplates(),this.generateInput(),this.store.subscribe(this.render),this.render(),this.addEventListeners(),t&&((0,u.isType)("Function",t)?t():console.error("callbackOnInit: Callback is not a function"))}},{key:"destroy",value:function(){this.passedElement=null,this.userOptions=null,this.options=null,this.initialised=null,this.store=null}}]),t}();window.Choices=t.exports=h},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0,e.compose=e.applyMiddleware=e.bindActionCreators=e.combineReducers=e.createStore=void 0;var o=n(3),r=i(o),s=n(8),a=i(s),l=n(10),c=i(l),u=n(11),d=i(u),p=n(12),h=i(p),f=n(9);i(f);e.createStore=r.default,e.combineReducers=a.default,e.bindActionCreators=c.default,e.applyMiddleware=d.default,e.compose=h.default},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}function o(t,e,n){function i(){f===h&&(f=h.slice())}function r(){return p}function l(t){if("function"!=typeof t)throw new Error("Expected listener to be a function.");var e=!0;return i(),f.push(t),function(){if(e){e=!1,i();var n=f.indexOf(t);f.splice(n,1)}}}function c(t){if(!(0,s.default)(t))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if("undefined"==typeof t.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(v)throw new Error("Reducers may not dispatch actions.");try{v=!0,p=d(p,t)}finally{v=!1}for(var e=h=f,n=0;nn;n++)e[n]=arguments[n];return function(t){return function(n,i,o){var s=t(n,i,o),l=s.dispatch,c=[],u={getState:s.getState,dispatch:function(t){return l(t)}};return c=e.map(function(t){return t(u)}),l=a.default.apply(void 0,c)(s.dispatch),r({},s,{dispatch:l})}}}var r=Object.assign||function(t){for(var e=1;en;n++)e[n]=arguments[n];return function(){if(0===e.length)return arguments.length<=0?void 0:arguments[0];var t=e[e.length-1],n=e.slice(0,-1);return n.reduceRight(function(t,e){return e(t)},t.apply(void 0,arguments))}}e.__esModule=!0,e.default=n},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(2),r=n(14),s=i(r),a=n(15),l=i(a),c=n(16),u=i(c),d=(0,o.combineReducers)({items:s.default,groups:l.default,options:u.default});e.default=d},function(t,e){"use strict";function n(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e-1?t.map(function(t){return t.id===parseInt(e.optionId)&&(t.selected=!0),t}):t;case"REMOVE_ITEM":return e.optionId>-1?t.map(function(t){return t.id===parseInt(e.optionId)&&(t.selected=!1),t}):t;case"FILTER_OPTIONS":var i=e.results.items,o=t.map(function(t,e){return t.active=i.some(function(t){return t.id===e}),t});return o;case"ACTIVATE_OPTIONS":return t.map(function(t){return t.active=e.active,t});default:return t}};e.default=i},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.addItem=function(t,e,n,i){return{type:"ADD_ITEM",value:t,label:e,id:n,optionId:i}},e.removeItem=function(t,e){return{type:"REMOVE_ITEM",id:t,optionId:e}},e.selectItem=function(t,e){return{type:"SELECT_ITEM",id:t,selected:e}},e.addOption=function(t,e,n,i,o){return{type:"ADD_OPTION",value:t,label:e,id:n,groupId:i,disabled:o}},e.filterOptions=function(t){return{type:"FILTER_OPTIONS",results:t}},e.activateOptions=function(){var t=arguments.length<=0||void 0===arguments[0]?!0:arguments[0];return{type:"ACTIVATE_OPTIONS",active:t}},e.addGroup=function(t,e,n,i){return{type:"ADD_GROUP",value:t,id:e,active:n,disabled:i}}},function(t,e){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=(e.hasClass=function(t,e){return new RegExp(" "+e+" ").test(" "+t.className+" ")},e.capitalise=function(t){return t.replace(/\w\S*/g,function(t){return t.charAt(0).toUpperCase()+t.substr(1).toLowerCase()})},e.isType=function(t,e){var n=Object.prototype.toString.call(e).slice(8,-1);return void 0!==e&&null!==e&&n===t}),i=(e.extend=function r(){for(var t={},e=!1,i=arguments.length,o=function(i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(e&&n("Object",i[o])?t[o]=r(!0,t[o],i[o]):t[o]=i[o])},s=0;i>s;s++){var a=arguments[s];n("Object",a)?o(a):console.error("Custom options must be an object")}return t},e.whichTransitionEvent=function(){var t,e=document.createElement("fakeelement"),n={transition:"transitionend",OTransition:"oTransitionEnd",MozTransition:"transitionend",WebkitTransition:"webkitTransitionEnd"};for(t in n)if(void 0!==e.style[t])return n[t]},e.whichAnimationEvent=function(){var t,e=document.createElement("fakeelement"),n={animation:"animationend",OAnimation:"oAnimationEnd",MozAnimation:"animationend",WebkitAnimation:"webkitAnimationEnd"};for(t in n)if(void 0!==e.style[t])return n[t]}),o=(e.getParentsUntil=function(t,e,n){for(var i=[];t&&t!==document;t=t.parentNode){if(e){var o=e.charAt(0);if("."===o&&t.classList.contains(e.substr(1)))break;if("#"===o&&t.id===e.substr(1))break;if("["===o&&t.hasAttribute(e.substr(1,e.length-1)))break;if(t.tagName.toLowerCase()===e)break}if(n){var r=n.charAt(0);"."===r&&t.classList.contains(n.substr(1))&&i.push(t),"#"===r&&t.id===n.substr(1)&&i.push(t),"["===r&&t.hasAttribute(n.substr(1,n.length-1))&&i.push(t),t.tagName.toLowerCase()===n&&i.push(t)}else i.push(t)}return 0===i.length?null:i},e.wrap=function(t,e){return e=e||document.createElement("div"),t.nextSibling?t.parentNode.insertBefore(e,t.nextSibling):t.parentNode.appendChild(e),e.appendChild(t)},e.getSiblings=function(t){for(var e=[],n=t.parentNode.firstChild;n;n=n.nextSibling)1===n.nodeType&&n!==t&&e.push(n);return e},e.findAncestor=function(t,e){for(;(t=t.parentElement)&&!t.classList.contains(e););return t},e.debounce=function(t,e,n){var i;return function(){var o=this,r=arguments,s=function(){i=null,n||t.apply(o,r)},a=n&&!i;clearTimeout(i),i=setTimeout(s,e),a&&t.apply(o,r)}},e.getElemDistance=function(t){var e=0;if(t.offsetParent)do e+=t.offsetTop,t=t.offsetParent;while(t);return e>=0?e:0},e.getElementOffset=function(t,e){var n=e;return n>1&&(n=1),n>0&&(n=0),Math.max(t.offsetHeight*n)},e.getAdjacentEl=function(t,e){var n=arguments.length<=2||void 0===arguments[2]?1:arguments[2];if(t&&e){var i=t.parentNode.parentNode,o=Array.from(i.querySelectorAll(e)),r=o.indexOf(t),s=n>0?1:-1;return o[r+s]}},e.getScrollPosition=function(t){return"bottom"===t?Math.max((window.scrollY||window.pageYOffset)+(window.innerHeight||document.documentElement.clientHeight)):window.scrollY||window.pageYOffset},e.isInView=function(t,e,n){return this.getScrollPosition(e)>this.getElemDistance(t)+this.getElementOffset(t,n)},e.isScrolledIntoView=function(t,e){var n=arguments.length<=2||void 0===arguments[2]?1:arguments[2];if(t){var i=void 0;return i=n>0?e.scrollTop+e.offsetHeight>=t.offsetTop+t.offsetHeight:t.offsetTop>=e.scrollTop}},e.stripHTML=function(t){var e=document.createElement("DIV");return e.innerHTML=t,e.textContent||e.innerText||""},e.addAnimation=function(t,e){var n=i(),o=function r(){t.classList.remove(e),t.removeEventListener(n,r,!1)};t.classList.add(e),t.addEventListener(n,o,!1)},e.getRandomNumber=function(t,e){return Math.floor(Math.random()*(e-t)+t)},e.strToEl=function(){var t=document.createElement("div");return function(e){var n;for(t.innerHTML=e,n=t.children[0];t.firstChild;)t.removeChild(t.firstChild);return n}}());e.getWidthOfInput=function(t){var e=arguments.length<=1||void 0===arguments[1]?20:arguments[1],n=t.value||t.placeholder,i=t.offsetWidth;if(n){var r=o(''+n+"");r.style.position="absolute",r.style.top="-9999px",r.style.left="-9999px",r.style.padding="0",r.style.width="auto",document.body.appendChild(r),r.offsetWidth>e&&r.offsetWidth!=t.offsetWidth&&(i=r.offsetWidth+e/4),document.body.removeChild(r)}return i+"px"}},function(t,e,n){var i,o;!function(r,s){i=s,o="function"==typeof i?i.call(e,n,e,t):i,!(void 0!==o&&(t.exports=o))}(this,function(){var t=function(t,e){this.items=t,this.settings=e||{diacritics:!0}};t.prototype.tokenize=function(t){if(t=i(String(t||"").toLowerCase()),!t||!t.length)return[];var e,n,r,a,l=[],c=t.split(/ +/);for(e=0,n=c.length;n>e;e++){if(r=o(c[e]),this.settings.diacritics)for(a in s)s.hasOwnProperty(a)&&(r=r.replace(new RegExp(a,"g"),s[a]));l.push({string:c[e], +regex:new RegExp(r,"i")})}return l},t.prototype.iterator=function(t,e){var n;n=r(t)?Array.prototype.forEach||function(t){for(var e=0,n=this.length;n>e;e++)t(this[e],e,this)}:function(t){for(var e in this)this.hasOwnProperty(e)&&t(this[e],e,this)},n.apply(t,[e])},t.prototype.getScoreFunction=function(t,e){var n,i,o,r;n=this,t=n.prepareSearch(t,e),o=t.tokens,i=t.options.fields,r=o.length;var s=function(t,e){var n,i;return t?(t=String(t||""),i=t.search(e.regex),-1===i?0:(n=e.string.length/t.length,0===i&&(n+=.5),n)):0},a=function(){var t=i.length;return t?1===t?function(t,e){return s(e[i[0]],t)}:function(e,n){for(var o=0,r=0;t>o;o++)r+=s(n[i[o]],e);return r/t}:function(){return 0}}();return r?1===r?function(t){return a(o[0],t)}:"and"===t.options.conjunction?function(t){for(var e,n=0,i=0;r>n;n++){if(e=a(o[n],t),0>=e)return 0;i+=e}return i/r}:function(t){for(var e=0,n=0;r>e;e++)n+=a(o[e],t);return n/r}:function(){return 0}},t.prototype.getSortFunction=function(t,n){var i,o,r,s,a,l,c,u,d,p,h;if(r=this,t=r.prepareSearch(t,n),h=!t.query&&n.sort_empty||n.sort,d=function(t,e){return"$score"===t?e.score:r.items[e.id][t]},a=[],h)for(i=0,o=h.length;o>i;i++)(t.query||"$score"!==h[i].field)&&a.push(h[i]);if(t.query){for(p=!0,i=0,o=a.length;o>i;i++)if("$score"===a[i].field){p=!1;break}p&&a.unshift({field:"$score",direction:"desc"})}else for(i=0,o=a.length;o>i;i++)if("$score"===a[i].field){a.splice(i,1);break}for(u=[],i=0,o=a.length;o>i;i++)u.push("desc"===a[i].direction?-1:1);return l=a.length,l?1===l?(s=a[0].field,c=u[0],function(t,n){return c*e(d(s,t),d(s,n))}):function(t,n){var i,o,r;for(i=0;l>i;i++)if(r=a[i].field,o=u[i]*e(d(r,t),d(r,n)))return o;return 0}:null},t.prototype.prepareSearch=function(t,e){if("object"==typeof t)return t;e=n({},e);var i=e.fields,o=e.sort,s=e.sort_empty;return i&&!r(i)&&(e.fields=[i]),o&&!r(o)&&(e.sort=[o]),s&&!r(s)&&(e.sort_empty=[s]),{options:e,query:String(t||"").toLowerCase(),tokens:this.tokenize(t),total:0,items:[]}},t.prototype.search=function(t,e){var n,i,o,r,s=this;return i=this.prepareSearch(t,e),e=i.options,t=i.query,r=e.score||s.getScoreFunction(i),t.length?s.iterator(s.items,function(t,o){n=r(t),(e.filter===!1||n>0)&&i.items.push({score:n,id:o})}):s.iterator(s.items,function(t,e){i.items.push({score:1,id:e})}),o=s.getSortFunction(i,e),o&&i.items.sort(o),i.total=i.items.length,"number"==typeof e.limit&&(i.items=i.items.slice(0,e.limit)),i};var e=function(t,e){return"number"==typeof t&&"number"==typeof e?t>e?1:e>t?-1:0:(t=a(String(t||"")),e=a(String(e||"")),t>e?1:e>t?-1:0)},n=function(t,e){var n,i,o,r;for(n=1,i=arguments.length;i>n;n++)if(r=arguments[n])for(o in r)r.hasOwnProperty(o)&&(t[o]=r[o]);return t},i=function(t){return(t+"").replace(/^\s+|\s+$|/g,"")},o=function(t){return(t+"").replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")},r=Array.isArray||"undefined"!=typeof $&&$.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)},s={a:"[aÀÁÂÃÄÅàáâãäåĀāąĄ]",c:"[cÇçćĆčČ]",d:"[dđĐďĎð]",e:"[eÈÉÊËèéêëěĚĒēęĘ]",i:"[iÌÍÎÏìíîïĪī]",l:"[lłŁ]",n:"[nÑñňŇńŃ]",o:"[oÒÓÔÕÕÖØòóôõöøŌō]",r:"[rřŘ]",s:"[sŠšśŚ]",t:"[tťŤ]",u:"[uÙÚÛÜùúûüůŮŪū]",y:"[yŸÿýÝ]",z:"[zŽžżŻźŹ]"},a=function(){var t,e,n,i,o="",r={};for(n in s)if(s.hasOwnProperty(n))for(i=s[n].substring(2,s[n].length-1),o+=i,t=0,e=i.length;e>t;t++)r[i.charAt(t)]=n;var a=new RegExp("["+o+"]","g");return function(t){return t.replace(a,function(t){return r[t]}).toLowerCase()}}();return t})}]); \ No newline at end of file diff --git a/assets/scripts/src/choices.js b/assets/scripts/src/choices.js index 3174cab..6e8b176 100644 --- a/assets/scripts/src/choices.js +++ b/assets/scripts/src/choices.js @@ -341,7 +341,7 @@ export class Choices { }); this.store.dispatch(filterOptions(results)); - }, 100) + }, 500) handleFilter(); } else if(hasUnactiveOptions) { @@ -399,6 +399,8 @@ export class Choices { this.deselectAll(); } + this.containerOuter.classList.remove(this.options.classNames.activeState); + // Close all other dropodowns if(this.passedElement.type === 'select-multiple' && this.dropdown.classList.contains(this.options.classNames.activeState)) { this.toggleDropdown(); @@ -439,7 +441,9 @@ export class Choices { * @return */ onFocus(e) { - this.containerOuter.classList.add(this.options.classNames.activeState); + if(!this.containerOuter.classList.contains(this.options.classNames.activeState)) { + this.containerOuter.classList.add(this.options.classNames.activeState); + } } /** @@ -448,7 +452,10 @@ export class Choices { * @return */ onBlur(e) { - this.containerOuter.classList.remove(this.options.classNames.activeState); + const hasActiveDropdown = this.dropdown && this.dropdown.classList.contains(this.options.classNames.activeState); + if(!hasActiveDropdown) { + this.containerOuter.classList.remove(this.options.classNames.activeState); + } } /** diff --git a/assets/styles/css/choices.css b/assets/styles/css/choices.css index 97e17d8..78a565f 100644 --- a/assets/styles/css/choices.css +++ b/assets/styles/css/choices.css @@ -98,7 +98,7 @@ h1, h2, h3, h4, h5, h6 { .choices__list--dropdown .choices__item.is-selected:hover { background-color: #FFFFFF; } .choices__list--dropdown .choices__item--selectable.is-highlighted { - background-color: #f9f9f9; } + background-color: #f2f2f2; } .choices__list--dropdown.is-active { display: block; } .choices__list--dropdown.is-flipped { diff --git a/assets/styles/css/choices.min.css b/assets/styles/css/choices.min.css index c51d535..8fa2ee6 100644 --- a/assets/styles/css/choices.min.css +++ b/assets/styles/css/choices.min.css @@ -1 +1 @@ -*,:after,:before{box-sizing:border-box}body,html{margin:0;height:100%;widows:100%}html{font-size:62.5%}body{background-color:#333;font-family:"Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;font-size:1.6rem;color:#fff}label{display:block;margin-bottom:.8rem;font-size:1.4rem;font-weight:500}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:1.2rem;font-weight:500}.container{display:block;margin:auto;max-width:35em;padding:2.4rem}.section{background-color:#fff;padding:2.4rem;color:#333}.choices{margin-bottom:2.4rem;position:relative}.choices__inner{background-color:#f9f9f9;padding:.75rem .75rem .375rem;border:1px solid #ddd;border-radius:.25rem;font-size:1.4rem;cursor:text}.is-active .choices__inner{border-color:#b7b7b7}.choices__inner:focus{outline:1px solid #00bcd4;outline-offset:-1px}.choices__list{margin:0;padding-left:0;list-style-type:none}.choices__list--items{display:inline}.choices__list--items .choices__item{display:inline-block;border-radius:2rem;padding:.4rem 1rem;font-size:1.2rem;margin-right:.375rem;margin-bottom:.375rem;background-color:#00bcd4;border:1px solid #00b1c7;color:#fff;word-break:break-all}.choices__list--items .choices__item.is-selected{background-color:#00a5bb}.choices__list--dropdown{z-index:1;position:absolute;width:100%;background-color:#fff;border:1px solid #ddd;top:100%;margin-top:-1px;display:none;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;max-height:300px;overflow:auto}.is-active .choices__list--dropdown{border-color:#b7b7b7}.choices__list--dropdown .choices__item{padding:1rem;font-size:1.4rem}.choices__list--dropdown .choices__item.is-selected{opacity:.5}.choices__list--dropdown .choices__item.is-selected:hover{background-color:#fff}.choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f9f9f9}.choices__list--dropdown.is-active{display:block}.choices__list--dropdown.is-flipped{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.choices__item{cursor:default}.choices__item--selectable{cursor:pointer}.choices__item--disabled{cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:.5}.choices__group .choices__heading{font-size:1.2rem;padding:1rem;border-bottom:1px solid #eaeaea;color:gray}.choices__input{background-color:#f9f9f9;font-size:1.4rem;padding:0;margin-bottom:.5rem;display:inline-block;vertical-align:baseline;border:0;border-radius:0;max-width:100%;padding:.4rem 0 .4rem .2rem}.choices__input:focus{outline:0} \ No newline at end of file +*,:after,:before{box-sizing:border-box}body,html{margin:0;height:100%;widows:100%}html{font-size:62.5%}body{background-color:#333;font-family:"Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;font-size:1.6rem;color:#fff}label{display:block;margin-bottom:.8rem;font-size:1.4rem;font-weight:500}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:1.2rem;font-weight:500}.container{display:block;margin:auto;max-width:35em;padding:2.4rem}.section{background-color:#fff;padding:2.4rem;color:#333}.choices{margin-bottom:2.4rem;position:relative}.choices__inner{background-color:#f9f9f9;padding:.75rem .75rem .375rem;border:1px solid #ddd;border-radius:.25rem;font-size:1.4rem;cursor:text}.is-active .choices__inner{border-color:#b7b7b7}.choices__inner:focus{outline:1px solid #00bcd4;outline-offset:-1px}.choices__list{margin:0;padding-left:0;list-style-type:none}.choices__list--items{display:inline}.choices__list--items .choices__item{display:inline-block;border-radius:2rem;padding:.4rem 1rem;font-size:1.2rem;margin-right:.375rem;margin-bottom:.375rem;background-color:#00bcd4;border:1px solid #00b1c7;color:#fff;word-break:break-all}.choices__list--items .choices__item.is-selected{background-color:#00a5bb}.choices__list--dropdown{z-index:1;position:absolute;width:100%;background-color:#fff;border:1px solid #ddd;top:100%;margin-top:-1px;display:none;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;max-height:300px;overflow:auto}.is-active .choices__list--dropdown{border-color:#b7b7b7}.choices__list--dropdown .choices__item{padding:1rem;font-size:1.4rem}.choices__list--dropdown .choices__item.is-selected{opacity:.5}.choices__list--dropdown .choices__item.is-selected:hover{background-color:#fff}.choices__list--dropdown .choices__item--selectable.is-highlighted{background-color:#f2f2f2}.choices__list--dropdown.is-active{display:block}.choices__list--dropdown.is-flipped{top:auto;bottom:100%;margin-top:0;margin-bottom:-1px;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.choices__item{cursor:default}.choices__item--selectable{cursor:pointer}.choices__item--disabled{cursor:not-allowed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:.5}.choices__group .choices__heading{font-size:1.2rem;padding:1rem;border-bottom:1px solid #eaeaea;color:gray}.choices__input{background-color:#f9f9f9;font-size:1.4rem;padding:0;margin-bottom:.5rem;display:inline-block;vertical-align:baseline;border:0;border-radius:0;max-width:100%;padding:.4rem 0 .4rem .2rem}.choices__input:focus{outline:0} \ No newline at end of file diff --git a/assets/styles/scss/choices.scss b/assets/styles/scss/choices.scss index 4a46d58..7cfd6b0 100644 --- a/assets/styles/scss/choices.scss +++ b/assets/styles/scss/choices.scss @@ -114,7 +114,7 @@ h1, h2, h3, h4, h5, h6 { } } .choices__item--selectable { - &.is-highlighted { background-color: mix(#000000, #FFFFFF, 2.5%); } + &.is-highlighted { background-color: mix(#000000, #FFFFFF, 5%); } } &.is-active { display: block; }