define(["mk7/searchbar","css!cmpts/autocomplete/autocomplete.css"],function(){var e=Dom7,a=Template7,o=function(o){function p(e){var a=r.input.val();r.params.source&&r.params.source(r,a,function(e){var o="",p=r.params.limit?Math.min(r.params.limit,e.length):e.length;r.items=e;var t,n=new RegExp("("+a+")","i"),i=null;for(t=0;t$1")}}o+=r.dropdownItemTemplate(i)}""===o&&r.params.dropdownPlaceholderText&&(o+=r.dropdownPlaceholderTemplate({text:r.params.dropdownPlaceholderText})),r.dropdown.find("ul").html(o)})}function t(a){for(var o,p=e(this),t=0;t0||r.close()}var r=this,i={popupCloseText:"Close",backText:"Back",searchbarPlaceholderText:"Search...",searchbarCancelText:"Cancel",openIn:"page",backOnSelect:!1,notFoundText:"Nothing found",valueProperty:"id",textProperty:"text",updateInputValueOnSelect:!0,expandInput:!1,preloaderColor:!1,preloader:!1};o=o||{};for(var l in i)"undefined"==typeof o[l]&&(o[l]=i[l]);r.params=o,r.params.opener&&(r.opener=e(r.params.opener));var s=r.params.view;if(!r.params.view&&r.opener&&r.opener.length){if(s=r.opener.parents("."+app.params.viewClass),0===s.length)return;s=s[0].f7View}if(!r.params.input||(r.input=e(r.params.input),0!==r.input.length||"dropdown"!==r.params.openIn)){r.value=r.params.value||[],r.id=(new Date).getTime(),r.inputType=r.params.multiple?"checkbox":"radio",r.inputName=r.inputType+"-"+r.id;var d=0,c=r.params.backOnSelect;if("dropdown"!==r.params.openIn){r.itemTemplate=a.compile(r.params.itemTemplate||'
  • ');var u=r.params.pageTitle||"";!u&&r.opener&&r.opener.length&&(u=r.opener.find(".item-title").text());var m,v,f="autocomplete-"+r.inputName,h=r.params.navbarTheme,b=r.params.formTheme,g="",w="";r.navbarTemplate=a.compile(r.params.navbarTemplate||''),m=r.navbarTemplate({pageTitle:u,backText:r.params.backText,popupCloseText:r.params.popupCloseText,openIn:r.params.openIn,navbarTheme:h,inPopup:"popup"===r.params.openIn,inPage:"page"===r.params.openIn,material:d,preloader:r.params.preloader,preloaderColor:r.params.preloaderColor}),"page"===r.params.openIn?(v="static",r.opener?(r.opener.parents(".navbar-through").length>0&&(v="through"),r.opener.parents(".navbar-fixed").length>0&&(v="fixed"),w=r.opener.parents(".page").hasClass("no-toolbar")?"no-toolbar":"",g=r.opener.parents(".page").hasClass("no-navbar")?"no-navbar":"navbar-"+v):s.container&&((e(s.container).hasClass("navbar-through")||e(s.container).find(".navbar-through").length>0)&&(v="through"),(e(s.container).hasClass("navbar-fixed")||e(s.container).find(".navbar-fixed").length>0)&&(v="fixed"),w=e(s.activePage.container).hasClass("no-toolbar")?"no-toolbar":"",g=e(s.activePage.container).hasClass("no-navbar")?"no-navbar":"navbar-"+v)):v="fixed";var x='
    ',T=("through"===v?m:"")+'
    '+("fixed"===v?m:"")+x+'
    '+("static"===v?m:"")+'
      • '+r.params.notFoundText+'
        '}else r.dropdownItemTemplate=a.compile(r.params.dropdownItemTemplate||'
      • '),r.dropdownPlaceholderTemplate=a.compile(r.params.dropdownPlaceholderTemplate||'
      • {{text}}
      • '),r.dropdownTemplate=a.compile(r.params.dropdownTemplate||'
          {{#if preloader}}
          {{#if material}}{{materialPreloaderHtml}}{{/if}}
          {{/if}}
          ');return r.popup=void 0,r.dropdown=void 0,r.positionDropDown=function(){var e=r.input.parents(".list-block"),a=r.input.parents(".page-content"),o=(parseInt(a.css("padding-top"),10),parseInt(a.css("padding-top"),10)),p=r.input.offset(),t=e.length>0?e.offset():0,n=a[0].scrollHeight-o-(p.top+a[0].scrollTop)-r.input[0].offsetHeight;r.dropdown.css({left:(e.length>0?t.left:p.left)+"px",top:p.top+a[0].scrollTop+r.input[0].offsetHeight+"px",width:(e.length>0?e[0].offsetWidth:r.input[0].offsetWidth)+"px"}),r.dropdown.children(".autocomplete-dropdown-inner").css({maxHeight:n+"px",paddingLeft:"0px"})},r.pageInit=function(a){function o(){var e,a="";for(e=0;e0);if(d){if("checkbox"===r.inputType&&!i.checked){for(a=0;a0&&r.params.expandInput&&r.input.parents(".item-content").addClass("item-content-dropdown-expand"),r.positionDropDown(),r.input.parents(".page-content").append(r.dropdown),r.dropdown.addClass("autocomplete-dropdown-in"),r.input.trigger("input"),e(window).on("resize",r.positionDropDown),r.params.onOpen&&r.params.onOpen(r)}else e(document).once("pageInit",".autocomplete-page",r.pageInit),"popup"===r.params.openIn?(r.popup=app.popup('"),r.popup=e(r.popup),r.popup.once("closed",function(){r.popup=void 0,r.opened=!1,r.params.onClose&&r.params.onClose(r)})):(s.router.load({content:T}),e(document).once("pageBack",".autocomplete-page",function(){r.opened=!1,r.params.onClose&&r.params.onClose(r)}))},r.close=function(a){if(r.opened){if("dropdown"===r.params.openIn){if(a&&"blur"===a.type&&r.dropdown.find("label.active-state").length>0)return;1==r.params.backOnSelect&&(r.dropdown.removeClass("autocomplete-dropdown-in").remove(),r.input.parents(".item-content-dropdown-expand").removeClass("item-content-dropdown-expand")),r.opened=!1,e(window).off("resize",r.positionDropDown),r.params.onClose&&r.params.onClose(r)}"popup"===r.params.openIn&&r.popup&&app.closeModal(r.popup)}},r.initEvents=function(a){var o=a?"off":"on";"dropdown"!==r.params.openIn&&r.opener&&r.opener[o]("click",r.open),"dropdown"===r.params.openIn&&r.input&&(r.input[o]("focus",r.open),r.input[o]("input",p),app.device.android?e("html")[o]("click",n):r.input[o]("blur",r.close)),a&&r.dropdown&&(r.dropdown=null)},r.init=function(){r.initEvents()},r.destroy=function(){r.initEvents(!0),r=null},r.init(),r}};app.autocomplete=function(e){return new o(e)}});