New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

boomstrap

Package Overview
Dependencies
Maintainers
4
Versions
40
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

boomstrap - npm Package Compare versions

Comparing version 1.19.2 to 1.19.3

4

dist/js/boomstrap-angular.min.js

@@ -1,2 +0,2 @@

!function(){"use strict";angular.module("boomstrap",["ui.bootstrap","ui.select","angularMoment"]).value("AUTO_START_TOUR",{value:!1}).config(["uiSelectConfig",function(uiSelectConfig){uiSelectConfig.theme="bootstrap"}]).config(["$provide",function($provide){var href=window.location.href||"",isSPA=href.indexOf("/app/")>=0;isSPA&&$provide.decorator("$browser",["$delegate",function($delegate){return $delegate.url=function(){return""},$delegate}])}]),angular.module("ui.bootstrap").config(["$provide",function($provide){$provide.decorator("pagerDirective",function($delegate){var defaultUrl=$delegate[0].templateUrl;return $delegate[0].templateUrl=function(tElement,tAttrs){return tAttrs.templateUrl||defaultUrl},$delegate})}])}(),function(Boomstrap){"use strict";Boomstrap.constant("leadCategories",[{value:0,name:"new",abbr:"new",active:!0},{value:3,name:"qualify",abbr:"qual",active:!0},{value:5,name:"hot",abbr:"hot",active:!0},{value:4,name:"nurture",abbr:"nurt",active:!0},{value:2,name:"watch",abbr:"watch",active:!0},{value:11,name:"pending",abbr:"pend",active:!1},{value:10,name:"closed",abbr:"close",active:!1},{value:6,name:"archive",abbr:"arch",active:!1},{value:1,name:"trash",abbr:"trash",active:!1}])}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btAddClassOnLoad",function(){return{link:function(scope,element,attrs){attrs.$observe("btAddClassOnLoad",function(attrClass){element.bind("load",function(){element.addClass(attrClass)})})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btAffix",function($window){return{template:'<div class="bt-affix" ng-transclude></div>',transclude:!0,restrict:"A",link:function(scope,element,attrs){var windowEl=angular.element($window),$element=angular.element(element),$realElement=angular.element($element.children()[0]),defaults={position:$element.css("position"),top:$element.css("top"),"overflow-y":$element.css("overflow-y")};scope.isAffixed=!1,defaults.width="auto",scope.offset=0;var affixThis=function(){var myWidth=$realElement.css("width"),myHeight=$realElement.height();$realElement.css({position:"fixed",top:""+scope.offset+"px",width:myWidth,"max-height":"100%"}),scope.scroll&&$realElement.css({"overflow-y":"scroll"}),scope.fullHeight&&$realElement.css({height:"100%"}),scope.pinnedHeader&&$realElement.css({top:0,width:"100%",left:0}).addClass("pinned-header"),$element.addClass("is-bt-affixed").css({height:myHeight}),scope.isAffixed=!0},unAffixThis=function(){$realElement.scrollTop(0),$realElement.css(defaults),$realElement.css({height:"auto"}),$element.removeClass("is-bt-affixed").css({height:"auto"}),$realElement.removeClass("pinned-header"),scope.isAffixed=!1},scroller=function(){windowEl.scrollTop()>$element.offset().top-scope.offset?scope.isAffixed||affixThis():scope.isAffixed&&unAffixThis()},resizer=function(){scope.isAffixed&&(unAffixThis(),affixThis())};attrs.$observe("offset",function(val){angular.isDefined(val)&&(scope.offset=parseInt(val,10))}),windowEl.on("scroll.affix",scroller),windowEl.on("resize.affix",resizer),attrs.$observe("scroll",function(val){scope.scroll=!!val}),attrs.$observe("fullHeight",function(val){scope.fullHeight=!!val}),attrs.$observe("pinnedHeader",function(val){scope.pinnedHeader=!!val}),scope.$on("destroy",function(){windowEl.off("scroll.affix",scroller),windowEl.off("resize.affix",resizer)})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btArrowScroll",function($window){return{restrict:"A",scope:{distance:"@btArrowScroll"},link:function(scope,element){var scrollDistance,$windowEl=angular.element($window),DEFAULT_SCROLL_DISTANCE=50,parseScroll=function(value){var parsed;return angular.isDefined(value)?(parsed=parseInt(value,10),isNaN(parsed)?DEFAULT_SCROLL_DISTANCE:parsed):DEFAULT_SCROLL_DISTANCE};scrollDistance=parseScroll(scope.distance),scope.$watch("distance",function(newVal){angular.isDefined(newVal)&&newVal!==scrollDistance&&(scrollDistance=parseScroll(newVal))}),$windowEl.on("keydown.arrowscroll",function(e){var scroll;40===e.keyCode?(scroll=element.scrollTop(),scroll+scrollDistance<element[0].scrollHeight?(element.scrollTop(scroll+scrollDistance),e.preventDefault()):scroll!==element[0].scrollHeight&&element.scrollTop(element[0].scrollHeight)):38===e.keyCode&&(scroll=element.scrollTop(),scroll-scrollDistance>=0?(element.scrollTop(scroll-scrollDistance),e.preventDefault()):0!==scroll&&element.scrollTop(0))}),element.bind("$destroy",function(){$windowEl.off("keydown.arrowscroll")})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btAutoSubmit",function($timeout){return{require:"form",restrict:"A",scope:{ngSubmit:"&",shouldAutoSubmit:"=btAutoSubmit",submitTimeout:"@",willLoad:"="},link:function(scope,iElement,iAttrs,iCtrl){var autoSubmit=parseInt(scope.submitTimeout,10),submitTimeout=$timeout(function(){},0),triggerTimeout=function(){iCtrl.$setPristine(),$timeout.cancel(submitTimeout),scope.willLoad.value=!0,submitTimeout=$timeout(function(){scope.willLoad.value=!1,iCtrl.$valid&&(scope.ngSubmit({}),iCtrl.$setPristine())},autoSubmit)};scope.$watch(function(){return iCtrl.$valid&&iCtrl.$dirty},function(val,oldVal){scope.shouldAutoSubmit?val!==oldVal&&val&&triggerTimeout():iCtrl.$setPristine()})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btBodyLoader",function($parse,$document){return{restrict:"E",replace:!0,scope:{isLoading:"="},link:function(scope){var body=$document.find("body"),loader=$document.find("#bt-body-loader"),template='<div id="bt-body-loader" class="loader body-loader"><span class="loader-pulse"></span><span class="loader-pulse"></span><span class="loader-pulse"></span></div>';return loader.length>0?!0:(body.append(template),void scope.$watch("isLoading",function(newVal){var $loader=angular.element("#bt-body-loader"),display=newVal.value===!1?"none":"block";$loader.css({display:display})},!0))}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btCenterOnPage",function($window,$timeout){return{restrict:"A",link:function(scope,element){var $element=angular.element(element),windowEl=angular.element($window),centerElement=function(){var windowWidth=windowEl.width(),windowHeight=windowEl.height(),elementWidth=$element.width(),elementHeight=$element.height();$element.css({top:Math.floor((windowHeight-elementHeight)/2).toString()+"px",left:Math.floor((windowWidth-elementWidth)/2).toString()+"px"})};$timeout(centerElement,0),windowEl.on("resize.modal",centerElement),scope.$on("$destroy",function(){windowEl.off("resize.modal")})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btDatePicker",function(){return{restrict:"A",scope:{date:"=btDatePicker"},link:function(scope,element){element.bsDatepicker({dateFormat:"dd-MM-yyyy",todayHighlight:!0,startDate:new Date,language:"en",pickTime:!1,autoclose:!0}).on("changeDate",function(e){scope.$apply(function(){scope.date.value=e.date})}),scope.$on("$destroy",function(){element.bsDatepicker("remove")})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btDropdown",function($window){return{restrict:"A",require:"ngModel",templateUrl:"template/dropdown/bt-dropdown.tpl.html",replace:!0,scope:{values:"=",keysAreNumbers:"=",onAssign:"&"},link:function(scope,iElement,iAttrs,ngModel){var windowEl=angular.element($window),sortNumberKeys=function(objectValues){var sortedArray=[];return Object.keys(objectValues).forEach(function(key){sortedArray.push({key:key,value:objectValues[key]})}),sortedArray.sort(function(a,b){return parseInt(a.key,10)>parseInt(b.key,10)}),sortedArray};scope.keysAreNumbers&&(scope.arrayValues=sortNumberKeys(scope.values),scope.$watch("values",function(newValues,oldValues){newValues&&oldValues&&newValues.length!==oldValues.length&&(scope.arrayValues=sortNumberKeys(scope.values))})),scope.assignValue=function(value){scope.selectedValue=scope.values[value],ngModel.$setViewValue(value),scope.onAssign&&scope.onAssign({ddValue:value,ddTranslation:scope.selectedValue})},scope.valuesLength=function(){return scope.values&&Object.keys(scope.values).length||0};var setDropdownWidth=function(){scope.dropdownWidth=angular.element(iElement[0].children[0]).outerWidth()};setDropdownWidth(),windowEl.on("resize.dropdown",function(){scope.$apply(setDropdownWidth)}),scope.$watch(function(){return ngModel.$modelValue},function(newVal,oldVal){(newVal!==oldVal||angular.isUndefined(scope.selectedValue))&&(scope.selectedValue=scope.values[newVal]||"")}),scope.$on("$destroy",function(){windowEl.off("resize.dropdown")})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btErrorImg",function(){return{link:function(scope,element,attrs){element.bind("error",function(){element.attr("src",attrs.btErrorImg)})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btFocusOn",function($timeout){return{restrict:"A",link:function(scope,element,attrs){var currentValue={value:!1};attrs.$observe("btFocusOn",function(newValue){if(angular.isDefined(newValue)){var newValBool=scope.$eval(newValue);!currentValue.value&&newValBool&&$timeout(function(){element[0].focus()}),currentValue.value=newValBool}})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btFormatMoney",function($filter){return{restrict:"A",require:"ngModel",link:function(scope,ele,attrs,ctrl){var formatCurrency=function(input){var currency=$filter("currency")(input);return currency.split(".")[0]};ctrl.$parsers.push(function(data){var parsed;data?(parsed=parseInt(data.replace(/[^0-9]+/g,"")),isNaN(parsed)&&(parsed=null)):parsed=null;var newViewValue;return newViewValue=parsed?formatCurrency(parsed):null,newViewValue!==data&&ctrl.$setViewValue(newViewValue),ctrl.$render(),parsed}),ctrl.$formatters.push(function(data){return null===data?null:formatCurrency(data)})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btIFrame",function($window){return $window.iFrameCloseRegister=function(){},{template:'<iframe ng-src="{{src}}" width="{{width}}" height="{{height}}" seamless onload="window.iFrameCloseRegister()"></iframe>',restrict:"A",scope:{width:"@",height:"@",src:"=",closeFrame:"&"},link:function(scope,element){$window.iFrameCloseRegister=function(){element.children()[0]&&element.children()[0].contentWindow&&element.children()[0].contentWindow.registerClose&&element.children()[0].contentWindow.registerClose(function(){scope.closeFrame()})},scope.$on("$destroy",function(){$window.iFrameCloseRegister=function(){}})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btInfiniteScrollElement",function($rootScope,$timeout){return{link:function(scope,elem,attrs){var checkWhenEnabled,handler,scrollEnabled,scrollDistance;scrollEnabled=!0,checkWhenEnabled=!1,scrollDistance=30,attrs.$observe("infiniteScrollDistance",function(newVal,oldVal){newVal!==oldVal&&newVal&&(scrollDistance=parseInt(newVal,10),isNaN(scrollDistance)&&(scrollDistance=30))}),handler=function(){var elementTotalHeight,elementScrollPosition,elementVisibleHeight,shouldScroll;return elementTotalHeight=elem[0].scrollHeight,elementScrollPosition=elem.scrollTop(),elementVisibleHeight=elem.height(),shouldScroll=scrollDistance>=elementTotalHeight-(elementVisibleHeight+elementScrollPosition),shouldScroll&&scrollEnabled?$rootScope.$$phase?scope.$eval(attrs.btInfiniteScrollElement):scope.$apply(attrs.btInfiniteScrollElement):shouldScroll?checkWhenEnabled=!0:void 0},elem.on("scroll",handler),scope.$on("$destroy",function(){return elem.off("scroll",handler)}),$timeout(function(){return attrs.infiniteScrollImmediateCheck?scope.$eval(attrs.infiniteScrollImmediateCheck)?handler():void 0:handler()},0)}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btLazyPen",function(){return{restrict:"E",replace:!0,scope:{height:"@",themeId:"@",slug:"@",userId:"@",author:"@"},templateUrl:"template/btLazyPen/btLazyPen.tpl.html",link:function(scope){scope.showingPen={value:!1}}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btLeadCategory",["leadCategories",function(leadCategories){var categories={},abbrs={};return leadCategories.forEach(function(category){categories[category.value.toString()]=category.name,abbrs[category.value.toString()]=category.abbr}),{restrict:"E",replace:!0,scope:{category:"@",width:"@"},template:function(el,attrs){var equal=attrs.hasOwnProperty("equal"),abbr=attrs.hasOwnProperty("abbreviated");return['<span class="leadcat leadcat-{{ cat | lowercase }}',equal?abbr?" leadcat-eq-abbr":" leadcat-eq":"",'">{{ ',abbr?"abbr":"cat","}}</span>"].join("")},link:function(scope){var updateScope=function(){scope.cat=categories[scope.category],scope.abbr=abbrs[scope.category]};updateScope(),scope.$watch("category",function(newVal,oldVal){newVal!==oldVal&&updateScope()})}}}])}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btLoader",function(){return{restrict:"E",replace:!0,templateUrl:"template/loader/bt-loader.tpl.html"}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btLockBody",function($document,$window){return{link:function(scope,element){var scrollTop,$body=angular.element(document.getElementsByTagName("body")[0]),$html=angular.element(document.getElementsByTagName("html")[0]),$windowEl=angular.element($window),htmlDefault={position:$html.css("position"),"overflow-y":$html.css("overflow-y"),width:$html.css("width"),isScrolled:!1};$document.height()>$windowEl.height()&&(scrollTop=$html.scrollTop()||$body.scrollTop(),$html.css("top",-scrollTop),htmlDefault.isScrolled=!0),$html.css("position","fixed"),$html.css("overflow-y","scroll"),$html.css("width","100%"),element.bind("$destroy",function(){$html.css("position",htmlDefault.position),$html.css("overflow-y",htmlDefault["overflow-y"]),$html.css("width",htmlDefault.width),htmlDefault.isScrolled&&($html.scrollTop(scrollTop),$body.scrollTop(scrollTop))})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btNgModelOnblur",function(){return{restrict:"A",require:"ngModel",priority:1,link:function(scope,element,attrs,ngModel){var update=function(alwaysUpdate){scope.$apply(function(){var elementValue=element.val().trim();if(!alwaysUpdate){var modelEmpty=angular.isUndefined(ngModel.$modelValue)||null===ngModel.$modelValue;if(modelEmpty){if(""===elementValue)return}else{var normalizedValue=elementValue.replace(/[^.0-9]+/g,"");if(""!==normalizedValue&&(normalizedValue=/\./.test(normalizedValue)?parseFloat(normalizedValue,10):parseInt(normalizedValue,10),normalizedValue===ngModel.$modelValue))return}}ngModel.$setViewValue(elementValue),ngModel.$render()})};element.off("input").off("keydown").off("change").on("blur",function(){update(!1)}).on("keydown",function(e){13===e.keyCode&&update(!0)}),scope.$on("$destroy",function(){element.unbind()})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btNumber",function(){return{require:"ngModel",restrict:"A",link:function(scope,iElement,iAttrs,modelCtrl){modelCtrl.$parsers.push(function(data){if(data){var parsed=data.toString().replace(/[^0-9.]+/g,"");return parsed&&(parsed=/\./.test(data)?parseFloat(data):parseInt(data)),parsed!==data&&(modelCtrl.$setViewValue(parsed),modelCtrl.$render()),parsed}return data})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btPager",function(){return{restrict:"E",templateUrl:"template/btPager/bt-pager.tpl.html",scope:{currentPage:"=",totalItems:"=",itemsPerPage:"="}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btPropertyCard",function(){return{restrict:"E",replace:!0,scope:{property:"=",size:"@",onClickBestFit:"&",onClickFavs:"&"},templateUrl:function(el,attrs){var template="";return template="sm"===attrs.size?"template/property-card/bt-property-card-sm.tpl.html":"template/property-card/bt-property-card.tpl.html"},link:function(scope){scope.onClickBestFit=scope.onClickBestFit||angular.noop,scope.onClickFavs=scope.onClickFavs||angular.noop,scope.isSmall="sm"===scope.size}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btScore",function(){return{restrict:"E",replace:!0,template:'<span class="score" ng-class="getScoreClasses()">{{ score }}</span>',scope:{score:"=",size:"@"},link:function(scope){var translateScore=function(score){var scoreType,scoreTranslation;scoreTranslation=parseInt(score,10),isNaN(scoreTranslation)||(scoreTranslation>=76?scoreType="score-excellent":scoreTranslation>=56?scoreType="score-good":scoreTranslation>=26&&(scoreType="score-average")),scope.scoreType=scoreType||""};scope.scoreSize=scope.size&&"score-"+scope.size||"",scope.scoreType=translateScore(scope.score),scope.getScoreClasses=function(){return[scope.scoreSize,scope.scoreType]},scope.$watch("score",function(newScore){translateScore(newScore)}),scope.$watch("size",function(newSize){scope.scoreSize=newSize&&"score-"+newSize||""})}}})}(angular.module("boomstrap")),function(Boomstrap,baron){"use strict";Boomstrap.directive("btScrollbar",function($window){return{restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/scrollbar/bt-scrollbar.tpl.html",link:function(scope,element){function checkHeight(){$scroller.scrollHeight<=$scroller.clientHeight?$scrollbar.classList.add("hidden"):$scrollbar.classList.remove("hidden")}var $element=angular.element(element),$scroller=$element.find(".baron-scroller")[0],$scrollbar=$element.find(".baron-scroller-bar")[0],scroll=baron({root:element,scroller:".baron-scroller",track:".baron-scroller-track",bar:".baron-scroller-bar",$:angular.element});$element.on("click",function(){$window.setTimeout(function(){scroll.update(),checkHeight()},400)}),$element.on("mouseover",function(){scroll.update(),checkHeight()}),scope.$on("$destroy",function(){scroll.dispose()})}}})}(angular.module("boomstrap"),window.baron),function(Boomstrap){"use strict";Boomstrap.directive("btSelectRange",function($filter){return{restrict:"E",require:"ngModel",templateUrl:"template/select-range/range.tpl.html",replace:!0,scope:{values:"=",minPlaceholder:"@",maxPlaceholder:"@",btnClass:"@",translateMin:"=",translateMax:"=",onSelectBoundary:"&"},link:function(scope,iElement,iAttrs,ngModel){scope.minimum={value:ngModel.$modelValue.minimum},scope.maximum={value:ngModel.$modelValue.maximum},scope.minPlaceholder=scope.minPlaceholder||"Select a minimum value",scope.maxPlaceholder=scope.maxPlaceholder||"Select a maximum value",scope.btnClass=scope.btnClass||"",scope.boundaryEnum={MINIMUM:"minimum",MAXIMUM:"maximum"};var translateValidValue,validateMinMax=function(flippingFn){-1!==scope.maximum.value&&-1!==scope.minimum.value&&scope.maximum.value<scope.minimum.value&&flippingFn&&flippingFn()},addValueToValues=function(value,collection){if(value&&collection){var parsedValue=value.toString().replace(/[^0-9\.]+/,"");parsedValue&&(parsedValue=parseFloat(parseFloat(parsedValue).toFixed(2)),isNaN(parsedValue)||-1!==collection.indexOf(parsedValue)||collection.unshift(parsedValue))}};translateValidValue="money"===iAttrs.rangeType?function(value){return $filter("currency")(value).split(".")[0]}:angular.identity,scope.translateMinValue=scope.translateMin||function(value,defaultText){return angular.isNumber(value)?-1===value?defaultText:translateValidValue(value):defaultText},scope.translateMaxValue=scope.translateMax||function(value,defaultText){return angular.isNumber(value)?-1===value?defaultText:translateValidValue(value):defaultText},scope.selectRangeBoundary=function(minOrMax,value){"function"==typeof scope.onSelectBoundary&&scope.onSelectBoundary({minOrMax:minOrMax,value:value})},function(){var modifiedValues,previousValue;scope.getValues=function(value){return value!==previousValue&&(previousValue=value,modifiedValues=scope.values.slice(),addValueToValues(value,modifiedValues)),modifiedValues}}(),scope.$watch(function(){return ngModel.$modelValue.minimum},function(){scope.minimum.value!==ngModel.$modelValue.minimum&&(scope.minimum.value=ngModel.$modelValue.minimum)}),scope.$watch(function(){return ngModel.$modelValue.maximum},function(){scope.maximum.value!==ngModel.$modelValue.maximum&&(scope.maximum.value=ngModel.$modelValue.maximum)}),scope.$watch("minimum.value",function(newMin,oldMin){newMin!==oldMin&&(validateMinMax(function(){scope.maximum.value=scope.minimum.value}),addValueToValues(scope.minimum.value,scope.values),ngModel.$modelValue.minimum=scope.minimum.value,ngModel.$setViewValue(ngModel.$viewValue))}),scope.$watch("maximum.value",function(newMax,oldMax){newMax!==oldMax&&(validateMinMax(function(){scope.minimum.value=scope.maximum.value}),addValueToValues(scope.maximum.value,scope.values),ngModel.$modelValue.maximum=scope.maximum.value,ngModel.$setViewValue(ngModel.$viewValue))})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.controller("templatePopoverPopupCtrl",function($scope){this.close=function($event){$event&&$event.stopPropagation&&$event.stopPropagation(),$scope.$parent.close()}}).directive("templatePopoverPopup",function(){return{restrict:"EA",replace:!0,scope:{title:"@",content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/popover/template-popover.html",controller:"templatePopoverPopupCtrl",controllerAs:"$popover"}}).controller("templatePopoverCtrl",function($scope){$scope.close=function(){$scope.tt_isOpen=!1}}).directive("templatePopover",["$tooltip",function($tooltip){var toolTip=$tooltip("templatePopover","templatePopover","click");return toolTip.controller="templatePopoverCtrl",toolTip}])}(angular.module("boomstrap")),function(Boomstrap,Tour){"use strict";Boomstrap.service("bootstrapTourService",function($templateCache,$rootScope,$http,AUTO_START_TOUR){var tourRef,tour={init:function(steps,onStart,onNextStep,onDismiss,onComplete){var tourSteps=[];angular.forEach(steps,function(step){step.template&&(step.template=$templateCache.get(step.template)),step.content||step.title||(step.content="."),tourSteps.push(step)}),tour.steps=tourSteps,tour.onStart=onStart,tour.onNextStep=onNextStep,tour.onDismiss=onDismiss,tour.onComplete=onComplete},steps:[],startTour:function(startingStep){startingStep=startingStep||0;var tourTemplate=$templateCache.get("template/popover/popover-bootstrap-tour.html"),wasHidden=tour.isHidden;tour.isHidden=!1,tourRef&&tourRef.ended&&!tourRef.ended()&&tourRef.end();var ngApply=function(fn){return function(){$rootScope.$$phase?fn():$rootScope.$apply(fn)}};tourRef=new Tour({steps:tour.steps.slice(startingStep),template:tourTemplate,container:"body",storage:!1,onNext:ngApply(function(){tour.currentStep+=1,tour.onNextStep&&tour.onNextStep()}),onPrev:ngApply(function(){tour.currentStep-=1}),onEnd:ngApply(function(){tour.isHidden||(tour.currentStep===tour.steps.length-1?tour.onComplete&&tour.onComplete():tour.onDismiss&&tour.onDismiss()),tour.currentStep=-1})}),tourRef.init(),tourRef.start(!0),tour.currentStep=startingStep,!wasHidden&&tour.onStart&&tour.onStart(),$rootScope.$on("$stateChangeStart",function(){tourRef&&tourRef.ended&&!tourRef.ended()&&(tour.endTour(!0),AUTO_START_TOUR.value=!1)})},currentStep:-1,isHidden:!1,shouldResume:function(val){return angular.isDefined(val)&&(tour.isHidden=val,tour.onNextStep&&tour.onNextStep()),tour.isHidden},goToNextStep:function(){tourRef.next()},endTour:function(){tourRef.end()}};return tour})}(angular.module("boomstrap"),window.Tour),function(Boomstrap){"use strict";Boomstrap.filter("btCurrency",function($filter,$locale){var formats=$locale.NUMBER_FORMATS,currencyFilter=$filter("currency");return function(amount,currencySymbol){amount=amount?(1*amount).toFixed(2):0;var value=currencyFilter(amount,currencySymbol),parts=value.split(formats.DECIMAL_SEP),dollar=parts[0],cents=parts[1]||"00";return cents="00"===cents.substring(0,2)?cents.substring(2):"."+cents,dollar+cents}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.filter("btFormatDateToLocal",function($filter){return function(utcDate,params){var formattedDate,defaultFilter;return utcDate?(utcDate=utcDate.replace(/Z$/,"")+"Z",defaultFilter=params?params:"EEEE, MMMM d, y 'at' h:mma",formattedDate=$filter("date")(utcDate,defaultFilter)):formattedDate="",formattedDate}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.filter("btPhoneNumber",function(){return function(string,params){var formattedNumber,localPrefix,localMain,area,number=string||"";switch(params){case"remove":formattedNumber=number.replace(/\D/g,""),formattedNumber.length>10&&0===formattedNumber.indexOf("1")&&(formattedNumber=formattedNumber.substring(1));break;case"add":number=number.replace(/\D/g,""),area=number.substring(0,3),localPrefix=number.substring(3,6),localMain=number.substring(6),formattedNumber="("+area+") "+localPrefix+"-"+localMain;break;default:formattedNumber=string}return formattedNumber}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.filter("capitalize",function(){return function(str){return str.charAt(0).toUpperCase()+str.slice(1)}})}(angular.module("boomstrap")),angular.module("ui.bootstrap").run(["$templateCache",function($templateCache){$templateCache.put("template/pager/bt-pager.tpl.html",'<div class="btn-group minimal-pager">\n <button\n type="button"\n class="btn btn-default btn-icon"\n ng-class="{ \'disabled\': noPrevious() }"\n ng-click="selectPage(page - 1)"><svg class="icon"><use xlink:href="#icon-chevron-left"/></svg></button>\n <button\n type="button"\n class="btn btn-default btn-icon"\n ng-class="{ \'disabled\': noNext() }"\n ng-click="selectPage(page + 1)"><svg class="icon"><use xlink:href="#icon-chevron-right"/></svg></i></button>\n</div>')}]),angular.module("boomstrap").run(["$templateCache",function($templateCache){$templateCache.put("template/nav.html",'<nav class="navbar navbar-default navbar-fixed-top" role="navigation">\n <div class="container-fluid">\n <div class="navbar-header">\n <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#pl-nav">\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </button>\n <a class="navbar-brand" href="#">PL</a>\n </div>\n <div class="collapse navbar-collapse" id="pl-nav">\n <ul class="nav navbar-nav">\n <li class="active"><a href="#pl-colors">Colors</a></li>\n <li class="dropdown">\n <a href="#" class="dropdown-toggle" data-toggle="dropdown">Buttons <b class="caret"></b></a>\n <ul class="dropdown-menu">\n <li><a href="#pl-button-options">Options</a></li>\n <li><a href="#pl-button-sizes">Sizes</a></li>\n <li><a href="#pl-button-active">Active State</a></li>\n <li><a href="#pl-button-disabled">Disabled State</a></li>\n <li><a href="#pl-button-tags">Button Tags</a></li>\n </ul>\n </li>\n <li><a href="#pl-labels">Labels</a></li>\n <li><a href="#pl-typography">Typography</a></li>\n </ul>\n </div>\n </div>\n</nav>\n<div class="container">'),$templateCache.put("template/btLazyPen/btLazyPen.tpl.html",'<div class="bt-lazy-pen">\n <span class="btn btn-attention" ng-if="!showingPen.value" ng-click="showingPen.value = !showingPen.value">Load CodePen Example</span>\n <div ng-if="showingPen.value">\n <p data-height="{{ height }}" data-theme-id="{{ themeId }}" data-slug-hash="{{ slug }}" data-default-tab="result" class=\'codepen\'>See the Pen <a href=\'http://codepen.io/{{ user }}/pen/{{ slug }}/\'>{{ title }}</a> by {{ author }} (<a href=\'http://codepen.io/{{ user }}\'>@{{ userId }}</a>) on <a href=\'http://codepen.io\'>CodePen</a>.</p>\n <script async src="//codepen.io/assets/embed/ei.js"></script>\n </div>\n</div>'),$templateCache.put("template/btPager/bt-pager.tpl.html",'<pager\n template-url="template/pager/bt-pager.tpl.html"\n total-items="totalItems"\n items-per-page="itemsPerPage"\n ng-model="currentPage">\n</pager>'),$templateCache.put("template/carousel/carousel.html",'<div ng-mouseenter="pause()" ng-mouseleave="play()" class="carousel">\n <ol class="carousel-indicators" ng-show="slides.length > 1">\n <li ng-repeat="slide in slides" ng-class="{active: isActive(slide)}" ng-click="select(slide)"></li>\n </ol>\n <div class="carousel-inner" ng-transclude></div>\n <a class="left carousel-control" ng-click="prev()" ng-show="slides.length > 1"><svg class="icon"><use xlink:href="#icon-chevron-left"/></svg></a>\n <a class="right carousel-control" ng-click="next()" ng-show="slides.length > 1"><svg class="icon"><use xlink:href="#icon-chevron-right"/></svg></a>\n</div>'),$templateCache.put("template/dropdown/bt-dropdown.tpl.html",'<div class="dropdown">\n <button class="btn btn-default dropdown-toggle" type="button">\n <span class="pull-left" ng-bind="selectedValue"></span>\n <span class="caret"></span>\n </button>\n <ul class="dropdown-menu" role="menu" ng-style="{ \'min-width\': dropdownWidth + \'px\'}">\n <li ng-repeat="value in arrayValues" ng-if="keysAreNumbers">\n <a ng-click="assignValue(value.key)">{{ value.value }}</a>\n </li>\n <li ng-repeat="(choiceValue, choiceName) in values" ng-if="!keysAreNumbers">\n <a ng-click="assignValue(choiceValue)">{{choiceName}}</a>\n </li>\n </ul>\n</div>'),$templateCache.put("template/loader/bt-loader.tpl.html",'<div class="loader">\n <span class="loader-pulse"></span>\n <span class="loader-pulse"></span>\n <span class="loader-pulse"></span>\n</div>'),$templateCache.put("template/popover/popover-bootstrap-tour.html",'<div class="popover">\n <div class="arrow"></div>\n <div class="popover-close">\n <svg class="icon property-close" data-role="end"><use xlink:href="#icon-cross"/></svg>\n </div>\n <h3 class="popover-title">Tour</h3>\n <div class="tour-popover popover-content"></div>\n <div class="popover-navigation">\n <button class="btn btn-sm btn-default" data-role="prev">Prev</button>\n <button class="btn btn-sm btn-primary" data-role="next"><span>Next</span></button>\n </div>\n</div>'),$templateCache.put("template/popover/template-popover.html",'<div class="popover {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n <div class="arrow"></div>\n\n <div class="popover-close" ng-click="$popover.close($event)" aria-hidden="true"><svg class="icon"><use xlink:href="#icon-cross"/></svg></div>\n\n <h3 class="popover-title" ng-bind="title" ng-show="title"></h3>\n\n <div class="popover-content" ng-include="content"></div>\n</div>'),$templateCache.put("template/scrollbar/bt-scrollbar.tpl.html",'<div class="baron">\n <div class="baron-scroller" ng-transclude></div>\n <div class="baron-scroller-track">\n <div class="baron-scroller-bar"></div>\n </div>\n</div>\n'),$templateCache.put("template/property-card/bt-property-card-sm.tpl.html",'<div class="card card-sm">\n <!-- ///////////////////////////////////////////////// -->\n <!-- Optional: replace "card-photo" div with carousel -->\n <!-- ///////////////////////////////////////////////// -->\n <div class="card-photo">\n <div class="card-photo-inner">\n <div ng-if="property.newProperty" class="sash sash-new">New <span class="sash-time" am-time-ago="{{ property.newProperty }}"></span></div>\n <div ng-if="property.offMarket" class="sash sash-off">Off Market <span class="sash-time" am-time-ago="{{ property.offMarket }}"></span></div>\n <div ng-if="property.reduced" class="sash sash-reduced"><svg class="icon"><use xlink:href="#icon-arrow-down"/></svg> {{ property.reduced.change }} ({{ property.reduced.changePercent }}) <span class="sash-time" am-time-ago="{{ property.reduced.when }}"></span></div>\n <div ng-if="property.backOnMarket" class="sash sash-back">Back <span class="sash-time" am-time-ago="{{ property.backOnMarket }}"></span></div>\n <img ng-if="property.imageSrc.length <= 1" bt-error-img="http://boomstatic.com/images/comingsoon-lg.jpg" class="card-img" ng-src="{{ property.imageSrc[0] }}" alt="{{ property.fullAddress }}">\n <carousel ng-if="property.imageSrc.length > 1">\n <slide ng-repeat="slide in property.imageSrc">\n <img ng-src="{{ slide }}" style="margin: auto">\n </slide>\n </carousel>\n </div>\n </div>\n <!-- ///////////////////////////////////////////////// -->\n <div class="card-sm-container">\n <div class="row row-xcondensed">\n <div class="col-xs-8">\n <p class="card-sm-priority card-sm-street">\n <a target="_blank" href="{{ property.listingUrl }}">{{ property.address.street }}</a>\n </p>\n <p class="xsmall">{{ property.address.city }}, {{ property.address.state }}</p>\n <p class="xsmall">{{ property.address.neighborhood }}</p>\n </div>\n <div class="col-xs-4 text-right">\n <p class="card-sm-priority card-sm-price">{{ property.listPrice }}</p>\n <p class="xsmall">{{ property.pricePerSqft }}/SQFT</p>\n </div>\n </div>\n </div>\n <div class="card-sm-stats">\n <span class="card-sm-stat">{{ property.beds }} BEDS</span>\n <span class="card-sm-stat">{{ property.baths }} BATHS</span>\n <span class="card-sm-stat">{{ property.sqft }} SQFT</span>\n <span class="card-sm-stat">{{ property.acres }} ACRES</span>\n </div>\n <div class="card-sm-container">\n <div class="row row-xcondensed">\n <div class="col-sm-6">\n <button type="button" class="btn btn-default btn-block btn-sm" ng-click="onClickBestFit($event)"><svg class="icon icon-star"><use xlink:href="#icon-star"/></svg> {{ property.bestFits }} Best-Fit</button>\n </div>\n <div class="col-sm-6">\n <button type="button" class="btn btn-default btn-block btn-sm" ng-click="onClickFavs($event)"><svg class="icon icon-heart"><use xlink:href="#icon-heart"/></svg> {{ property.favs }} Favs</button>\n </div>\n </div>\n </div> <!-- /card-container -->\n</div>'),
$templateCache.put("template/property-card/bt-property-card.tpl.html",'<div class="card" ng-class="{ \'card-sm\': size === \'sm\' }">\n <div ng-if="property.newProperty" class="sash sash-new">New <span class="sash-time" am-time-ago="{{ property.newProperty }}"></span></div>\n <div ng-if="property.offMarket" class="sash sash-off">Off Market <span class="sash-time" am-time-ago="{{ property.offMarket }}"></span></div>\n <div ng-if="property.reduced" class="sash sash-reduced"><svg class="icon"><use xlink:href="#icon-arrow-down"/></svg> {{ property.reduced.change }} ({{ property.reduced.changePercent }}) <span class="sash-time" am-time-ago="{{ property.reduced.when }}">{{ property.reduced.when }}</span></div>\n <div ng-if="property.backOnMarket" class="sash sash-back">Back <span class="sash-time" am-time-ago="{{ property.backOnMarket }}">{{ property.backOnMarket }}</span></div>\n <div class="card-photo">\n <div class="card-photo-inner">\n <img ng-if="property.imageSrc.length <= 1" bt-error-img="http://boomstatic.com/images/comingsoon-lg.jpg" class="card-img" ng-src="{{ property.imageSrc[0] }}" alt="{{ property.fullAddress }}">\n <carousel ng-if="property.imageSrc.length > 1">\n <slide ng-repeat="slide in property.imageSrc">\n <img ng-src="{{ slide }}" style="margin: auto">\n </slide>\n </carousel>\n </div>\n </div>\n <div class="card-container">\n <div class="row row-xcondensed">\n <p class="card-priority card-price">{{ property.listPrice }}</p>\n <p class="card-priority card-street">\n <a target="_blank" href="{{ property.listingUrl }}">{{ property.address.street }}</a>\n </p>\n <div class="col-xs-7">\n <p class="small">{{ property.address.city }}, {{ property.address.state }}</p>\n <p class="small">{{ property.address.neighborhood }}</p>\n </div>\n <div class="col-xs-5 text-right">\n <p class="small">{{ property.pricePerSqft }}/SQFT</p>\n </div>\n </div>\n </div>\n <div class="card-stats">\n <span class="card-stat">{{ property.beds }} BEDS</span>\n <span class="card-stat">{{ property.baths }} BATHS</span>\n <span class="card-stat">{{ property.sqft }} SQFT</span>\n <span class="card-stat">{{ property.acres }} ACRES</span>\n </div>\n <div class="card-container">\n <div class="row row-xcondensed">\n <div class="col-sm-6">\n <button type="button" class="btn btn-default btn-block btn-sm" ng-click="onClickBestFit($event)"><svg class="icon icon-star"><use xlink:href="#icon-star"/></svg> {{ property.bestFits }} Best-Fit</button>\n </div>\n <div class="col-sm-6">\n <button type="button" class="btn btn-default btn-block btn-sm" ng-click="onClickFavs($event)"><svg class="icon icon-heart"><use xlink:href="#icon-heart"/></svg> {{ property.favs }} Favs</button>\n </div>\n </div>\n </div> <!-- /card-container -->\n <div ng-if="!isSmall">\n <div class="card-toggle">\n <span ng-click="isExpanded = !isExpanded" ng-show="!isExpanded"><svg class="icon"><use xlink:href="#icon-chevron-down"/></svg> More Detail</span>\n <span ng-click="isExpanded = !isExpanded" ng-show="isExpanded"><svg class="icon"><use xlink:href="#icon-chevron-up"/></svg> Less Detail</span>\n </div>\n <div collapse="!isExpanded" class="card-detail">\n <div class="card-container">\n <div class="row row-xcondensed">\n <div class="col-xs-6">\n <p class="small"><strong>MLS#:</strong> <a target="_blank" href="">{{ property.mls }}</a></p>\n </div>\n <div class="col-xs-6 text-right">\n <p class="small"><strong>LISTED:</strong> {{ property.listed }}</p>\n </div>\n </div>\n <p class="small"><strong>TYPE:</strong> {{ property.type }}</p>\n </div> <!-- /card-container -->\n <p class="card-title">Price History</p>\n <div class="card-container card-price-history">\n <div ng-repeat="history in property.history" class="row row-xcondensed">\n <div class="col-xs-3">\n <p class="small">{{ history.when }}</p>\n </div>\n <div class="col-xs-5 col-xs-offset-1">\n <p class="small card-price-history-change"><svg class="icon"><use xlink:href="#icon-arrow-down"/></svg> {{ history.change }} ({{ history.changePercent }})</p>\n </div>\n <div class="col-xs-3 text-right">\n <p class="small">{{ history.price }}</p>\n </div>\n </div>\n </div> <!-- /card-price-history -->\n <div class="card-container">\n <div class="row row-xcondensed">\n <div class="col-sm-6">\n <button class="btn btn-default btn-sm btn-block"><svg class="icon"><use xlink:href="#icon-location"/></svg> Map View</button>\n </div>\n <div class="col-sm-6">\n <button class="btn btn-default btn-sm btn-block">Full Details <svg class="icon"><use xlink:href="#icon-arrow-bend-right"/></svg> </button>\n </div>\n </div>\n </div> <!-- /card-container -->\n </div> <!-- /card-detail -->\n </div>\n</div>'),$templateCache.put("template/select-range/range.tpl.html",'<div class="ui-select-range clearfix">\n <ui-select ng-model="minimum.value" on-select="selectRangeBoundary(boundaryEnum.MINIMUM, $item)">\n <ui-select-match class="{{ btnClass }}" placeholder="{{ minPlaceholder }}">{{ translateMinValue($select.selected, \'No min\') }}</ui-select-match>\n <ui-select-choices repeat="value in getValues($select.search) | filter: $select.search">\n <div>{{ translateMinValue(value, \'No min\') }}</div>\n </ui-select-choices>\n </ui-select>\n <ui-select ng-model="maximum.value" on-select="selectRangeBoundary(boundaryEnum.MAXIMUM, $item)">\n <ui-select-match class="{{ btnClass }}" placeholder="{{ maxPlaceholder }}">{{ translateMaxValue($select.selected, \'No max\') }}</ui-select-match>\n <ui-select-choices repeat="value in getValues($select.search) | filter: $select.search">\n <div>{{ translateMaxValue(value, \'No max\') }}</div>\n </ui-select-choices>\n </ui-select>\n</div>'),$templateCache.put("template/bootstrap/pager/bt-pager.tpl.html",'<div class="btn-group minimal-pager">\n <button\n type="button"\n class="btn btn-default btn-icon"\n ng-class="{ \'disabled\': noPrevious() }"\n ng-click="selectPage(page - 1)"><svg class="icon"><use xlink:href="#icon-chevron-left"/></svg></button>\n <button\n type="button"\n class="btn btn-default btn-icon"\n ng-class="{ \'disabled\': noNext() }"\n ng-click="selectPage(page + 1)"><svg class="icon"><use xlink:href="#icon-chevron-right"/></svg></i></button>\n</div>')}]);
!function(){"use strict";angular.module("boomstrap",["ui.bootstrap","ui.select","angularMoment"]).value("AUTO_START_TOUR",{value:!1}).config(["uiSelectConfig",function(uiSelectConfig){uiSelectConfig.theme="bootstrap"}]).config(["$provide",function($provide){var href=window.location.href||"",isSPA=href.indexOf("/app/")>=0;isSPA&&$provide.decorator("$browser",["$delegate",function($delegate){return $delegate.url=function(){return""},$delegate}])}]),angular.module("ui.bootstrap").config(["$provide",function($provide){$provide.decorator("pagerDirective",function($delegate){var defaultUrl=$delegate[0].templateUrl;return $delegate[0].templateUrl=function(tElement,tAttrs){return tAttrs.templateUrl||defaultUrl},$delegate})}])}(),function(Boomstrap){"use strict";Boomstrap.constant("leadCategories",[{value:0,name:"new",abbr:"new",active:!0},{value:3,name:"qualify",abbr:"qual",active:!0},{value:5,name:"hot",abbr:"hot",active:!0},{value:4,name:"nurture",abbr:"nurt",active:!0},{value:2,name:"watch",abbr:"watch",active:!0},{value:11,name:"pending",abbr:"pend",active:!1},{value:10,name:"closed",abbr:"close",active:!1},{value:6,name:"archive",abbr:"arch",active:!1},{value:1,name:"trash",abbr:"trash",active:!1}])}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btAddClassOnLoad",function(){return{link:function(scope,element,attrs){attrs.$observe("btAddClassOnLoad",function(attrClass){element.bind("load",function(){element.addClass(attrClass)})})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btAffix",function($window){return{template:'<div class="bt-affix" ng-transclude></div>',transclude:!0,restrict:"A",link:function(scope,element,attrs){var windowEl=angular.element($window),$element=angular.element(element),$realElement=angular.element($element.children()[0]),defaults={position:$element.css("position"),top:$element.css("top"),"overflow-y":$element.css("overflow-y")};scope.isAffixed=!1,defaults.width="auto",scope.offset=0;var affixThis=function(){var myWidth=$realElement.css("width"),myHeight=$realElement.height();$realElement.css({position:"fixed",top:""+scope.offset+"px",width:myWidth,"max-height":"100%"}),scope.scroll&&$realElement.css({"overflow-y":"scroll"}),scope.fullHeight&&$realElement.css({height:"100%"}),scope.pinnedHeader&&$realElement.css({top:0,width:"100%",left:0}).addClass("pinned-header"),$element.addClass("is-bt-affixed").css({height:myHeight}),scope.isAffixed=!0},unAffixThis=function(){$realElement.scrollTop(0),$realElement.css(defaults),$realElement.css({height:"auto"}),$element.removeClass("is-bt-affixed").css({height:"auto"}),$realElement.removeClass("pinned-header"),scope.isAffixed=!1},scroller=function(){windowEl.scrollTop()>$element.offset().top-scope.offset?scope.isAffixed||affixThis():scope.isAffixed&&unAffixThis()},resizer=function(){scope.isAffixed&&(unAffixThis(),affixThis())};attrs.$observe("offset",function(val){angular.isDefined(val)&&(scope.offset=parseInt(val,10))}),windowEl.on("scroll.affix",scroller),windowEl.on("resize.affix",resizer),attrs.$observe("scroll",function(val){scope.scroll=!!val}),attrs.$observe("fullHeight",function(val){scope.fullHeight=!!val}),attrs.$observe("pinnedHeader",function(val){scope.pinnedHeader=!!val}),scope.$on("destroy",function(){windowEl.off("scroll.affix",scroller),windowEl.off("resize.affix",resizer)})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btArrowScroll",function($window){return{restrict:"A",scope:{distance:"@btArrowScroll"},link:function(scope,element){var scrollDistance,$windowEl=angular.element($window),DEFAULT_SCROLL_DISTANCE=50,parseScroll=function(value){var parsed;return angular.isDefined(value)?(parsed=parseInt(value,10),isNaN(parsed)?DEFAULT_SCROLL_DISTANCE:parsed):DEFAULT_SCROLL_DISTANCE};scrollDistance=parseScroll(scope.distance),scope.$watch("distance",function(newVal){angular.isDefined(newVal)&&newVal!==scrollDistance&&(scrollDistance=parseScroll(newVal))}),$windowEl.on("keydown.arrowscroll",function(e){var scroll;40===e.keyCode?(scroll=element.scrollTop(),scroll+scrollDistance<element[0].scrollHeight?(element.scrollTop(scroll+scrollDistance),e.preventDefault()):scroll!==element[0].scrollHeight&&element.scrollTop(element[0].scrollHeight)):38===e.keyCode&&(scroll=element.scrollTop(),scroll-scrollDistance>=0?(element.scrollTop(scroll-scrollDistance),e.preventDefault()):0!==scroll&&element.scrollTop(0))}),element.bind("$destroy",function(){$windowEl.off("keydown.arrowscroll")})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btAutoSubmit",function($timeout){return{require:"form",restrict:"A",scope:{ngSubmit:"&",shouldAutoSubmit:"=btAutoSubmit",submitTimeout:"@",willLoad:"="},link:function(scope,iElement,iAttrs,iCtrl){var autoSubmit=parseInt(scope.submitTimeout,10),submitTimeout=$timeout(function(){},0),triggerTimeout=function(){iCtrl.$setPristine(),$timeout.cancel(submitTimeout),scope.willLoad.value=!0,submitTimeout=$timeout(function(){scope.willLoad.value=!1,iCtrl.$valid&&(scope.ngSubmit({}),iCtrl.$setPristine())},autoSubmit)};scope.$watch(function(){return iCtrl.$valid&&iCtrl.$dirty},function(val,oldVal){scope.shouldAutoSubmit?val!==oldVal&&val&&triggerTimeout():iCtrl.$setPristine()})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btBodyLoader",function($parse,$document){return{restrict:"E",replace:!0,scope:{isLoading:"="},link:function(scope){var body=$document.find("body"),loader=$document.find("#bt-body-loader"),template='<div id="bt-body-loader" class="loader body-loader"><span class="loader-pulse"></span><span class="loader-pulse"></span><span class="loader-pulse"></span></div>';return loader.length>0?!0:(body.append(template),void scope.$watch("isLoading",function(newVal){var $loader=angular.element("#bt-body-loader"),display=newVal.value===!1?"none":"block";$loader.css({display:display})},!0))}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btCenterOnPage",function($window,$timeout){return{restrict:"A",link:function(scope,element){var $element=angular.element(element),windowEl=angular.element($window),centerElement=function(){var windowWidth=windowEl.width(),windowHeight=windowEl.height(),elementWidth=$element.width(),elementHeight=$element.height();$element.css({top:Math.floor((windowHeight-elementHeight)/2).toString()+"px",left:Math.floor((windowWidth-elementWidth)/2).toString()+"px"})};$timeout(centerElement,0),windowEl.on("resize.modal",centerElement),scope.$on("$destroy",function(){windowEl.off("resize.modal")})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btDatePicker",function(){return{restrict:"A",scope:{date:"=btDatePicker"},link:function(scope,element){element.bsDatepicker({dateFormat:"dd-MM-yyyy",todayHighlight:!0,startDate:new Date,language:"en",pickTime:!1,autoclose:!0}).on("changeDate",function(e){scope.$apply(function(){scope.date.value=e.date})}),scope.$on("$destroy",function(){element.bsDatepicker("remove")})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btDropdown",function($window){return{restrict:"A",require:"ngModel",templateUrl:"template/dropdown/bt-dropdown.tpl.html",replace:!0,scope:{values:"=",keysAreNumbers:"=",onAssign:"&"},link:function(scope,iElement,iAttrs,ngModel){var windowEl=angular.element($window),sortNumberKeys=function(objectValues){var sortedArray=[];return Object.keys(objectValues).forEach(function(key){sortedArray.push({key:key,value:objectValues[key]})}),sortedArray.sort(function(a,b){return parseInt(a.key,10)>parseInt(b.key,10)}),sortedArray};scope.keysAreNumbers&&(scope.arrayValues=sortNumberKeys(scope.values),scope.$watch("values",function(newValues,oldValues){newValues&&oldValues&&newValues.length!==oldValues.length&&(scope.arrayValues=sortNumberKeys(scope.values))})),scope.assignValue=function(value){scope.selectedValue=scope.values[value],ngModel.$setViewValue(value),scope.onAssign&&scope.onAssign({ddValue:value,ddTranslation:scope.selectedValue})},scope.valuesLength=function(){return scope.values&&Object.keys(scope.values).length||0};var setDropdownWidth=function(){scope.dropdownWidth=angular.element(iElement[0].children[0]).outerWidth()};setDropdownWidth(),windowEl.on("resize.dropdown",function(){scope.$apply(setDropdownWidth)}),scope.$watch(function(){return ngModel.$modelValue},function(newVal,oldVal){(newVal!==oldVal||angular.isUndefined(scope.selectedValue))&&(scope.selectedValue=scope.values[newVal]||"")}),scope.$on("$destroy",function(){windowEl.off("resize.dropdown")})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btErrorImg",function(){return{link:function(scope,element,attrs){element.bind("error",function(){element.attr("src",attrs.btErrorImg)})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btFocusOn",function($timeout){return{restrict:"A",link:function(scope,element,attrs){var currentValue={value:!1};attrs.$observe("btFocusOn",function(newValue){if(angular.isDefined(newValue)){var newValBool=scope.$eval(newValue);!currentValue.value&&newValBool&&$timeout(function(){element[0].focus()}),currentValue.value=newValBool}})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btFormatMoney",function($filter){return{restrict:"A",require:"ngModel",link:function(scope,ele,attrs,ctrl){var formatCurrency=function(input){var currency=$filter("currency")(input);return currency.split(".")[0]};ctrl.$parsers.push(function(data){var parsed;data?(parsed=parseInt(data.replace(/[^0-9]+/g,"")),isNaN(parsed)&&(parsed=null)):parsed=null;var newViewValue;return newViewValue=parsed?formatCurrency(parsed):null,newViewValue!==data&&ctrl.$setViewValue(newViewValue),ctrl.$render(),parsed}),ctrl.$formatters.push(function(data){return null===data?null:formatCurrency(data)})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btIFrame",function($window){return $window.iFrameCloseRegister=function(){},{template:'<iframe ng-src="{{src}}" width="{{width}}" height="{{height}}" seamless onload="window.iFrameCloseRegister()"></iframe>',restrict:"A",scope:{width:"@",height:"@",src:"=",closeFrame:"&"},link:function(scope,element){$window.iFrameCloseRegister=function(){element.children()[0]&&element.children()[0].contentWindow&&element.children()[0].contentWindow.registerClose&&element.children()[0].contentWindow.registerClose(function(){scope.closeFrame()})},scope.$on("$destroy",function(){$window.iFrameCloseRegister=function(){}})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btInfiniteScrollElement",function($rootScope,$timeout){return{link:function(scope,elem,attrs){var checkWhenEnabled,handler,scrollEnabled,scrollDistance;scrollEnabled=!0,checkWhenEnabled=!1,scrollDistance=30,attrs.$observe("infiniteScrollDistance",function(newVal,oldVal){newVal!==oldVal&&newVal&&(scrollDistance=parseInt(newVal,10),isNaN(scrollDistance)&&(scrollDistance=30))}),handler=function(){var elementTotalHeight,elementScrollPosition,elementVisibleHeight,shouldScroll;return elementTotalHeight=elem[0].scrollHeight,elementScrollPosition=elem.scrollTop(),elementVisibleHeight=elem.height(),shouldScroll=scrollDistance>=elementTotalHeight-(elementVisibleHeight+elementScrollPosition),shouldScroll&&scrollEnabled?$rootScope.$$phase?scope.$eval(attrs.btInfiniteScrollElement):scope.$apply(attrs.btInfiniteScrollElement):shouldScroll?checkWhenEnabled=!0:void 0},elem.on("scroll",handler),scope.$on("$destroy",function(){return elem.off("scroll",handler)}),$timeout(function(){return attrs.infiniteScrollImmediateCheck?scope.$eval(attrs.infiniteScrollImmediateCheck)?handler():void 0:handler()},0)}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btLazyPen",function(){return{restrict:"E",replace:!0,scope:{height:"@",themeId:"@",slug:"@",userId:"@",author:"@"},templateUrl:"template/btLazyPen/btLazyPen.tpl.html",link:function(scope){scope.showingPen={value:!1}}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btLeadCategory",["leadCategories",function(leadCategories){var categories={},abbrs={};return leadCategories.forEach(function(category){categories[category.value.toString()]=category.name,abbrs[category.value.toString()]=category.abbr}),{restrict:"E",replace:!0,scope:{category:"@",width:"@"},template:function(el,attrs){var equal=attrs.hasOwnProperty("equal"),abbr=attrs.hasOwnProperty("abbreviated");return['<span class="leadcat leadcat-{{ cat | lowercase }}',equal?abbr?" leadcat-eq-abbr":" leadcat-eq":"",'">{{ ',abbr?"abbr":"cat","}}</span>"].join("")},link:function(scope){var updateScope=function(){scope.cat=categories[scope.category],scope.abbr=abbrs[scope.category]};updateScope(),scope.$watch("category",function(newVal,oldVal){newVal!==oldVal&&updateScope()})}}}])}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btLoader",function(){return{restrict:"E",replace:!0,templateUrl:"template/loader/bt-loader.tpl.html"}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btLockBody",function($document,$window){return{link:function(scope,element){var scrollTop,$body=angular.element(document.getElementsByTagName("body")[0]),$html=angular.element(document.getElementsByTagName("html")[0]),$windowEl=angular.element($window),htmlDefault={position:$html.css("position"),"overflow-y":$html.css("overflow-y"),width:$html.css("width"),isScrolled:!1};$document.height()>$windowEl.height()&&(scrollTop=$html.scrollTop()||$body.scrollTop(),$html.css("top",-scrollTop),htmlDefault.isScrolled=!0),$html.css("position","fixed"),$html.css("overflow-y","scroll"),$html.css("width","100%"),element.bind("$destroy",function(){$html.css("position",htmlDefault.position),$html.css("overflow-y",htmlDefault["overflow-y"]),$html.css("width",htmlDefault.width),htmlDefault.isScrolled&&($html.scrollTop(scrollTop),$body.scrollTop(scrollTop))})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btNgModelOnblur",function(){return{restrict:"A",require:"ngModel",priority:1,link:function(scope,element,attrs,ngModel){var update=function(alwaysUpdate){scope.$apply(function(){var elementValue=element.val().trim();if(!alwaysUpdate){var modelEmpty=angular.isUndefined(ngModel.$modelValue)||null===ngModel.$modelValue;if(modelEmpty){if(""===elementValue)return}else{var normalizedValue=elementValue.replace(/[^.0-9]+/g,"");if(""!==normalizedValue&&(normalizedValue=/\./.test(normalizedValue)?parseFloat(normalizedValue,10):parseInt(normalizedValue,10),normalizedValue===ngModel.$modelValue))return}}ngModel.$setViewValue(elementValue),ngModel.$render()})};element.off("input").off("keydown").off("change").on("blur",function(){update(!1)}).on("keydown",function(e){13===e.keyCode&&update(!0)}),scope.$on("$destroy",function(){element.unbind()})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btNumber",function(){return{require:"ngModel",restrict:"A",link:function(scope,iElement,iAttrs,modelCtrl){modelCtrl.$parsers.push(function(data){if(data){var parsed=data.toString().replace(/[^0-9.]+/g,"");return parsed&&(parsed=/\./.test(data)?parseFloat(data):parseInt(data)),parsed!==data&&(modelCtrl.$setViewValue(parsed),modelCtrl.$render()),parsed}return data})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btPager",function(){return{restrict:"E",templateUrl:"template/btPager/bt-pager.tpl.html",scope:{currentPage:"=",totalItems:"=",itemsPerPage:"="}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btPropertyCard",function(){return{restrict:"E",replace:!0,scope:{property:"=",size:"@",onClickBestFit:"&",onClickFavs:"&"},templateUrl:function(el,attrs){var template="";return template="sm"===attrs.size?"template/property-card/bt-property-card-sm.tpl.html":"template/property-card/bt-property-card.tpl.html"},link:function(scope){scope.onClickBestFit=scope.onClickBestFit||angular.noop,scope.onClickFavs=scope.onClickFavs||angular.noop,scope.isSmall="sm"===scope.size}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.directive("btScore",function(){return{restrict:"E",replace:!0,template:'<span class="score" ng-class="getScoreClasses()">{{ score }}</span>',scope:{score:"=",size:"@"},link:function(scope){var translateScore=function(score){var scoreType,scoreTranslation;scoreTranslation=parseInt(score,10),isNaN(scoreTranslation)||(scoreTranslation>=76?scoreType="score-excellent":scoreTranslation>=56?scoreType="score-good":scoreTranslation>=26&&(scoreType="score-average")),scope.scoreType=scoreType||""};scope.scoreSize=scope.size&&"score-"+scope.size||"",scope.scoreType=translateScore(scope.score),scope.getScoreClasses=function(){return[scope.scoreSize,scope.scoreType]},scope.$watch("score",function(newScore){translateScore(newScore)}),scope.$watch("size",function(newSize){scope.scoreSize=newSize&&"score-"+newSize||""})}}})}(angular.module("boomstrap")),function(Boomstrap,baron){"use strict";Boomstrap.directive("btScrollbar",function($window){return{restrict:"EA",transclude:!0,replace:!0,templateUrl:"template/scrollbar/bt-scrollbar.tpl.html",link:function(scope,element){function checkHeight(){$scroller.scrollHeight<=$scroller.clientHeight?$scrollbar.classList.add("hidden"):$scrollbar.classList.remove("hidden")}var $element=angular.element(element),$scroller=$element.find(".baron-scroller")[0],$scrollbar=$element.find(".baron-scroller-bar")[0],scroll=baron({root:element,scroller:".baron-scroller",track:".baron-scroller-track",bar:".baron-scroller-bar",$:angular.element});$element.on("click",function(){$window.setTimeout(function(){scroll.update(),checkHeight()},400)}),$element.on("mouseover",function(){scroll.update(),checkHeight()}),scope.$on("$destroy",function(){scroll.dispose()})}}})}(angular.module("boomstrap"),window.baron),function(Boomstrap){"use strict";Boomstrap.directive("btSelectRange",function($filter){return{restrict:"E",require:"ngModel",templateUrl:"template/select-range/range.tpl.html",replace:!0,scope:{values:"=",minPlaceholder:"@",maxPlaceholder:"@",btnClass:"@",translateMin:"=",translateMax:"=",onSelectBoundary:"&"},link:function(scope,iElement,iAttrs,ngModel){scope.minimum={value:ngModel.$modelValue.minimum},scope.maximum={value:ngModel.$modelValue.maximum},scope.minPlaceholder=scope.minPlaceholder||"Select a minimum value",scope.maxPlaceholder=scope.maxPlaceholder||"Select a maximum value",scope.btnClass=scope.btnClass||"",scope.boundaryEnum={MINIMUM:"minimum",MAXIMUM:"maximum"};var translateValidValue,validateMinMax=function(flippingFn){-1!==scope.maximum.value&&-1!==scope.minimum.value&&scope.maximum.value<scope.minimum.value&&flippingFn&&flippingFn()},addValueToValues=function(value,collection){if(value&&collection){var parsedValue=value.toString().replace(/[^0-9\.]+/,"");parsedValue&&(parsedValue=parseFloat(parseFloat(parsedValue).toFixed(2)),isNaN(parsedValue)||-1!==collection.indexOf(parsedValue)||collection.unshift(parsedValue))}};translateValidValue="money"===iAttrs.rangeType?function(value){return $filter("currency")(value).split(".")[0]}:angular.identity,scope.translateMinValue=scope.translateMin||function(value,defaultText){return angular.isNumber(value)?-1===value?defaultText:translateValidValue(value):defaultText},scope.translateMaxValue=scope.translateMax||function(value,defaultText){return angular.isNumber(value)?-1===value?defaultText:translateValidValue(value):defaultText},scope.selectRangeBoundary=function(minOrMax,value){"function"==typeof scope.onSelectBoundary&&scope.onSelectBoundary({minOrMax:minOrMax,value:value})},function(){var modifiedValues,previousValue;scope.getValues=function(value){return value!==previousValue&&(previousValue=value,modifiedValues=scope.values.slice(),addValueToValues(value,modifiedValues)),modifiedValues}}(),scope.$watch(function(){return ngModel.$modelValue.minimum},function(){scope.minimum.value!==ngModel.$modelValue.minimum&&(scope.minimum.value=ngModel.$modelValue.minimum)}),scope.$watch(function(){return ngModel.$modelValue.maximum},function(){scope.maximum.value!==ngModel.$modelValue.maximum&&(scope.maximum.value=ngModel.$modelValue.maximum)}),scope.$watch("minimum.value",function(newMin,oldMin){newMin!==oldMin&&(validateMinMax(function(){scope.maximum.value=scope.minimum.value}),addValueToValues(scope.minimum.value,scope.values),ngModel.$modelValue.minimum=scope.minimum.value,ngModel.$setViewValue(ngModel.$viewValue))}),scope.$watch("maximum.value",function(newMax,oldMax){newMax!==oldMax&&(validateMinMax(function(){scope.minimum.value=scope.maximum.value}),addValueToValues(scope.maximum.value,scope.values),ngModel.$modelValue.maximum=scope.maximum.value,ngModel.$setViewValue(ngModel.$viewValue))})}}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.controller("templatePopoverPopupCtrl",function($scope){this.close=function($event){$event&&$event.stopPropagation&&$event.stopPropagation(),$scope.$parent.close()}}).directive("templatePopoverPopup",function(){return{restrict:"EA",replace:!0,scope:{title:"@",content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/popover/template-popover.html",controller:"templatePopoverPopupCtrl",controllerAs:"$popover"}}).controller("templatePopoverCtrl",function($scope){$scope.close=function(){$scope.tt_isOpen=!1}}).directive("templatePopover",["$tooltip",function($tooltip){var toolTip=$tooltip("templatePopover","templatePopover","click");return toolTip.controller="templatePopoverCtrl",toolTip}])}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.filter("btCurrency",function($filter,$locale){var formats=$locale.NUMBER_FORMATS,currencyFilter=$filter("currency");return function(amount,currencySymbol){amount=amount?(1*amount).toFixed(2):0;var value=currencyFilter(amount,currencySymbol),parts=value.split(formats.DECIMAL_SEP),dollar=parts[0],cents=parts[1]||"00";return cents="00"===cents.substring(0,2)?cents.substring(2):"."+cents,dollar+cents}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.filter("btFormatDateToLocal",function($filter){return function(utcDate,params){var formattedDate,defaultFilter;return utcDate?(utcDate=utcDate.replace(/Z$/,"")+"Z",defaultFilter=params?params:"EEEE, MMMM d, y 'at' h:mma",formattedDate=$filter("date")(utcDate,defaultFilter)):formattedDate="",formattedDate}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.filter("btPhoneNumber",function(){return function(string,params){var formattedNumber,localPrefix,localMain,area,number=string||"";switch(params){case"remove":formattedNumber=number.replace(/\D/g,""),formattedNumber.length>10&&0===formattedNumber.indexOf("1")&&(formattedNumber=formattedNumber.substring(1));break;case"add":number=number.replace(/\D/g,""),area=number.substring(0,3),localPrefix=number.substring(3,6),localMain=number.substring(6),formattedNumber="("+area+") "+localPrefix+"-"+localMain;break;default:formattedNumber=string}return formattedNumber}})}(angular.module("boomstrap")),function(Boomstrap){"use strict";Boomstrap.filter("capitalize",function(){return function(str){return str.charAt(0).toUpperCase()+str.slice(1)}})}(angular.module("boomstrap")),function(Boomstrap,Tour){"use strict";Boomstrap.service("bootstrapTourService",function($templateCache,$rootScope,$http,AUTO_START_TOUR){var tourRef,tour={init:function(steps,onStart,onNextStep,onDismiss,onComplete){var tourSteps=[];angular.forEach(steps,function(step){step.template&&(step.template=$templateCache.get(step.template)),step.content||step.title||(step.content="."),tourSteps.push(step)}),tour.steps=tourSteps,tour.onStart=onStart,tour.onNextStep=onNextStep,tour.onDismiss=onDismiss,tour.onComplete=onComplete},steps:[],startTour:function(startingStep){startingStep=startingStep||0;var tourTemplate=$templateCache.get("template/popover/popover-bootstrap-tour.html"),wasHidden=tour.isHidden;tour.isHidden=!1,tourRef&&tourRef.ended&&!tourRef.ended()&&tourRef.end();var ngApply=function(fn){return function(){$rootScope.$$phase?fn():$rootScope.$apply(fn)}};tourRef=new Tour({steps:tour.steps.slice(startingStep),template:tourTemplate,container:"body",storage:!1,onNext:ngApply(function(){tour.currentStep+=1,tour.onNextStep&&tour.onNextStep()}),onPrev:ngApply(function(){tour.currentStep-=1}),onEnd:ngApply(function(){tour.isHidden||(tour.currentStep===tour.steps.length-1?tour.onComplete&&tour.onComplete():tour.onDismiss&&tour.onDismiss()),tour.currentStep=-1})}),tourRef.init(),tourRef.start(!0),tour.currentStep=startingStep,!wasHidden&&tour.onStart&&tour.onStart(),$rootScope.$on("$stateChangeStart",function(){tourRef&&tourRef.ended&&!tourRef.ended()&&(tour.endTour(!0),AUTO_START_TOUR.value=!1)})},currentStep:-1,isHidden:!1,shouldResume:function(val){return angular.isDefined(val)&&(tour.isHidden=val,tour.onNextStep&&tour.onNextStep()),tour.isHidden},goToNextStep:function(){tourRef.next()},endTour:function(){tourRef.end()}};return tour})}(angular.module("boomstrap"),window.Tour),angular.module("ui.bootstrap").run(["$templateCache",function($templateCache){$templateCache.put("template/pager/bt-pager.tpl.html",'<div class="btn-group minimal-pager">\n <button\n type="button"\n class="btn btn-default btn-icon"\n ng-class="{ \'disabled\': noPrevious() }"\n ng-click="selectPage(page - 1)"><svg class="icon"><use xlink:href="#icon-chevron-left"/></svg></button>\n <button\n type="button"\n class="btn btn-default btn-icon"\n ng-class="{ \'disabled\': noNext() }"\n ng-click="selectPage(page + 1)"><svg class="icon"><use xlink:href="#icon-chevron-right"/></svg></i></button>\n</div>')}]),angular.module("boomstrap").run(["$templateCache",function($templateCache){$templateCache.put("template/nav.html",'<nav class="navbar navbar-default navbar-fixed-top" role="navigation">\n <div class="container-fluid">\n <div class="navbar-header">\n <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#pl-nav">\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </button>\n <a class="navbar-brand" href="#">PL</a>\n </div>\n <div class="collapse navbar-collapse" id="pl-nav">\n <ul class="nav navbar-nav">\n <li class="active"><a href="#pl-colors">Colors</a></li>\n <li class="dropdown">\n <a href="#" class="dropdown-toggle" data-toggle="dropdown">Buttons <b class="caret"></b></a>\n <ul class="dropdown-menu">\n <li><a href="#pl-button-options">Options</a></li>\n <li><a href="#pl-button-sizes">Sizes</a></li>\n <li><a href="#pl-button-active">Active State</a></li>\n <li><a href="#pl-button-disabled">Disabled State</a></li>\n <li><a href="#pl-button-tags">Button Tags</a></li>\n </ul>\n </li>\n <li><a href="#pl-labels">Labels</a></li>\n <li><a href="#pl-typography">Typography</a></li>\n </ul>\n </div>\n </div>\n</nav>\n<div class="container">'),$templateCache.put("template/carousel/carousel.html",'<div ng-mouseenter="pause()" ng-mouseleave="play()" class="carousel">\n <ol class="carousel-indicators" ng-show="slides.length > 1">\n <li ng-repeat="slide in slides" ng-class="{active: isActive(slide)}" ng-click="select(slide)"></li>\n </ol>\n <div class="carousel-inner" ng-transclude></div>\n <a class="left carousel-control" ng-click="prev()" ng-show="slides.length > 1"><svg class="icon"><use xlink:href="#icon-chevron-left"/></svg></a>\n <a class="right carousel-control" ng-click="next()" ng-show="slides.length > 1"><svg class="icon"><use xlink:href="#icon-chevron-right"/></svg></a>\n</div>'),$templateCache.put("template/btPager/bt-pager.tpl.html",'<pager\n template-url="template/pager/bt-pager.tpl.html"\n total-items="totalItems"\n items-per-page="itemsPerPage"\n ng-model="currentPage">\n</pager>'),$templateCache.put("template/btLazyPen/btLazyPen.tpl.html",'<div class="bt-lazy-pen">\n <span class="btn btn-attention" ng-if="!showingPen.value" ng-click="showingPen.value = !showingPen.value">Load CodePen Example</span>\n <div ng-if="showingPen.value">\n <p data-height="{{ height }}" data-theme-id="{{ themeId }}" data-slug-hash="{{ slug }}" data-default-tab="result" class=\'codepen\'>See the Pen <a href=\'http://codepen.io/{{ user }}/pen/{{ slug }}/\'>{{ title }}</a> by {{ author }} (<a href=\'http://codepen.io/{{ user }}\'>@{{ userId }}</a>) on <a href=\'http://codepen.io\'>CodePen</a>.</p>\n <script async src="//codepen.io/assets/embed/ei.js"></script>\n </div>\n</div>'),$templateCache.put("template/loader/bt-loader.tpl.html",'<div class="loader">\n <span class="loader-pulse"></span>\n <span class="loader-pulse"></span>\n <span class="loader-pulse"></span>\n</div>'),$templateCache.put("template/dropdown/bt-dropdown.tpl.html",'<div class="dropdown">\n <button class="btn btn-default dropdown-toggle" type="button">\n <span class="pull-left" ng-bind="selectedValue"></span>\n <span class="caret"></span>\n </button>\n <ul class="dropdown-menu" role="menu" ng-style="{ \'min-width\': dropdownWidth + \'px\'}">\n <li ng-repeat="value in arrayValues" ng-if="keysAreNumbers">\n <a ng-click="assignValue(value.key)">{{ value.value }}</a>\n </li>\n <li ng-repeat="(choiceValue, choiceName) in values" ng-if="!keysAreNumbers">\n <a ng-click="assignValue(choiceValue)">{{choiceName}}</a>\n </li>\n </ul>\n</div>'),$templateCache.put("template/popover/popover-bootstrap-tour.html",'<div class="popover">\n <div class="arrow"></div>\n <div class="popover-close">\n <svg class="icon property-close" data-role="end"><use xlink:href="#icon-cross"/></svg>\n </div>\n <h3 class="popover-title">Tour</h3>\n <div class="tour-popover popover-content"></div>\n <div class="popover-navigation">\n <button class="btn btn-sm btn-default" data-role="prev">Prev</button>\n <button class="btn btn-sm btn-primary" data-role="next"><span>Next</span></button>\n </div>\n</div>'),$templateCache.put("template/popover/template-popover.html",'<div class="popover {{placement}}" ng-class="{ in: isOpen(), fade: animation() }">\n <div class="arrow"></div>\n\n <div class="popover-close" ng-click="$popover.close($event)" aria-hidden="true"><svg class="icon"><use xlink:href="#icon-cross"/></svg></div>\n\n <h3 class="popover-title" ng-bind="title" ng-show="title"></h3>\n\n <div class="popover-content" ng-include="content"></div>\n</div>'),$templateCache.put("template/property-card/bt-property-card-sm.tpl.html",'<div class="card card-sm">\n <!-- ///////////////////////////////////////////////// -->\n <!-- Optional: replace "card-photo" div with carousel -->\n <!-- ///////////////////////////////////////////////// -->\n <div class="card-photo">\n <div class="card-photo-inner">\n <div ng-if="property.newProperty" class="sash sash-new">New <span class="sash-time" am-time-ago="{{ property.newProperty }}"></span></div>\n <div ng-if="property.offMarket" class="sash sash-off">Off Market <span class="sash-time" am-time-ago="{{ property.offMarket }}"></span></div>\n <div ng-if="property.reduced" class="sash sash-reduced"><svg class="icon"><use xlink:href="#icon-arrow-down"/></svg> {{ property.reduced.change }} ({{ property.reduced.changePercent }}) <span class="sash-time" am-time-ago="{{ property.reduced.when }}"></span></div>\n <div ng-if="property.backOnMarket" class="sash sash-back">Back <span class="sash-time" am-time-ago="{{ property.backOnMarket }}"></span></div>\n <img ng-if="property.imageSrc.length <= 1" bt-error-img="http://boomstatic.com/images/comingsoon-lg.jpg" class="card-img" ng-src="{{ property.imageSrc[0] }}" alt="{{ property.fullAddress }}">\n <carousel ng-if="property.imageSrc.length > 1">\n <slide ng-repeat="slide in property.imageSrc">\n <img ng-src="{{ slide }}" style="margin: auto">\n </slide>\n </carousel>\n </div>\n </div>\n <!-- ///////////////////////////////////////////////// -->\n <div class="card-sm-container">\n <div class="row row-xcondensed">\n <div class="col-xs-8">\n <p class="card-sm-priority card-sm-street">\n <a target="_blank" href="{{ property.listingUrl }}">{{ property.address.street }}</a>\n </p>\n <p class="xsmall">{{ property.address.city }}, {{ property.address.state }}</p>\n <p class="xsmall">{{ property.address.neighborhood }}</p>\n </div>\n <div class="col-xs-4 text-right">\n <p class="card-sm-priority card-sm-price">{{ property.listPrice }}</p>\n <p class="xsmall">{{ property.pricePerSqft }}/SQFT</p>\n </div>\n </div>\n </div>\n <div class="card-sm-stats">\n <span class="card-sm-stat">{{ property.beds }} BEDS</span>\n <span class="card-sm-stat">{{ property.baths }} BATHS</span>\n <span class="card-sm-stat">{{ property.sqft }} SQFT</span>\n <span class="card-sm-stat">{{ property.acres }} ACRES</span>\n </div>\n <div class="card-sm-container">\n <div class="row row-xcondensed">\n <div class="col-sm-6">\n <button type="button" class="btn btn-default btn-block btn-sm" ng-click="onClickBestFit($event)"><svg class="icon icon-star"><use xlink:href="#icon-star"/></svg> {{ property.bestFits }} Best-Fit</button>\n </div>\n <div class="col-sm-6">\n <button type="button" class="btn btn-default btn-block btn-sm" ng-click="onClickFavs($event)"><svg class="icon icon-heart"><use xlink:href="#icon-heart"/></svg> {{ property.favs }} Favs</button>\n </div>\n </div>\n </div> <!-- /card-container -->\n</div>'),
$templateCache.put("template/property-card/bt-property-card.tpl.html",'<div class="card" ng-class="{ \'card-sm\': size === \'sm\' }">\n <div ng-if="property.newProperty" class="sash sash-new">New <span class="sash-time" am-time-ago="{{ property.newProperty }}"></span></div>\n <div ng-if="property.offMarket" class="sash sash-off">Off Market <span class="sash-time" am-time-ago="{{ property.offMarket }}"></span></div>\n <div ng-if="property.reduced" class="sash sash-reduced"><svg class="icon"><use xlink:href="#icon-arrow-down"/></svg> {{ property.reduced.change }} ({{ property.reduced.changePercent }}) <span class="sash-time" am-time-ago="{{ property.reduced.when }}">{{ property.reduced.when }}</span></div>\n <div ng-if="property.backOnMarket" class="sash sash-back">Back <span class="sash-time" am-time-ago="{{ property.backOnMarket }}">{{ property.backOnMarket }}</span></div>\n <div class="card-photo">\n <div class="card-photo-inner">\n <img ng-if="property.imageSrc.length <= 1" bt-error-img="http://boomstatic.com/images/comingsoon-lg.jpg" class="card-img" ng-src="{{ property.imageSrc[0] }}" alt="{{ property.fullAddress }}">\n <carousel ng-if="property.imageSrc.length > 1">\n <slide ng-repeat="slide in property.imageSrc">\n <img ng-src="{{ slide }}" style="margin: auto">\n </slide>\n </carousel>\n </div>\n </div>\n <div class="card-container">\n <div class="row row-xcondensed">\n <p class="card-priority card-price">{{ property.listPrice }}</p>\n <p class="card-priority card-street">\n <a target="_blank" href="{{ property.listingUrl }}">{{ property.address.street }}</a>\n </p>\n <div class="col-xs-7">\n <p class="small">{{ property.address.city }}, {{ property.address.state }}</p>\n <p class="small">{{ property.address.neighborhood }}</p>\n </div>\n <div class="col-xs-5 text-right">\n <p class="small">{{ property.pricePerSqft }}/SQFT</p>\n </div>\n </div>\n </div>\n <div class="card-stats">\n <span class="card-stat">{{ property.beds }} BEDS</span>\n <span class="card-stat">{{ property.baths }} BATHS</span>\n <span class="card-stat">{{ property.sqft }} SQFT</span>\n <span class="card-stat">{{ property.acres }} ACRES</span>\n </div>\n <div class="card-container">\n <div class="row row-xcondensed">\n <div class="col-sm-6">\n <button type="button" class="btn btn-default btn-block btn-sm" ng-click="onClickBestFit($event)"><svg class="icon icon-star"><use xlink:href="#icon-star"/></svg> {{ property.bestFits }} Best-Fit</button>\n </div>\n <div class="col-sm-6">\n <button type="button" class="btn btn-default btn-block btn-sm" ng-click="onClickFavs($event)"><svg class="icon icon-heart"><use xlink:href="#icon-heart"/></svg> {{ property.favs }} Favs</button>\n </div>\n </div>\n </div> <!-- /card-container -->\n <div ng-if="!isSmall">\n <div class="card-toggle">\n <span ng-click="isExpanded = !isExpanded" ng-show="!isExpanded"><svg class="icon"><use xlink:href="#icon-chevron-down"/></svg> More Detail</span>\n <span ng-click="isExpanded = !isExpanded" ng-show="isExpanded"><svg class="icon"><use xlink:href="#icon-chevron-up"/></svg> Less Detail</span>\n </div>\n <div collapse="!isExpanded" class="card-detail">\n <div class="card-container">\n <div class="row row-xcondensed">\n <div class="col-xs-6">\n <p class="small"><strong>MLS#:</strong> <a target="_blank" href="">{{ property.mls }}</a></p>\n </div>\n <div class="col-xs-6 text-right">\n <p class="small"><strong>LISTED:</strong> {{ property.listed }}</p>\n </div>\n </div>\n <p class="small"><strong>TYPE:</strong> {{ property.type }}</p>\n </div> <!-- /card-container -->\n <p class="card-title">Price History</p>\n <div class="card-container card-price-history">\n <div ng-repeat="history in property.history" class="row row-xcondensed">\n <div class="col-xs-3">\n <p class="small">{{ history.when }}</p>\n </div>\n <div class="col-xs-5 col-xs-offset-1">\n <p class="small card-price-history-change"><svg class="icon"><use xlink:href="#icon-arrow-down"/></svg> {{ history.change }} ({{ history.changePercent }})</p>\n </div>\n <div class="col-xs-3 text-right">\n <p class="small">{{ history.price }}</p>\n </div>\n </div>\n </div> <!-- /card-price-history -->\n <div class="card-container">\n <div class="row row-xcondensed">\n <div class="col-sm-6">\n <button class="btn btn-default btn-sm btn-block"><svg class="icon"><use xlink:href="#icon-location"/></svg> Map View</button>\n </div>\n <div class="col-sm-6">\n <button class="btn btn-default btn-sm btn-block">Full Details <svg class="icon"><use xlink:href="#icon-arrow-bend-right"/></svg> </button>\n </div>\n </div>\n </div> <!-- /card-container -->\n </div> <!-- /card-detail -->\n </div>\n</div>'),$templateCache.put("template/scrollbar/bt-scrollbar.tpl.html",'<div class="baron">\n <div class="baron-scroller" ng-transclude></div>\n <div class="baron-scroller-track">\n <div class="baron-scroller-bar"></div>\n </div>\n</div>\n'),$templateCache.put("template/select-range/range.tpl.html",'<div class="ui-select-range clearfix">\n <ui-select ng-model="minimum.value" on-select="selectRangeBoundary(boundaryEnum.MINIMUM, $item)">\n <ui-select-match class="{{ btnClass }}" placeholder="{{ minPlaceholder }}">{{ translateMinValue($select.selected, \'No min\') }}</ui-select-match>\n <ui-select-choices repeat="value in getValues($select.search) | filter: $select.search">\n <div>{{ translateMinValue(value, \'No min\') }}</div>\n </ui-select-choices>\n </ui-select>\n <ui-select ng-model="maximum.value" on-select="selectRangeBoundary(boundaryEnum.MAXIMUM, $item)">\n <ui-select-match class="{{ btnClass }}" placeholder="{{ maxPlaceholder }}">{{ translateMaxValue($select.selected, \'No max\') }}</ui-select-match>\n <ui-select-choices repeat="value in getValues($select.search) | filter: $select.search">\n <div>{{ translateMaxValue(value, \'No max\') }}</div>\n </ui-select-choices>\n </ui-select>\n</div>'),$templateCache.put("template/bootstrap/pager/bt-pager.tpl.html",'<div class="btn-group minimal-pager">\n <button\n type="button"\n class="btn btn-default btn-icon"\n ng-class="{ \'disabled\': noPrevious() }"\n ng-click="selectPage(page - 1)"><svg class="icon"><use xlink:href="#icon-chevron-left"/></svg></button>\n <button\n type="button"\n class="btn btn-default btn-icon"\n ng-class="{ \'disabled\': noNext() }"\n ng-click="selectPage(page + 1)"><svg class="icon"><use xlink:href="#icon-chevron-right"/></svg></i></button>\n</div>')}]);
{
"name": "boomstrap",
"version": "1.19.2",
"version": "1.19.3",
"devDependencies": {

@@ -5,0 +5,0 @@ "boomsvgloader": "0.0.2",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc