rolodex 2.0.6 → 2.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a4cb1151e7c88311e6590f15ed5fe15bd64eef62
4
- data.tar.gz: bd39d49879b88eb4dc32ec00e9c992c08c1c0d2b
3
+ metadata.gz: 502bcb557f181786c3327fdd5c03249a0d087d9f
4
+ data.tar.gz: 8ee48785bad2a36565570c7addb55be797d962dc
5
5
  SHA512:
6
- metadata.gz: dded0bd93ad181a65af90d56af7d63096ff7aac727b944823ae17dbd58508342c964f066535de22d0fd868d854cec0ebbb0fdbe291f771777bba0ecd19df751a
7
- data.tar.gz: 6976d7cdc616c7d6681c447d09b460e3e897ab141f9cad04b03f3a4542d8388fc726fba38725f7747320ed2ce10fa6864e0d0c1c88d204a870cb6ffd22aceddd
6
+ metadata.gz: 2bf7feb161d15cb08fae99fd3ea5791176f314c73325278cc4abefdfd834f8acf9be91630006113055720a101731f4f6f234570f2cf4abc56f0d15dd6ed0a35d
7
+ data.tar.gz: 29cca8fc9063e268aec84c440b9dcc32c64ad74e77c18bc6093f99648080adbac311c37a28c959ab79dc9ee3ef057e6461f6aacb2bd326d9b4bc0cf080146c2f
data/README.md CHANGED
@@ -32,3 +32,8 @@ Import modules with this path in your Sass files:
32
32
  4. Push to the branch (`git push origin my-new-feature`)
33
33
  5. Create new Pull Request
34
34
 
35
+ ## Publishing/Deploying
36
+
37
+ 1. Bump the [version number](http://semver.org/) `rolodex/lib/rolodex/version.rb`
38
+ 2. Build the new gemspec `$ gem build rolodex.gemspec`
39
+ 3. Push to rubygems.org `$ gem push rolodex-[new-version-number].gem`
data/bower.json CHANGED
@@ -20,5 +20,5 @@
20
20
  "framework"
21
21
  ],
22
22
  "license": "MIT",
23
- "version": "2.0.3"
23
+ "version": "2.0.7"
24
24
  }
@@ -12,7 +12,6 @@ $templateCache.put("rolodex_angular/template/datepicker/month","<table aria-acti
12
12
  $templateCache.put("rolodex_angular/template/datepicker/popup","<div class=\"date-picker-solo daterangepicker dropdown-menu group\" data-dropdown-content=\"\" ng-keydown=\"keydown($event)\"><div ng-transclude=\"\"></div></div>");
13
13
  $templateCache.put("rolodex_angular/template/datepicker/year","<table aria-activedescendant=\"{{ activeDateId }}\" aria-labelledby=\"{{ uniqueId }}-title\" role=\"grid\"><thead><tr><th><button class=\"btn btn-boring pull-left\" ng-click=\"move(-1)\" tabindex=\"-1\" type=\"button\"><i class=\"i-caret\"></i></button></th><th colspan=\"3\"><button aria-atomic=\"true\" aria-live=\"assertive\" class=\"btn btn-boring\" id=\"{{ uniqueId }}-title\" ng-click=\"toggleMode()\" role=\"heading\" style=\"width:100%;\" tabindex=\"-1\" type=\"button\"><strong>{{ title }}</strong></button></th><th><button class=\"btn btn-boring pull-right\" ng-click=\"move(1)\" tabindex=\"-1\" type=\"button\"><i class=\"i-caret\"></i></button></th></tr></thead><tbody><tr ng-repeat=\"row in rows track by $index\"><td aria-disabled=\"{{ !!dt.disabled }}\" class=\"text-center\" id=\"{{ dt.uid }}\" ng-repeat=\"dt in row track by dt.date\" role=\"gridcell\"><button class=\"btn btn-boring\" ng-class=\"{\'btn-info\': dt.selected, active: isActive(dt)}\" ng-click=\"select(dt.date)\" ng-disabled=\"dt.disabled\" style=\"width:100%;\" tabindex=\"-1\" type=\"button\"><span ng-class=\"{\'text-info\': dt.current}\">{{ dt.label }}</span></button></td></tr></tbody></table>");
14
14
  $templateCache.put("rolodex_angular/template/modal/window","<div class=\"modal\" ng-class=\"{\'modal-fade\': animate}\" ng-click=\"close($event)\" role=\"dialog\" tabindex=\"-1\"><div class=\"modal-content\" modal-transclude=\"\"></div></div>");}]);
15
- (function() { angular.module('templates', []); }).call(this);
16
15
  (function() {
17
16
  angular.module("rolodex.accordion", ["rolodex.collapse"]).constant("accordionConfig", {
18
17
  closeOthers: true
@@ -1 +1 @@
1
- (function(){angular.module("rolodex",["templates","rolodex.accordion","rolodex.alert","rolodex.buttons","rolodex.datepicker","rolodex.dropdown","rolodex.modal","rolodex.transition"])}).call(this),angular.module("rolodex").run(["$templateCache",function(e){e.put("rolodex_angular/template/accordion/accordion-group",'<div class="panel panel-default"><div class="panel-heading"><h4 class="panel-title"><a accordion-transclude="heading" class="accordion-toggle" ng-click="toggleOpen()"><span ng-class="{\'text-muted\': isDisabled}">{{heading}}</span></a></h4></div><div class="panel-collapse" collapse="!isOpen"><div class="panel-body" ng-transclude=""></div></div></div>'),e.put("rolodex_angular/template/accordion/accordion",'<div class="panel-group" ng-transclude=""></div>'),e.put("rolodex_angular/template/alert/alert",'<div ng-class="[\'alert-banner-\' + (type || \'warning\'), closeable ? \'alert-dismissable\' : null]" role="alert"><button aria-hidden="true" class="i-close" ng-click="close()" ng-show="closeable" type="button">&times;</button><div ng-transclude=""></div></div>'),e.put("rolodex_angular/template/datepicker/datepicker",'<div ng-keydown="keydown($event)" ng-switch="datepickerMode" role="application"><daypicker ng-switch-when="day" tabindex="0"></daypicker><monthpicker ng-switch-when="month" tabindex="0"></monthpicker><yearpicker ng-switch-when="year" tabindex="0"></yearpicker></div>'),e.put("rolodex_angular/template/datepicker/day",'<table aria-activedescendant="{{ activeDateId }}" aria-labelledby="{{uniqueId }}-title" role="grid"><thead><tr><th class="prev available" ng-click="move(-1)" tabindex="-1"><div class="i-caret"></div></th><th class="month" colspan="{{ 5 + showWeeks }}">{{ title }}</th><th class="next available" ng-click="move(1)" tabindex="-1"><div class="i-caret"></div></th></tr><tr><th class="text-center" ng-repeat="label in labels track by $index"><small aria-label="{{ label.full}}">{{ label.abbr }}</small></th></tr></thead><tbody><tr ng-repeat="row in rows track by $index"><td aria-disabled="{{ !!dt.disabled }}" id="{{ dt.uid }}" ng-class="{active: dt.selected, available: !dt.disabled, off: dt.disabled}" ng-click="select(dt.date, dt.disabled)" ng-disabled="dt.disabled" ng-repeat="dt in row track by dt.date" role="gridcell" tabindex="-1"><span ng-class="{\'text-muted\': dt.secondary}">{{ dt.label }}</span></td></tr></tbody></table>'),e.put("rolodex_angular/template/datepicker/month",'<table aria-activedescendant="{{ activeDateId }}" aria-labelledby="{{ uniqueId }}-title" role="grid"><thead><tr><th><button class="btn btn-boring pull-left" ng-click="move(-1)" tabindex="-1" type="button"><i class="i-caret"></i></button></th><th><button aria-atomic="true" aria-live="assertive" class="btn btn-boring" id="{{ uniqueId }}-title" ng-click="toggleMode()" role="heading" style="width:100%;" tabindex="-1" type="button"><strong>{{ title }}</strong></button></th><th><button class="btn btn-boring pull-right" ng-click="move(1)" tabindex="-1" type="button"><i class="i-caret"></i></button></th></tr></thead><tbody><tr ng-repeat="row in rows track by $index"><td aria-disabled="{{ !!dt.disabled }}" class="text-center" id="{{ dt.uid }}" ng-repeat="dt in row track by dt.date" role="gridcell"><button class="btn btn-boring" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" style="width:100%;" tabindex="-1" type="button"><span ng-class="{\'text-info\': dt.current}">{{ dt.label }}</span></button></td></tr></tbody></table>'),e.put("rolodex_angular/template/datepicker/popup",'<div class="date-picker-solo daterangepicker dropdown-menu group" data-dropdown-content="" ng-keydown="keydown($event)"><div ng-transclude=""></div></div>'),e.put("rolodex_angular/template/datepicker/year",'<table aria-activedescendant="{{ activeDateId }}" aria-labelledby="{{ uniqueId }}-title" role="grid"><thead><tr><th><button class="btn btn-boring pull-left" ng-click="move(-1)" tabindex="-1" type="button"><i class="i-caret"></i></button></th><th colspan="3"><button aria-atomic="true" aria-live="assertive" class="btn btn-boring" id="{{ uniqueId }}-title" ng-click="toggleMode()" role="heading" style="width:100%;" tabindex="-1" type="button"><strong>{{ title }}</strong></button></th><th><button class="btn btn-boring pull-right" ng-click="move(1)" tabindex="-1" type="button"><i class="i-caret"></i></button></th></tr></thead><tbody><tr ng-repeat="row in rows track by $index"><td aria-disabled="{{ !!dt.disabled }}" class="text-center" id="{{ dt.uid }}" ng-repeat="dt in row track by dt.date" role="gridcell"><button class="btn btn-boring" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" style="width:100%;" tabindex="-1" type="button"><span ng-class="{\'text-info\': dt.current}">{{ dt.label }}</span></button></td></tr></tbody></table>'),e.put("rolodex_angular/template/modal/window",'<div class="modal" ng-class="{\'modal-fade\': animate}" ng-click="close($event)" role="dialog" tabindex="-1"><div class="modal-content" modal-transclude=""></div></div>')}]),function(){angular.module("templates",[])}.call(this),function(){angular.module("rolodex.accordion",["rolodex.collapse"]).constant("accordionConfig",{closeOthers:!0}).controller("AccordionController",["$scope","$attrs","accordionConfig",function(e,t,n){return this.groups=[],this.closeOthers=function(r){var a;return a=angular.isDefined(t.closeOthers)?e.$eval(t.closeOthers):n.closeOthers,a?angular.forEach(this.groups,function(e){return e!==r?e.isOpen=!1:void 0}):void 0},this.addGroup=function(e){var t;return t=this,this.groups.push(e),e.$on("$destroy",function(n){return t.removeGroup(e)})},this.removeGroup=function(e){var t;return t=this.groups.indexOf(e),-1!==t?this.groups.splice(t,1):void 0},this}]).directive("accordion",function(){return{restrict:"EA",controller:"AccordionController",transclude:!0,replace:!1,templateUrl:"rolodex_angular/template/accordion/accordion"}}).directive("accordionGroup",function(){return{require:"^accordion",restrict:"EA",transclude:!0,replace:!0,templateUrl:"rolodex_angular/template/accordion/accordion-group",scope:{heading:"@",isOpen:"=?",isDisabled:"=?"},controller:function(){return this.setHeading=function(e){return this.heading=e}},link:function(e,t,n,r){return r.addGroup(e),e.$watch("isOpen",function(t){t&&r.closeOthers(e)}),e.toggleOpen=function(){return e.isDisabled?void 0:e.isOpen=!e.isOpen}}}}).directive("accordionHeading",function(){return{restrict:"EA",transclude:!0,template:"",replace:!0,require:"^accordionGroup",link:function(e,t,n,r,a){return r.setHeading(a(e,function(){}))}}}).directive("accordionTransclude",function(){return{require:"^accordionGroup",link:function(e,t,n,r){return e.$watch(function(){return r[n.accordionTransclude]},function(e){return e?(t.html(""),t.append(e)):void 0})}}})}.call(this),function(){angular.module("rolodex.alert",[]).controller("AlertController",["$scope","$attrs",function(e,t){return e.closeable="close"in t}]).directive("alert",function(){return{restrict:"EA",controller:"AlertController",templateUrl:"rolodex_angular/template/alert/alert",transclude:!0,replace:!0,scope:{type:"@",close:"&"}}})}.call(this),function(){angular.module("rolodex.buttons",[]).constant("buttonConfig",{activeClass:"active",toggleEvent:"click"}).controller("ButtonsController",["buttonConfig",function(e){return this.activeClass=e.activeClass||"active",this.toggleEvent=e.toggleEvent||"click",this}]).directive("btnRadio",function(){return{require:["btnRadio","ngModel"],controller:"ButtonsController",link:function(e,t,n,r){var a,o;return a=r[0],o=r[1],o.$render=function(){return t.toggleClass(a.activeClass,angular.equals(o.$modelValue,e.$eval(n.btnRadio)))},t.bind(a.toggleEvent,function(){var r;return r=t.hasClass(a.activeClass),!r||angular.isDefined(n.uncheckable)?e.$apply(function(){return o.$setViewValue(r?null:e.$eval(n.btnRadio)),o.$render()}):void 0})}}}).directive("btnCheckbox",function(){return{require:["btnCheckbox","ngModel"],controller:"ButtonsController",link:function(e,t,n,r){var a,o,i,l,d;return l=function(){return o(n.btnCheckboxTrue,!0)},i=function(){return o(n.btnCheckboxFalse,!1)},o=function(t,n){var r;return r=e.$eval(t),angular.isDefined(r)?r:n},a=r[0],d=r[1],d.$render=function(){return t.toggleClass(a.activeClass,angular.equals(d.$modelValue,l()))},t.bind(a.toggleEvent,function(){return e.$apply(function(){return d.$setViewValue(t.hasClass(a.activeClass)?i():l()),d.$render()})})}}})}.call(this),function(){angular.module("rolodex.collapse",["rolodex.transition"]).directive("collapse",["$transition",function(e){return{link:function(t,n,r){var a,o,i,l,d,c,s;l=function(t){var r,a,o;return o=function(){var e;return e===a?e=void 0:void 0},a=e(n,t),r&&r.cancel(),r=a,a.then(o,o),a},d=function(){var e;e?(e=!1,c()):(n.removeClass("collapse").addClass("collapsing"),l({height:n[0].scrollHeight+"px"}).then(c))},c=function(){n.removeClass("collapsing"),n.addClass("collapse in"),n.css({height:"auto"})},a=function(){var e,t;e?(e=!1,o(),n.css({height:0})):(n.css({height:n[0].scrollHeight+"px"}),t=n[0].offsetWidth,n.removeClass("collapse in").addClass("collapsing"),l({height:0}).then(o))},o=function(){n.removeClass("collapsing"),n.addClass("collapse")},s=!0,i=void 0,t.$watch(r.collapse,function(e){e?a():d()})}}}])}.call(this),function(){angular.module("rolodex.dateparser",[]).service("dateParser",["$locale","orderByFilter",function(e,t){var n,r,a;return n=function(e){var n,a;return n=[],a=e.split(""),angular.forEach(r,function(t,r){var o,i,l;if(i=e.indexOf(r),i>-1){for(e=e.split(""),a[i]="("+t.regex+")",e[i]="$",o=i+1,l=i+r.length;l>o;)a[o]="",e[o]="$",o++;e=e.join(""),n.push({index:i,apply:t.apply})}}),{regex:new RegExp("^"+a.join("")+"$"),map:t(n,"index")}},a=function(e,t,n){return 1===t&&n>28?29===n&&(e%4===0&&e%100!==0||e%400===0):3===t||5===t||8===t||10===t?31>n:!0},this.parsers={},r={yyyy:{regex:"\\d{4}",apply:function(e){this.year=+e}},yy:{regex:"\\d{2}",apply:function(e){this.year=+e+2e3}},y:{regex:"\\d{1,4}",apply:function(e){this.year=+e}},MMMM:{regex:e.DATETIME_FORMATS.MONTH.join("|"),apply:function(t){this.month=e.DATETIME_FORMATS.MONTH.indexOf(t)}},MMM:{regex:e.DATETIME_FORMATS.SHORTMONTH.join("|"),apply:function(t){this.month=e.DATETIME_FORMATS.SHORTMONTH.indexOf(t)}},MM:{regex:"0[1-9]|1[0-2]",apply:function(e){this.month=e-1}},M:{regex:"[1-9]|1[0-2]",apply:function(e){this.month=e-1}},dd:{regex:"[0-2][0-9]{1}|3[0-1]{1}",apply:function(e){this.date=+e}},d:{regex:"[1-2]?[0-9]{1}|3[0-1]{1}",apply:function(e){return this.date=+e}},EEEE:{regex:e.DATETIME_FORMATS.DAY.join("|")},EEE:{regex:e.DATETIME_FORMATS.SHORTDAY.join("|")}},this.parse=function(t,r){var o,i,l,d,c,s,u,p,f;if(!angular.isString(t)||!r)return t;if(r=e.DATETIME_FORMATS[r]||r,this.parsers[r]||(this.parsers[r]=n(r)),u=this.parsers[r],p=u.regex,d=u.map,f=t.match(p),f&&f.length){for(i={year:1900,month:0,date:1,hours:0},o=void 0,l=1,s=f.length;s>l;)c=d[l-1],c.apply&&c.apply.call(i,f[l]),l++;return a(i.year,i.month,i.date)&&(o=new Date(i.year,i.month,i.date,i.hours)),o}}}])}.call(this),function(){angular.module("rolodex.datepicker",["rolodex.dateparser","rolodex.dropdown","rolodex.position"]).constant("datepickerConfig",{formatDay:"d",formatMonth:"MMMM",formatYear:"yyyy",formatDayHeader:"EEE",formatDayTitle:"MMMM yyyy",formatMonthTitle:"yyyy",datepickerMode:"day",minMode:"day",maxMode:"year",showWeeks:!0,startingDay:0,yearRange:20,minDate:null,maxDate:null}).controller("DatepickerController",["$scope","$attrs","$parse","$interpolate","$timeout","$log","dateFilter","datepickerConfig",function(e,t,n,r,a,o,i,l){var d,c,s;return s=this,c={$setViewValue:angular.noop},this.modes=["day","month","year"],angular.forEach(["formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","minMode","maxMode","showWeeks","startingDay","yearRange"],function(n,a){s[n]=angular.isDefined(t[n])?8>a?r(t[n])(e.$parent):e.$parent.$eval(t[n]):l[n]}),angular.forEach(["minDate","maxDate"],function(r){return t[r]?e.$parent.$watch(n(t[r]),function(e){return s[r]=e?new Date(e):null,s.refreshView()}):s[r]=l[r]?new Date(l[r]):null}),e.datepickerMode=e.datepickerMode||l.datepickerMode,e.uniqueId="datepicker-"+e.$id+"-"+Math.floor(1e4*Math.random()),this.activeDate=angular.isDefined(t.initDate)?e.$parent.$eval(t.initDate):new Date,this.init=function(e){return c=e,c.$render=function(){return s.render()}},this.render=function(){var e,t;return c.$modelValue&&(e=new Date(c.$modelValue),t=!isNaN(e),t?this.activeDate=e:o.error("Datepicker directive: 'ng-model' value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date."),c.$setValidity("date",t)),this.refreshView()},this.refreshView=function(){var e;return this.element?(this._refreshView(),e=c.$modelValue?new Date(c.$modelValue):null,c.$setValidity("date-disabled",!e||this.element&&!this.isDisabled(e))):void 0},this.createDateObject=function(e,t){var n;return n=c.$modelValue?new Date(c.$modelValue):null,{date:e,label:i(e,t),selected:n&&0===this.compare(e,n),disabled:this.isDisabled(e),current:0===this.compare(e,new Date)}},this.isDisabled=function(n){return this.minDate&&this.compare(n,this.minDate)<0||this.maxDate&&this.compare(n,this.maxDate)>0||t.dateDisabled&&e.dateDisabled({date:n,mode:e.datepickerMode})},this.split=function(e,t){var n;for(n=[];e.length>0;)n.push(e.splice(0,t));return n},e.select=function(t){return function(n){var r;if(!t.isDisabled(n))return e.datepickerMode===s.minMode?(r=c.$modelValue?new Date(c.$modelValue):new Date(0,0,0,0,0,0,0),r.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),c.$setViewValue(r),c.$render()):(s.activeDate=n,e.datepickerMode=s.modes[s.modes.indexOf(e.datepickerMode)-1])}}(this),e.move=function(e){var t,n;return n=s.activeDate.getFullYear()+e*(s.step.years||0),t=s.activeDate.getMonth()+e*(s.step.months||0),s.activeDate.setFullYear(n,t,1),s.refreshView()},e.toggleMode=function(t){return t=t||1,e.datepickerMode===s.maxMode&&1===t||e.datepickerMode===s.minMode&&-1===t?void 0:e.datepickerMode=s.modes[s.modes.indexOf(e.datepickerMode)+t]},e.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"},d=function(){return a(function(){return s.element[0].focus()},0,!1)},e.$on("datepicker.focus",d),e.keydown=function(t){var n;if(n=e.keys[t.which],n&&!t.shiftKey&&!t.altKey){if(t.preventDefault(),t.stopPropagation(),"enter"===n||"space"===n){if(s.isDisabled(s.activeDate))return;return e.select(s.activeDate),d()}return!t.ctrlKey||"up"!==n&&"down"!==n?(s.handleKeyDown(n,t),s.refreshView()):(e.toggleMode("up"===n?1:-1),d())}},this}]).directive("datepicker",function(){return{restrict:"EA",replace:!0,templateUrl:"rolodex_angular/template/datepicker/datepicker",scope:{datepickerMode:"=?",dateDisabled:"&"},require:["datepicker","?^ngModel"],controller:"DatepickerController",link:function(e,t,n,r){var a,o;return a=r[0],o=r[1],o?a.init(o):void 0}}}).directive("daypicker",["dateFilter",function(e){return{restrict:"EA",replace:!0,templateUrl:"rolodex_angular/template/datepicker/day",require:"^datepicker",link:function(t,n,r,a){var o,i,l,d;return l=function(e,t){return 1!==t||e%4!==0||e%100===0&&e%400!==0?o[t]:29},i=function(e,t){var n,r,a;for(r=new Array(t),n=new Date(e),a=0,n.setHours(12);t>a;)r[a++]=new Date(n),n.setDate(n.getDate()+1);return r},d=function(e){var t,n;return t=new Date(e),t.setDate(t.getDate()+4-(t.getDay()||7)),n=t.getTime(),t.setMonth(0),t.setDate(1),Math.floor(Math.round((n-t)/864e5)/7)+1},t.showWeeks=a.showWeeks,a.step={months:1},a.element=n,o=[31,28,31,30,31,30,31,31,30,31,30,31],a._refreshView=function(){var n,r,o,l,c,s,u,p,f,g,h,v;for(v=a.activeDate.getFullYear(),u=a.activeDate.getMonth(),l=new Date(v,u,1),r=a.startingDay-l.getDay(),p=r>0?7-r:-r,o=new Date(l),p>0&&o.setDate(-p+1),n=i(o,42),c=0;42>c;)n[c]=angular.extend(a.createDateObject(n[c],a.formatDay),{secondary:n[c].getMonth()!==u,uid:t.uniqueId+"-"+c}),c++;for(t.labels=new Array(7),s=0;7>s;)t.labels[s]={abbr:e(n[s].date,a.formatDayHeader).substr(0,2),full:e(n[s].date,"EEEE")},s++;if(t.title=e(a.activeDate,a.formatDayTitle),t.rows=a.split(n,7),t.showWeeks){for(t.weekNumbers=[],h=d(t.rows[0][0].date),f=t.rows.length,g=[];t.weekNumbers.push(h++)<f;);return g}},a.compare=function(e,t){return new Date(e.getFullYear(),e.getMonth(),e.getDate())-new Date(t.getFullYear(),t.getMonth(),t.getDate())},a.handleKeyDown=function(e,t){var n,r;return n=a.activeDate.getDate(),"left"===e?n-=1:"up"===e?n-=7:"right"===e?n+=1:"down"===e?n+=7:"pageup"===e||"pagedown"===e?(r=a.activeDate.getMonth()+("pageup"===e?-1:1),a.activeDate.setMonth(r,1),n=Math.min(l(a.activeDate.getFullYear(),a.activeDate.getMonth()),n)):"home"===e?n=1:"end"===e&&(n=l(a.activeDate.getFullYear(),a.activeDate.getMonth())),a.activeDate.setDate(n)},a.refreshView()}}}]).directive("monthpicker",["dateFilter",function(e){return{restrict:"EA",replace:!0,templateUrl:"rolodex_angular/template/datepicker/month",require:"^datepicker",link:function(t,n,r,a){return a.step={years:1},a.element=n,a._refreshView=function(){var n,r,o;for(r=new Array(12),o=a.activeDate.getFullYear(),n=0;12>n;)r[n]=angular.extend(a.createDateObject(new Date(o,n,1),a.formatMonth),{uid:t.uniqueId+"-"+n}),n++;return t.title=e(a.activeDate,a.formatMonthTitle),t.rows=a.split(r,3)},a.compare=function(e,t){return new Date(e.getFullYear(),e.getMonth())-new Date(t.getFullYear(),t.getMonth())},a.handleKeyDown=function(e,t){var n,r;return n=a.activeDate.getMonth(),"left"===e?n-=1:"up"===e?n-=3:"right"===e?n+=1:"down"===e?n+=3:"pageup"===e||"pagedown"===e?(r=a.activeDate.getFullYear()+("pageup"===e?-1:1),a.activeDate.setFullYear(r)):"home"===e?n=0:"end"===e&&(n=11),a.activeDate.setMonth(n)},a.refreshView()}}}]).directive("yearpicker",["dateFilter",function(e){return{restrict:"EA",replace:!0,templateUrl:"rolodex_angular/template/datepicker/year",require:"^datepicker",link:function(e,t,n,r){var a,o;return a=function(e){return parseInt((e-1)/o,10)*o+1},o=r.yearRange,r.step={years:o},r.element=t,r._refreshView=function(){var t,n,i;for(i=new Array(o),t=0,n=a(r.activeDate.getFullYear());o>t;)i[t]=angular.extend(r.createDateObject(new Date(n+t,0,1),r.formatYear),{uid:e.uniqueId+"-"+t}),t++;return e.title=[i[0].label,i[o-1].label].join(" - "),e.rows=r.split(i,5)},r.compare=function(e,t){return e.getFullYear()-t.getFullYear()},r.handleKeyDown=function(e,t){var n;return n=r.activeDate.getFullYear(),"left"===e?n-=1:"up"===e?n-=5:"right"===e?n+=1:"down"===e?n+=5:"pageup"===e||"pagedown"===e?n+=("pageup"===e?-1:1)*r.step.years:"home"===e?n=a(r.activeDate.getFullYear()):"end"===e&&(n=a(r.activeDate.getFullYear())+o-1),r.activeDate.setFullYear(n)},r.refreshView()}}}]).constant("datepickerPopupConfig",{datepickerPopup:"yyyy-MM-dd",currentText:"Today",clearText:"Clear",closeText:"Done",closeOnDateSelection:!0,appendToBody:!1,showButtonBar:!0}).directive("datepickerPopup",["$compile","$parse","$document","dateFilter","dateParser","datepickerPopupConfig","dropdownService",function(e,t,n,r,a,o,i){return{restrict:"EA",require:"ngModel",scope:{isOpen:"=?",currentText:"@",clearText:"@",closeText:"@",dateDisabled:"&"},link:function(l,d,c,s){var u,p,f,g,h,v,m,b;return f=function(e){return e.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()})},m=function(e){var t;return e?angular.isDate(e)&&!isNaN(e)?(s.$setValidity("date",!0),e):angular.isString(e)?(t=a.parse(e,h)||new Date(e),isNaN(t)?void s.$setValidity("date",!1):(s.$setValidity("date",!0),t)):void s.$setValidity("date",!1):(s.$setValidity("date",!0),null)},h=void 0,g=angular.isDefined(c.closeOnDateSelection)?l.$parent.$eval(c.closeOnDateSelection):o.closeOnDateSelection,p=angular.isDefined(c.datepickerAppendToBody)?l.$parent.$eval(c.datepickerAppendToBody):o.appendToBody,l.showButtonBar=angular.isDefined(c.showButtonBar)?l.$parent.$eval(c.showButtonBar):o.showButtonBar,l.getText=function(e){return l[e+"Text"]||o[e+"Text"]},c.$observe("datepickerPopup",function(e){return h=e||o.datepickerPopup,s.$render()}),b=angular.element("<div datepicker-popup-wrap><div datepicker></div></div>"),b.attr({"ng-model":"date","ng-change":"dateSelection()"}),v=angular.element(b.children()[0]),c.datepickerOptions&&angular.forEach(l.$parent.$eval(c.datepickerOptions),function(e,t){return v.attr(f(t),e)}),l.watchData={},angular.forEach(["minDate","maxDate","datepickerMode"],function(e){var n,r;return c[e]&&(n=t(c[e]),l.$parent.$watch(n,function(t){return l.watchData[e]=t}),v.attr(f(e),"watchData."+e),"datepickerMode"===e)?(r=n.assign,l.$watch("watchData."+e,function(e,t){return e!==t?r(l.$parent,e):void 0})):void 0}),c.dateDisabled&&v.attr("date-disabled","dateDisabled({ date: date, mode: mode })"),s.$parsers.unshift(m),l.dateSelection=function(e){return angular.isDefined(e)&&(l.date=e),s.$setViewValue(l.date),s.$render(),g?(l.isOpen=!1,l.forceClose=!0,i.close(l),d[0].focus()):void 0},d.bind("input change keyup",function(){return l.$apply(function(){return l.date=s.$modelValue})}),s.$render=function(){var e;return e=s.$viewValue?r(s.$viewValue,h):"",d.val(e),l.date=m(s.$modelValue)},l.select=function(e){var t;return"today"===e&&(t=new Date,angular.isDate(s.$modelValue)?(e=new Date(s.$modelValue),e.setFullYear(t.getFullYear(),t.getMonth(),t.getDate())):e=new Date(t.setHours(0,0,0,0))),l.dateSelection(e)},u=e(b)(l),p?n.find("body").append(u):d.after(u),l.$on("$destroy",function(){return u.remove()})}}}]).directive("datepickerPopupWrap",function(){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"rolodex_angular/template/datepicker/popup",link:function(e,t,n){return t.bind("click",function(e){return e.preventDefault(),e.stopPropagation()})}}})}.call(this),function(){angular.module("rolodex.dropdown",[]).constant("dropdownConfig",{dropDownOpen:"data-dropdown-open"}).service("dropdownService",["$document","$timeout",function(e,t){var n,r,a;return a=null,this.open=function(t){return a||(e.bind("click",n),e.bind("keydown",r)),a&&a!==t&&(a.isOpen=!1),a=t},this.close=function(o){return a===o||o.forceClose?(o.forceClose&&(a&&(a.isOpen=!1),t(function(){return o.isOpen=!1})),a=null,e.unbind("click",n),e.unbind("keydown",r)):void 0},n=function(e){var t;return t=a.getToggleElement(),e&&(null!=t?t[0].contains(e.target):void 0)||"input"===(null!=e?e.target.nodeName.toLowerCase():void 0)?void 0:a.$apply(function(){return a.isOpen=!1})},r=function(e){return 27===e.which?(a.focusToggleElement(),n()):void 0},this}]).controller("DropdownController",["$scope","$attrs","$parse","dropdownConfig","dropdownService","$animate",function(e,t,n,r,a,o){var i,l,d,c,s,u;return c=this,d=e.$new(),i=r.dropDownOpen,l=void 0,s=angular.noop,u=t.onToggle?n(t.onToggle):angular.noop,this.init=function(r){return c.$element=r,t.isOpen?(l=n(t.isOpen),s=l.assign,e.$watch(l,function(e){return d.isOpen=!!e})):void 0},this.toggle=function(e){return d.isOpen=arguments.length?!!e:!d.isOpen},this.isOpen=function(){return d.isOpen},d.getToggleElement=function(){return c.toggleElement},d.focusToggleElement=function(){c.toggleElement&&c.toggleElement[0].focus()},d.$watch("isOpen",function(t,n){var r;return r=c.$element.find("a"),t?(c.$element.attr(i,""),d.focusToggleElement(),a.open(d),r.length&&(d.forceClose=!0,_.each(r,function(e){return angular.element(e).on("click",function(e){return a.close(d),d.$digest()})}))):(c.$element.removeAttr(i),a.close(d)),s(e,t),angular.isDefined(t)&&t!==n?u(e,{open:!!t}):void 0}),e.$on("$locationChangeSuccess",function(){return d.isOpen=!1}),e.$on("$destroy",function(){return d.$destroy()}),this}]).directive("dropdown",function(){return{controller:"DropdownController",link:function(e,t,n,r){return r.init(t)}}}).directive("dropdownToggle",function(){return{require:"?^dropdown",link:function(e,t,n,r){var a;if(r)return r.toggleElement=t,a=function(a){return a.preventDefault(),t.hasClass("disabled")||n.disabled?void 0:e.$apply(function(){return r.toggle()})},t.bind("click",a),t.attr({"aria-haspopup":!0,"aria-expanded":!1}),e.$watch(r.isOpen,function(e){return t.attr("aria-expanded",!!e)}),e.$on("$destroy",function(){return t.unbind("click",a)})}}})}.call(this),function(){angular.module("rolodex.modal",["rolodex.transition","templates"]).factory("$$stackedMap",function(){return{createNew:function(){var e;return e=[],{add:function(t,n){return e.push({key:t,value:n})},get:function(t){var n;for(n=0;n<e.length;){if(t===e[n].key)return e[n];n++}},keys:function(){var t,n;for(n=[],t=0;t<e.length;)n.push(e[t].key),t++;return n},top:function(){return e[e.length-1]},remove:function(t){var n,r;for(r=-1,n=0;n<e.length;){if(t===e[n].key){r=n;break}n++}return e.splice(r,1)[0]},removeTop:function(){return e.splice(e.length-1,1)[0]},length:function(){return e.length}}}}}).directive("modalWindow",["$modalStack","$timeout",function(e,t){return{restrict:"EA",scope:{index:"@",animate:"="},replace:!0,transclude:!0,templateUrl:function(e,t){return t.templateUrl||"rolodex_angular/template/modal/window"},link:function(n,r,a){return r.addClass(a.windowClass||""),n.size=a.size,t(function(){n.animate=!0,r[0].querySelectorAll("[autofocus]").length||r[0].focus()}),n.close=function(t){var n;return n=e.getTop(),n&&n.value.backdrop&&"static"!==n.value.backdrop&&t.target===t.currentTarget?(t.preventDefault(),t.stopPropagation(),e.dismiss(n.key,"backdrop click")):void 0}}}}]).directive("modalTransclude",function(){return{link:function(e,t,n,r,a){return a(e.$parent,function(e){return t.empty(),t.append(e)})}}}).factory("$modalStack",["$transition","$timeout","$document","$compile","$rootScope","$$stackedMap",function(e,t,n,r,a,o){var i,l,d,c,s,u,p,f,g;return c=function(){var e,t,n;for(n=-1,t=p.keys(),e=0;e<t.length;)p.get(t[e]).value.backdrop&&(n=e),e++;return n},g=function(e){var t,r;t=n.find("body").eq(0),r=p.get(e).value,p.remove(e),f(r.modalDomEl,r.modalScope,300,function(){r.modalScope.$destroy(),t.toggleClass(l,p.length()>0),u()})},u=function(){var e,t,n;e&&-1===c()&&(n=t,f(e,t,150,function(){n.$destroy(),n=null}),e=void 0,t=void 0)},f=function(n,r,a,o){var i,l,d;i=function(){i.done||(i.done=!0,n.remove(),o&&o())},r.animate=!1,d=e.transitionEndEventName,d?(l=t(i,a),n.bind(d,function(){t.cancel(l),i(),r.$apply()})):t(i)},l="modal-open",d=void 0,s=void 0,p=o.createNew(),i={},a.$watch(c,function(e){s&&(s.index=e)}),n.bind("keydown",function(e){var t;t=void 0,27===e.which&&(t=p.top(),t&&t.value.keyboard&&(e.preventDefault(),a.$apply(function(){i.dismiss(t.key,"escape key press")})))}),i.open=function(e,t){var o,i,u,f,g;p.add(e,{deferred:t.deferred,modalScope:t.scope,backdrop:t.backdrop,keyboard:t.keyboard}),u=n.find("body").eq(0),f=c(),f>=0&&!d&&(s=a.$new(!0),s.index=f,o=angular.element("<div modal-backdrop></div>"),o.attr("backdrop-class",t.backdropClass),d=r(o)(s),u.append(d)),i=angular.element("<div modal-window></div>"),i.attr({"template-url":t.windowTemplateUrl,"window-class":t.windowClass,size:t.size,index:p.length()-1,animate:"animate"}).html(t.content),g=r(i)(t.scope),p.top().value.modalDomEl=g,u.append(g),u.addClass(l)},i.close=function(e,t){var n;n=p.get(e),n&&(n.value.deferred.resolve(t),g(e))},i.dismiss=function(e,t){var n;n=p.get(e),n&&(n.value.deferred.reject(t),g(e))},i.dismissAll=function(e){var t;for(t=this.getTop();t;)this.dismiss(t.key,e),t=this.getTop()},i.getTop=function(){return p.top()},i}]).provider("$modal",function(){var e;return e={options:{backdrop:!0,keyboard:!0},$get:["$injector","$rootScope","$q","$http","$templateCache","$controller","$modalStack",function(t,n,r,a,o,i,l){var d,c,s;return s=function(e){return e.template?r.when(e.template):a.get(angular.isFunction(e.templateUrl)?e.templateUrl():e.templateUrl,{cache:o}).then(function(e){return e.data})},c=function(e){var n;return n=[],angular.forEach(e,function(e){(angular.isFunction(e)||angular.isArray(e))&&n.push(r.when(t.invoke(e)))}),n},d={},d.open=function(t){var a,o,d,u,p,f;if(d=r.defer(),o=r.defer(),a={result:d.promise,opened:o.promise,close:function(e){l.close(a,e)},dismiss:function(e){l.dismiss(a,e)}},t=angular.extend({},e.options,t),t.resolve=t.resolve||{},!t.template&&!t.templateUrl)throw new Error("One of template or templateUrl options is required.");return f=r.all([s(t)].concat(c(t.resolve))),f.then(p=function(e){var r,o,c,s;return c=(t.scope||n).$new(),c.$close=a.close,c.$dismiss=a.dismiss,r=void 0,o={},s=1,t.controller&&(o.$scope=c,o.$modalInstance=a,angular.forEach(t.resolve,function(t,n){o[n]=e[s++]}),r=i(t.controller,o),t.controller&&(c[t.controllerAs]=r)),l.open(a,{scope:c,deferred:d,content:e[0],backdrop:t.backdrop,keyboard:t.keyboard,backdropClass:t.backdropClass,windowClass:t.windowClass,windowTemplateUrl:t.windowTemplateUrl,size:t.size})},u=function(e){return d.reject(e)}),f.then(function(){return o.resolve(!0)},function(){return o.reject(!1)}),a},d}]}})}.call(this),function(){angular.module("rolodex.position",[]).factory("$position",["$document","$window",function(e,t){var n,r,a;return n=function(e,n){return e.currentStyle?e.currentStyle[n]:t.getComputedStyle?t.getComputedStyle(e)[n]:e.style[n]},r=function(e){return"static"===(n(e,"position")||"static")},a=function(t){var n,a;for(n=e[0],a=t.offsetParent||n;a&&a!==n&&r(a);)a=a.offsetParent;return a||n},{position:function(t){var n,r,o,i;return r=this.offset(t),o={top:0,left:0},i=a(t[0]),i!==e[0]&&(o=this.offset(angular.element(i)),o.top+=i.clientTop-i.scrollTop,o.left+=i.clientLeft-i.scrollLeft),n=t[0].getBoundingClientRect(),{width:n.width||t.prop("offsetWidth"),height:n.height||t.prop("offsetHeight"),top:r.top-o.top,left:r.left-o.left}},offset:function(n){var r;return r=n[0].getBoundingClientRect(),{width:r.width||n.prop("offsetWidth"),height:r.height||n.prop("offsetHeight"),top:r.top+(t.pageYOffset||e[0].documentElement.scrollTop),left:r.left+(t.pageXOffset||e[0].documentElement.scrollLeft)}},positionElements:function(e,t,n,r){var a,o,i,l,d,c,s,u,p;switch(l=n.split("-"),o=l[0],i=l[1]||"center",a=void 0,p=void 0,s=void 0,u=void 0,a=r?this.offset(e):this.position(e),p=t.prop("offsetWidth"),s=t.prop("offsetHeight"),c={center:function(){return a.left+a.width/2-p/2},left:function(){return a.left},right:function(){return a.left+a.width}},d={center:function(){return a.top+a.height/2-s/2},top:function(){return a.top},bottom:function(){return a.top+a.height}},o){case"right":u={top:d[i](),left:c[o]()};break;case"left":u={top:d[i](),left:a.left-p};break;case"bottom":u={top:d[o](),left:c[i]()};break;default:u={top:a.top-s,left:c[i]()}}return u}}}])}.call(this),function(){angular.module("rolodex.transition",[]).factory("$transition",["$q","$timeout","$rootScope",function(e,t,n){var r,a,o,i,l;return o=function(e){var t;for(t in e)if(void 0!==i.style[t])return e[t]},r=function(a,o,i){var l,d,c;return i=i||{},l=e.defer(),d=r[i.animation?"animationEndEventName":"transitionEndEventName"],c=function(e){n.$apply(function(){a.unbind(d,c),l.resolve(a)})},d&&a.bind(d,c),t(function(){angular.isString(o)?a.addClass(o):angular.isFunction(o)?o(a):angular.isObject(o)&&a.css(o),d||l.resolve(a)}),l.promise.cancel=function(){d&&a.unbind(d,c),l.reject("Transition cancelled")},l.promise},i=document.createElement("trans"),l={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"},a={WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"},r.transitionEndEventName=o(l),r.animationEndEventName=o(a),r}])}.call(this);
1
+ (function(){angular.module("rolodex",["templates","rolodex.accordion","rolodex.alert","rolodex.buttons","rolodex.datepicker","rolodex.dropdown","rolodex.modal","rolodex.transition"])}).call(this),angular.module("rolodex").run(["$templateCache",function(e){e.put("rolodex_angular/template/accordion/accordion-group",'<div class="panel panel-default"><div class="panel-heading"><h4 class="panel-title"><a accordion-transclude="heading" class="accordion-toggle" ng-click="toggleOpen()"><span ng-class="{\'text-muted\': isDisabled}">{{heading}}</span></a></h4></div><div class="panel-collapse" collapse="!isOpen"><div class="panel-body" ng-transclude=""></div></div></div>'),e.put("rolodex_angular/template/accordion/accordion",'<div class="panel-group" ng-transclude=""></div>'),e.put("rolodex_angular/template/alert/alert",'<div ng-class="[\'alert-banner-\' + (type || \'warning\'), closeable ? \'alert-dismissable\' : null]" role="alert"><button aria-hidden="true" class="i-close" ng-click="close()" ng-show="closeable" type="button">&times;</button><div ng-transclude=""></div></div>'),e.put("rolodex_angular/template/datepicker/datepicker",'<div ng-keydown="keydown($event)" ng-switch="datepickerMode" role="application"><daypicker ng-switch-when="day" tabindex="0"></daypicker><monthpicker ng-switch-when="month" tabindex="0"></monthpicker><yearpicker ng-switch-when="year" tabindex="0"></yearpicker></div>'),e.put("rolodex_angular/template/datepicker/day",'<table aria-activedescendant="{{ activeDateId }}" aria-labelledby="{{uniqueId }}-title" role="grid"><thead><tr><th class="prev available" ng-click="move(-1)" tabindex="-1"><div class="i-caret"></div></th><th class="month" colspan="{{ 5 + showWeeks }}">{{ title }}</th><th class="next available" ng-click="move(1)" tabindex="-1"><div class="i-caret"></div></th></tr><tr><th class="text-center" ng-repeat="label in labels track by $index"><small aria-label="{{ label.full}}">{{ label.abbr }}</small></th></tr></thead><tbody><tr ng-repeat="row in rows track by $index"><td aria-disabled="{{ !!dt.disabled }}" id="{{ dt.uid }}" ng-class="{active: dt.selected, available: !dt.disabled, off: dt.disabled}" ng-click="select(dt.date, dt.disabled)" ng-disabled="dt.disabled" ng-repeat="dt in row track by dt.date" role="gridcell" tabindex="-1"><span ng-class="{\'text-muted\': dt.secondary}">{{ dt.label }}</span></td></tr></tbody></table>'),e.put("rolodex_angular/template/datepicker/month",'<table aria-activedescendant="{{ activeDateId }}" aria-labelledby="{{ uniqueId }}-title" role="grid"><thead><tr><th><button class="btn btn-boring pull-left" ng-click="move(-1)" tabindex="-1" type="button"><i class="i-caret"></i></button></th><th><button aria-atomic="true" aria-live="assertive" class="btn btn-boring" id="{{ uniqueId }}-title" ng-click="toggleMode()" role="heading" style="width:100%;" tabindex="-1" type="button"><strong>{{ title }}</strong></button></th><th><button class="btn btn-boring pull-right" ng-click="move(1)" tabindex="-1" type="button"><i class="i-caret"></i></button></th></tr></thead><tbody><tr ng-repeat="row in rows track by $index"><td aria-disabled="{{ !!dt.disabled }}" class="text-center" id="{{ dt.uid }}" ng-repeat="dt in row track by dt.date" role="gridcell"><button class="btn btn-boring" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" style="width:100%;" tabindex="-1" type="button"><span ng-class="{\'text-info\': dt.current}">{{ dt.label }}</span></button></td></tr></tbody></table>'),e.put("rolodex_angular/template/datepicker/popup",'<div class="date-picker-solo daterangepicker dropdown-menu group" data-dropdown-content="" ng-keydown="keydown($event)"><div ng-transclude=""></div></div>'),e.put("rolodex_angular/template/datepicker/year",'<table aria-activedescendant="{{ activeDateId }}" aria-labelledby="{{ uniqueId }}-title" role="grid"><thead><tr><th><button class="btn btn-boring pull-left" ng-click="move(-1)" tabindex="-1" type="button"><i class="i-caret"></i></button></th><th colspan="3"><button aria-atomic="true" aria-live="assertive" class="btn btn-boring" id="{{ uniqueId }}-title" ng-click="toggleMode()" role="heading" style="width:100%;" tabindex="-1" type="button"><strong>{{ title }}</strong></button></th><th><button class="btn btn-boring pull-right" ng-click="move(1)" tabindex="-1" type="button"><i class="i-caret"></i></button></th></tr></thead><tbody><tr ng-repeat="row in rows track by $index"><td aria-disabled="{{ !!dt.disabled }}" class="text-center" id="{{ dt.uid }}" ng-repeat="dt in row track by dt.date" role="gridcell"><button class="btn btn-boring" ng-class="{\'btn-info\': dt.selected, active: isActive(dt)}" ng-click="select(dt.date)" ng-disabled="dt.disabled" style="width:100%;" tabindex="-1" type="button"><span ng-class="{\'text-info\': dt.current}">{{ dt.label }}</span></button></td></tr></tbody></table>'),e.put("rolodex_angular/template/modal/window",'<div class="modal" ng-class="{\'modal-fade\': animate}" ng-click="close($event)" role="dialog" tabindex="-1"><div class="modal-content" modal-transclude=""></div></div>')}]),function(){angular.module("rolodex.accordion",["rolodex.collapse"]).constant("accordionConfig",{closeOthers:!0}).controller("AccordionController",["$scope","$attrs","accordionConfig",function(e,t,n){return this.groups=[],this.closeOthers=function(r){var a;return a=angular.isDefined(t.closeOthers)?e.$eval(t.closeOthers):n.closeOthers,a?angular.forEach(this.groups,function(e){return e!==r?e.isOpen=!1:void 0}):void 0},this.addGroup=function(e){var t;return t=this,this.groups.push(e),e.$on("$destroy",function(n){return t.removeGroup(e)})},this.removeGroup=function(e){var t;return t=this.groups.indexOf(e),-1!==t?this.groups.splice(t,1):void 0},this}]).directive("accordion",function(){return{restrict:"EA",controller:"AccordionController",transclude:!0,replace:!1,templateUrl:"rolodex_angular/template/accordion/accordion"}}).directive("accordionGroup",function(){return{require:"^accordion",restrict:"EA",transclude:!0,replace:!0,templateUrl:"rolodex_angular/template/accordion/accordion-group",scope:{heading:"@",isOpen:"=?",isDisabled:"=?"},controller:function(){return this.setHeading=function(e){return this.heading=e}},link:function(e,t,n,r){return r.addGroup(e),e.$watch("isOpen",function(t){t&&r.closeOthers(e)}),e.toggleOpen=function(){return e.isDisabled?void 0:e.isOpen=!e.isOpen}}}}).directive("accordionHeading",function(){return{restrict:"EA",transclude:!0,template:"",replace:!0,require:"^accordionGroup",link:function(e,t,n,r,a){return r.setHeading(a(e,function(){}))}}}).directive("accordionTransclude",function(){return{require:"^accordionGroup",link:function(e,t,n,r){return e.$watch(function(){return r[n.accordionTransclude]},function(e){return e?(t.html(""),t.append(e)):void 0})}}})}.call(this),function(){angular.module("rolodex.alert",[]).controller("AlertController",["$scope","$attrs",function(e,t){return e.closeable="close"in t}]).directive("alert",function(){return{restrict:"EA",controller:"AlertController",templateUrl:"rolodex_angular/template/alert/alert",transclude:!0,replace:!0,scope:{type:"@",close:"&"}}})}.call(this),function(){angular.module("rolodex.buttons",[]).constant("buttonConfig",{activeClass:"active",toggleEvent:"click"}).controller("ButtonsController",["buttonConfig",function(e){return this.activeClass=e.activeClass||"active",this.toggleEvent=e.toggleEvent||"click",this}]).directive("btnRadio",function(){return{require:["btnRadio","ngModel"],controller:"ButtonsController",link:function(e,t,n,r){var a,o;return a=r[0],o=r[1],o.$render=function(){return t.toggleClass(a.activeClass,angular.equals(o.$modelValue,e.$eval(n.btnRadio)))},t.bind(a.toggleEvent,function(){var r;return r=t.hasClass(a.activeClass),!r||angular.isDefined(n.uncheckable)?e.$apply(function(){return o.$setViewValue(r?null:e.$eval(n.btnRadio)),o.$render()}):void 0})}}}).directive("btnCheckbox",function(){return{require:["btnCheckbox","ngModel"],controller:"ButtonsController",link:function(e,t,n,r){var a,o,i,l,d;return l=function(){return o(n.btnCheckboxTrue,!0)},i=function(){return o(n.btnCheckboxFalse,!1)},o=function(t,n){var r;return r=e.$eval(t),angular.isDefined(r)?r:n},a=r[0],d=r[1],d.$render=function(){return t.toggleClass(a.activeClass,angular.equals(d.$modelValue,l()))},t.bind(a.toggleEvent,function(){return e.$apply(function(){return d.$setViewValue(t.hasClass(a.activeClass)?i():l()),d.$render()})})}}})}.call(this),function(){angular.module("rolodex.collapse",["rolodex.transition"]).directive("collapse",["$transition",function(e){return{link:function(t,n,r){var a,o,i,l,d,c,s;l=function(t){var r,a,o;return o=function(){var e;return e===a?e=void 0:void 0},a=e(n,t),r&&r.cancel(),r=a,a.then(o,o),a},d=function(){var e;e?(e=!1,c()):(n.removeClass("collapse").addClass("collapsing"),l({height:n[0].scrollHeight+"px"}).then(c))},c=function(){n.removeClass("collapsing"),n.addClass("collapse in"),n.css({height:"auto"})},a=function(){var e,t;e?(e=!1,o(),n.css({height:0})):(n.css({height:n[0].scrollHeight+"px"}),t=n[0].offsetWidth,n.removeClass("collapse in").addClass("collapsing"),l({height:0}).then(o))},o=function(){n.removeClass("collapsing"),n.addClass("collapse")},s=!0,i=void 0,t.$watch(r.collapse,function(e){e?a():d()})}}}])}.call(this),function(){angular.module("rolodex.dateparser",[]).service("dateParser",["$locale","orderByFilter",function(e,t){var n,r,a;return n=function(e){var n,a;return n=[],a=e.split(""),angular.forEach(r,function(t,r){var o,i,l;if(i=e.indexOf(r),i>-1){for(e=e.split(""),a[i]="("+t.regex+")",e[i]="$",o=i+1,l=i+r.length;l>o;)a[o]="",e[o]="$",o++;e=e.join(""),n.push({index:i,apply:t.apply})}}),{regex:new RegExp("^"+a.join("")+"$"),map:t(n,"index")}},a=function(e,t,n){return 1===t&&n>28?29===n&&(e%4===0&&e%100!==0||e%400===0):3===t||5===t||8===t||10===t?31>n:!0},this.parsers={},r={yyyy:{regex:"\\d{4}",apply:function(e){this.year=+e}},yy:{regex:"\\d{2}",apply:function(e){this.year=+e+2e3}},y:{regex:"\\d{1,4}",apply:function(e){this.year=+e}},MMMM:{regex:e.DATETIME_FORMATS.MONTH.join("|"),apply:function(t){this.month=e.DATETIME_FORMATS.MONTH.indexOf(t)}},MMM:{regex:e.DATETIME_FORMATS.SHORTMONTH.join("|"),apply:function(t){this.month=e.DATETIME_FORMATS.SHORTMONTH.indexOf(t)}},MM:{regex:"0[1-9]|1[0-2]",apply:function(e){this.month=e-1}},M:{regex:"[1-9]|1[0-2]",apply:function(e){this.month=e-1}},dd:{regex:"[0-2][0-9]{1}|3[0-1]{1}",apply:function(e){this.date=+e}},d:{regex:"[1-2]?[0-9]{1}|3[0-1]{1}",apply:function(e){return this.date=+e}},EEEE:{regex:e.DATETIME_FORMATS.DAY.join("|")},EEE:{regex:e.DATETIME_FORMATS.SHORTDAY.join("|")}},this.parse=function(t,r){var o,i,l,d,c,s,u,p,f;if(!angular.isString(t)||!r)return t;if(r=e.DATETIME_FORMATS[r]||r,this.parsers[r]||(this.parsers[r]=n(r)),u=this.parsers[r],p=u.regex,d=u.map,f=t.match(p),f&&f.length){for(i={year:1900,month:0,date:1,hours:0},o=void 0,l=1,s=f.length;s>l;)c=d[l-1],c.apply&&c.apply.call(i,f[l]),l++;return a(i.year,i.month,i.date)&&(o=new Date(i.year,i.month,i.date,i.hours)),o}}}])}.call(this),function(){angular.module("rolodex.datepicker",["rolodex.dateparser","rolodex.dropdown","rolodex.position"]).constant("datepickerConfig",{formatDay:"d",formatMonth:"MMMM",formatYear:"yyyy",formatDayHeader:"EEE",formatDayTitle:"MMMM yyyy",formatMonthTitle:"yyyy",datepickerMode:"day",minMode:"day",maxMode:"year",showWeeks:!0,startingDay:0,yearRange:20,minDate:null,maxDate:null}).controller("DatepickerController",["$scope","$attrs","$parse","$interpolate","$timeout","$log","dateFilter","datepickerConfig",function(e,t,n,r,a,o,i,l){var d,c,s;return s=this,c={$setViewValue:angular.noop},this.modes=["day","month","year"],angular.forEach(["formatDay","formatMonth","formatYear","formatDayHeader","formatDayTitle","formatMonthTitle","minMode","maxMode","showWeeks","startingDay","yearRange"],function(n,a){s[n]=angular.isDefined(t[n])?8>a?r(t[n])(e.$parent):e.$parent.$eval(t[n]):l[n]}),angular.forEach(["minDate","maxDate"],function(r){return t[r]?e.$parent.$watch(n(t[r]),function(e){return s[r]=e?new Date(e):null,s.refreshView()}):s[r]=l[r]?new Date(l[r]):null}),e.datepickerMode=e.datepickerMode||l.datepickerMode,e.uniqueId="datepicker-"+e.$id+"-"+Math.floor(1e4*Math.random()),this.activeDate=angular.isDefined(t.initDate)?e.$parent.$eval(t.initDate):new Date,this.init=function(e){return c=e,c.$render=function(){return s.render()}},this.render=function(){var e,t;return c.$modelValue&&(e=new Date(c.$modelValue),t=!isNaN(e),t?this.activeDate=e:o.error("Datepicker directive: 'ng-model' value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date."),c.$setValidity("date",t)),this.refreshView()},this.refreshView=function(){var e;return this.element?(this._refreshView(),e=c.$modelValue?new Date(c.$modelValue):null,c.$setValidity("date-disabled",!e||this.element&&!this.isDisabled(e))):void 0},this.createDateObject=function(e,t){var n;return n=c.$modelValue?new Date(c.$modelValue):null,{date:e,label:i(e,t),selected:n&&0===this.compare(e,n),disabled:this.isDisabled(e),current:0===this.compare(e,new Date)}},this.isDisabled=function(n){return this.minDate&&this.compare(n,this.minDate)<0||this.maxDate&&this.compare(n,this.maxDate)>0||t.dateDisabled&&e.dateDisabled({date:n,mode:e.datepickerMode})},this.split=function(e,t){var n;for(n=[];e.length>0;)n.push(e.splice(0,t));return n},e.select=function(t){return function(n){var r;if(!t.isDisabled(n))return e.datepickerMode===s.minMode?(r=c.$modelValue?new Date(c.$modelValue):new Date(0,0,0,0,0,0,0),r.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),c.$setViewValue(r),c.$render()):(s.activeDate=n,e.datepickerMode=s.modes[s.modes.indexOf(e.datepickerMode)-1])}}(this),e.move=function(e){var t,n;return n=s.activeDate.getFullYear()+e*(s.step.years||0),t=s.activeDate.getMonth()+e*(s.step.months||0),s.activeDate.setFullYear(n,t,1),s.refreshView()},e.toggleMode=function(t){return t=t||1,e.datepickerMode===s.maxMode&&1===t||e.datepickerMode===s.minMode&&-1===t?void 0:e.datepickerMode=s.modes[s.modes.indexOf(e.datepickerMode)+t]},e.keys={13:"enter",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down"},d=function(){return a(function(){return s.element[0].focus()},0,!1)},e.$on("datepicker.focus",d),e.keydown=function(t){var n;if(n=e.keys[t.which],n&&!t.shiftKey&&!t.altKey){if(t.preventDefault(),t.stopPropagation(),"enter"===n||"space"===n){if(s.isDisabled(s.activeDate))return;return e.select(s.activeDate),d()}return!t.ctrlKey||"up"!==n&&"down"!==n?(s.handleKeyDown(n,t),s.refreshView()):(e.toggleMode("up"===n?1:-1),d())}},this}]).directive("datepicker",function(){return{restrict:"EA",replace:!0,templateUrl:"rolodex_angular/template/datepicker/datepicker",scope:{datepickerMode:"=?",dateDisabled:"&"},require:["datepicker","?^ngModel"],controller:"DatepickerController",link:function(e,t,n,r){var a,o;return a=r[0],o=r[1],o?a.init(o):void 0}}}).directive("daypicker",["dateFilter",function(e){return{restrict:"EA",replace:!0,templateUrl:"rolodex_angular/template/datepicker/day",require:"^datepicker",link:function(t,n,r,a){var o,i,l,d;return l=function(e,t){return 1!==t||e%4!==0||e%100===0&&e%400!==0?o[t]:29},i=function(e,t){var n,r,a;for(r=new Array(t),n=new Date(e),a=0,n.setHours(12);t>a;)r[a++]=new Date(n),n.setDate(n.getDate()+1);return r},d=function(e){var t,n;return t=new Date(e),t.setDate(t.getDate()+4-(t.getDay()||7)),n=t.getTime(),t.setMonth(0),t.setDate(1),Math.floor(Math.round((n-t)/864e5)/7)+1},t.showWeeks=a.showWeeks,a.step={months:1},a.element=n,o=[31,28,31,30,31,30,31,31,30,31,30,31],a._refreshView=function(){var n,r,o,l,c,s,u,p,f,g,h,v;for(v=a.activeDate.getFullYear(),u=a.activeDate.getMonth(),l=new Date(v,u,1),r=a.startingDay-l.getDay(),p=r>0?7-r:-r,o=new Date(l),p>0&&o.setDate(-p+1),n=i(o,42),c=0;42>c;)n[c]=angular.extend(a.createDateObject(n[c],a.formatDay),{secondary:n[c].getMonth()!==u,uid:t.uniqueId+"-"+c}),c++;for(t.labels=new Array(7),s=0;7>s;)t.labels[s]={abbr:e(n[s].date,a.formatDayHeader).substr(0,2),full:e(n[s].date,"EEEE")},s++;if(t.title=e(a.activeDate,a.formatDayTitle),t.rows=a.split(n,7),t.showWeeks){for(t.weekNumbers=[],h=d(t.rows[0][0].date),f=t.rows.length,g=[];t.weekNumbers.push(h++)<f;);return g}},a.compare=function(e,t){return new Date(e.getFullYear(),e.getMonth(),e.getDate())-new Date(t.getFullYear(),t.getMonth(),t.getDate())},a.handleKeyDown=function(e,t){var n,r;return n=a.activeDate.getDate(),"left"===e?n-=1:"up"===e?n-=7:"right"===e?n+=1:"down"===e?n+=7:"pageup"===e||"pagedown"===e?(r=a.activeDate.getMonth()+("pageup"===e?-1:1),a.activeDate.setMonth(r,1),n=Math.min(l(a.activeDate.getFullYear(),a.activeDate.getMonth()),n)):"home"===e?n=1:"end"===e&&(n=l(a.activeDate.getFullYear(),a.activeDate.getMonth())),a.activeDate.setDate(n)},a.refreshView()}}}]).directive("monthpicker",["dateFilter",function(e){return{restrict:"EA",replace:!0,templateUrl:"rolodex_angular/template/datepicker/month",require:"^datepicker",link:function(t,n,r,a){return a.step={years:1},a.element=n,a._refreshView=function(){var n,r,o;for(r=new Array(12),o=a.activeDate.getFullYear(),n=0;12>n;)r[n]=angular.extend(a.createDateObject(new Date(o,n,1),a.formatMonth),{uid:t.uniqueId+"-"+n}),n++;return t.title=e(a.activeDate,a.formatMonthTitle),t.rows=a.split(r,3)},a.compare=function(e,t){return new Date(e.getFullYear(),e.getMonth())-new Date(t.getFullYear(),t.getMonth())},a.handleKeyDown=function(e,t){var n,r;return n=a.activeDate.getMonth(),"left"===e?n-=1:"up"===e?n-=3:"right"===e?n+=1:"down"===e?n+=3:"pageup"===e||"pagedown"===e?(r=a.activeDate.getFullYear()+("pageup"===e?-1:1),a.activeDate.setFullYear(r)):"home"===e?n=0:"end"===e&&(n=11),a.activeDate.setMonth(n)},a.refreshView()}}}]).directive("yearpicker",["dateFilter",function(e){return{restrict:"EA",replace:!0,templateUrl:"rolodex_angular/template/datepicker/year",require:"^datepicker",link:function(e,t,n,r){var a,o;return a=function(e){return parseInt((e-1)/o,10)*o+1},o=r.yearRange,r.step={years:o},r.element=t,r._refreshView=function(){var t,n,i;for(i=new Array(o),t=0,n=a(r.activeDate.getFullYear());o>t;)i[t]=angular.extend(r.createDateObject(new Date(n+t,0,1),r.formatYear),{uid:e.uniqueId+"-"+t}),t++;return e.title=[i[0].label,i[o-1].label].join(" - "),e.rows=r.split(i,5)},r.compare=function(e,t){return e.getFullYear()-t.getFullYear()},r.handleKeyDown=function(e,t){var n;return n=r.activeDate.getFullYear(),"left"===e?n-=1:"up"===e?n-=5:"right"===e?n+=1:"down"===e?n+=5:"pageup"===e||"pagedown"===e?n+=("pageup"===e?-1:1)*r.step.years:"home"===e?n=a(r.activeDate.getFullYear()):"end"===e&&(n=a(r.activeDate.getFullYear())+o-1),r.activeDate.setFullYear(n)},r.refreshView()}}}]).constant("datepickerPopupConfig",{datepickerPopup:"yyyy-MM-dd",currentText:"Today",clearText:"Clear",closeText:"Done",closeOnDateSelection:!0,appendToBody:!1,showButtonBar:!0}).directive("datepickerPopup",["$compile","$parse","$document","dateFilter","dateParser","datepickerPopupConfig","dropdownService",function(e,t,n,r,a,o,i){return{restrict:"EA",require:"ngModel",scope:{isOpen:"=?",currentText:"@",clearText:"@",closeText:"@",dateDisabled:"&"},link:function(l,d,c,s){var u,p,f,g,h,v,m,b;return f=function(e){return e.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()})},m=function(e){var t;return e?angular.isDate(e)&&!isNaN(e)?(s.$setValidity("date",!0),e):angular.isString(e)?(t=a.parse(e,h)||new Date(e),isNaN(t)?void s.$setValidity("date",!1):(s.$setValidity("date",!0),t)):void s.$setValidity("date",!1):(s.$setValidity("date",!0),null)},h=void 0,g=angular.isDefined(c.closeOnDateSelection)?l.$parent.$eval(c.closeOnDateSelection):o.closeOnDateSelection,p=angular.isDefined(c.datepickerAppendToBody)?l.$parent.$eval(c.datepickerAppendToBody):o.appendToBody,l.showButtonBar=angular.isDefined(c.showButtonBar)?l.$parent.$eval(c.showButtonBar):o.showButtonBar,l.getText=function(e){return l[e+"Text"]||o[e+"Text"]},c.$observe("datepickerPopup",function(e){return h=e||o.datepickerPopup,s.$render()}),b=angular.element("<div datepicker-popup-wrap><div datepicker></div></div>"),b.attr({"ng-model":"date","ng-change":"dateSelection()"}),v=angular.element(b.children()[0]),c.datepickerOptions&&angular.forEach(l.$parent.$eval(c.datepickerOptions),function(e,t){return v.attr(f(t),e)}),l.watchData={},angular.forEach(["minDate","maxDate","datepickerMode"],function(e){var n,r;return c[e]&&(n=t(c[e]),l.$parent.$watch(n,function(t){return l.watchData[e]=t}),v.attr(f(e),"watchData."+e),"datepickerMode"===e)?(r=n.assign,l.$watch("watchData."+e,function(e,t){return e!==t?r(l.$parent,e):void 0})):void 0}),c.dateDisabled&&v.attr("date-disabled","dateDisabled({ date: date, mode: mode })"),s.$parsers.unshift(m),l.dateSelection=function(e){return angular.isDefined(e)&&(l.date=e),s.$setViewValue(l.date),s.$render(),g?(l.isOpen=!1,l.forceClose=!0,i.close(l),d[0].focus()):void 0},d.bind("input change keyup",function(){return l.$apply(function(){return l.date=s.$modelValue})}),s.$render=function(){var e;return e=s.$viewValue?r(s.$viewValue,h):"",d.val(e),l.date=m(s.$modelValue)},l.select=function(e){var t;return"today"===e&&(t=new Date,angular.isDate(s.$modelValue)?(e=new Date(s.$modelValue),e.setFullYear(t.getFullYear(),t.getMonth(),t.getDate())):e=new Date(t.setHours(0,0,0,0))),l.dateSelection(e)},u=e(b)(l),p?n.find("body").append(u):d.after(u),l.$on("$destroy",function(){return u.remove()})}}}]).directive("datepickerPopupWrap",function(){return{restrict:"EA",replace:!0,transclude:!0,templateUrl:"rolodex_angular/template/datepicker/popup",link:function(e,t,n){return t.bind("click",function(e){return e.preventDefault(),e.stopPropagation()})}}})}.call(this),function(){angular.module("rolodex.dropdown",[]).constant("dropdownConfig",{dropDownOpen:"data-dropdown-open"}).service("dropdownService",["$document","$timeout",function(e,t){var n,r,a;return a=null,this.open=function(t){return a||(e.bind("click",n),e.bind("keydown",r)),a&&a!==t&&(a.isOpen=!1),a=t},this.close=function(o){return a===o||o.forceClose?(o.forceClose&&(a&&(a.isOpen=!1),t(function(){return o.isOpen=!1})),a=null,e.unbind("click",n),e.unbind("keydown",r)):void 0},n=function(e){var t;return t=a.getToggleElement(),e&&(null!=t?t[0].contains(e.target):void 0)||"input"===(null!=e?e.target.nodeName.toLowerCase():void 0)?void 0:a.$apply(function(){return a.isOpen=!1})},r=function(e){return 27===e.which?(a.focusToggleElement(),n()):void 0},this}]).controller("DropdownController",["$scope","$attrs","$parse","dropdownConfig","dropdownService","$animate",function(e,t,n,r,a,o){var i,l,d,c,s,u;return c=this,d=e.$new(),i=r.dropDownOpen,l=void 0,s=angular.noop,u=t.onToggle?n(t.onToggle):angular.noop,this.init=function(r){return c.$element=r,t.isOpen?(l=n(t.isOpen),s=l.assign,e.$watch(l,function(e){return d.isOpen=!!e})):void 0},this.toggle=function(e){return d.isOpen=arguments.length?!!e:!d.isOpen},this.isOpen=function(){return d.isOpen},d.getToggleElement=function(){return c.toggleElement},d.focusToggleElement=function(){c.toggleElement&&c.toggleElement[0].focus()},d.$watch("isOpen",function(t,n){var r;return r=c.$element.find("a"),t?(c.$element.attr(i,""),d.focusToggleElement(),a.open(d),r.length&&(d.forceClose=!0,_.each(r,function(e){return angular.element(e).on("click",function(e){return a.close(d),d.$digest()})}))):(c.$element.removeAttr(i),a.close(d)),s(e,t),angular.isDefined(t)&&t!==n?u(e,{open:!!t}):void 0}),e.$on("$locationChangeSuccess",function(){return d.isOpen=!1}),e.$on("$destroy",function(){return d.$destroy()}),this}]).directive("dropdown",function(){return{controller:"DropdownController",link:function(e,t,n,r){return r.init(t)}}}).directive("dropdownToggle",function(){return{require:"?^dropdown",link:function(e,t,n,r){var a;if(r)return r.toggleElement=t,a=function(a){return a.preventDefault(),t.hasClass("disabled")||n.disabled?void 0:e.$apply(function(){return r.toggle()})},t.bind("click",a),t.attr({"aria-haspopup":!0,"aria-expanded":!1}),e.$watch(r.isOpen,function(e){return t.attr("aria-expanded",!!e)}),e.$on("$destroy",function(){return t.unbind("click",a)})}}})}.call(this),function(){angular.module("rolodex.modal",["rolodex.transition","templates"]).factory("$$stackedMap",function(){return{createNew:function(){var e;return e=[],{add:function(t,n){return e.push({key:t,value:n})},get:function(t){var n;for(n=0;n<e.length;){if(t===e[n].key)return e[n];n++}},keys:function(){var t,n;for(n=[],t=0;t<e.length;)n.push(e[t].key),t++;return n},top:function(){return e[e.length-1]},remove:function(t){var n,r;for(r=-1,n=0;n<e.length;){if(t===e[n].key){r=n;break}n++}return e.splice(r,1)[0]},removeTop:function(){return e.splice(e.length-1,1)[0]},length:function(){return e.length}}}}}).directive("modalWindow",["$modalStack","$timeout",function(e,t){return{restrict:"EA",scope:{index:"@",animate:"="},replace:!0,transclude:!0,templateUrl:function(e,t){return t.templateUrl||"rolodex_angular/template/modal/window"},link:function(n,r,a){return r.addClass(a.windowClass||""),n.size=a.size,t(function(){n.animate=!0,r[0].querySelectorAll("[autofocus]").length||r[0].focus()}),n.close=function(t){var n;return n=e.getTop(),n&&n.value.backdrop&&"static"!==n.value.backdrop&&t.target===t.currentTarget?(t.preventDefault(),t.stopPropagation(),e.dismiss(n.key,"backdrop click")):void 0}}}}]).directive("modalTransclude",function(){return{link:function(e,t,n,r,a){return a(e.$parent,function(e){return t.empty(),t.append(e)})}}}).factory("$modalStack",["$transition","$timeout","$document","$compile","$rootScope","$$stackedMap",function(e,t,n,r,a,o){var i,l,d,c,s,u,p,f,g;return c=function(){var e,t,n;for(n=-1,t=p.keys(),e=0;e<t.length;)p.get(t[e]).value.backdrop&&(n=e),e++;return n},g=function(e){var t,r;t=n.find("body").eq(0),r=p.get(e).value,p.remove(e),f(r.modalDomEl,r.modalScope,300,function(){r.modalScope.$destroy(),t.toggleClass(l,p.length()>0),u()})},u=function(){var e,t,n;e&&-1===c()&&(n=t,f(e,t,150,function(){n.$destroy(),n=null}),e=void 0,t=void 0)},f=function(n,r,a,o){var i,l,d;i=function(){i.done||(i.done=!0,n.remove(),o&&o())},r.animate=!1,d=e.transitionEndEventName,d?(l=t(i,a),n.bind(d,function(){t.cancel(l),i(),r.$apply()})):t(i)},l="modal-open",d=void 0,s=void 0,p=o.createNew(),i={},a.$watch(c,function(e){s&&(s.index=e)}),n.bind("keydown",function(e){var t;t=void 0,27===e.which&&(t=p.top(),t&&t.value.keyboard&&(e.preventDefault(),a.$apply(function(){i.dismiss(t.key,"escape key press")})))}),i.open=function(e,t){var o,i,u,f,g;p.add(e,{deferred:t.deferred,modalScope:t.scope,backdrop:t.backdrop,keyboard:t.keyboard}),u=n.find("body").eq(0),f=c(),f>=0&&!d&&(s=a.$new(!0),s.index=f,o=angular.element("<div modal-backdrop></div>"),o.attr("backdrop-class",t.backdropClass),d=r(o)(s),u.append(d)),i=angular.element("<div modal-window></div>"),i.attr({"template-url":t.windowTemplateUrl,"window-class":t.windowClass,size:t.size,index:p.length()-1,animate:"animate"}).html(t.content),g=r(i)(t.scope),p.top().value.modalDomEl=g,u.append(g),u.addClass(l)},i.close=function(e,t){var n;n=p.get(e),n&&(n.value.deferred.resolve(t),g(e))},i.dismiss=function(e,t){var n;n=p.get(e),n&&(n.value.deferred.reject(t),g(e))},i.dismissAll=function(e){var t;for(t=this.getTop();t;)this.dismiss(t.key,e),t=this.getTop()},i.getTop=function(){return p.top()},i}]).provider("$modal",function(){var e;return e={options:{backdrop:!0,keyboard:!0},$get:["$injector","$rootScope","$q","$http","$templateCache","$controller","$modalStack",function(t,n,r,a,o,i,l){var d,c,s;return s=function(e){return e.template?r.when(e.template):a.get(angular.isFunction(e.templateUrl)?e.templateUrl():e.templateUrl,{cache:o}).then(function(e){return e.data})},c=function(e){var n;return n=[],angular.forEach(e,function(e){(angular.isFunction(e)||angular.isArray(e))&&n.push(r.when(t.invoke(e)))}),n},d={},d.open=function(t){var a,o,d,u,p,f;if(d=r.defer(),o=r.defer(),a={result:d.promise,opened:o.promise,close:function(e){l.close(a,e)},dismiss:function(e){l.dismiss(a,e)}},t=angular.extend({},e.options,t),t.resolve=t.resolve||{},!t.template&&!t.templateUrl)throw new Error("One of template or templateUrl options is required.");return f=r.all([s(t)].concat(c(t.resolve))),f.then(p=function(e){var r,o,c,s;return c=(t.scope||n).$new(),c.$close=a.close,c.$dismiss=a.dismiss,r=void 0,o={},s=1,t.controller&&(o.$scope=c,o.$modalInstance=a,angular.forEach(t.resolve,function(t,n){o[n]=e[s++]}),r=i(t.controller,o),t.controller&&(c[t.controllerAs]=r)),l.open(a,{scope:c,deferred:d,content:e[0],backdrop:t.backdrop,keyboard:t.keyboard,backdropClass:t.backdropClass,windowClass:t.windowClass,windowTemplateUrl:t.windowTemplateUrl,size:t.size})},u=function(e){return d.reject(e)}),f.then(function(){return o.resolve(!0)},function(){return o.reject(!1)}),a},d}]}})}.call(this),function(){angular.module("rolodex.position",[]).factory("$position",["$document","$window",function(e,t){var n,r,a;return n=function(e,n){return e.currentStyle?e.currentStyle[n]:t.getComputedStyle?t.getComputedStyle(e)[n]:e.style[n]},r=function(e){return"static"===(n(e,"position")||"static")},a=function(t){var n,a;for(n=e[0],a=t.offsetParent||n;a&&a!==n&&r(a);)a=a.offsetParent;return a||n},{position:function(t){var n,r,o,i;return r=this.offset(t),o={top:0,left:0},i=a(t[0]),i!==e[0]&&(o=this.offset(angular.element(i)),o.top+=i.clientTop-i.scrollTop,o.left+=i.clientLeft-i.scrollLeft),n=t[0].getBoundingClientRect(),{width:n.width||t.prop("offsetWidth"),height:n.height||t.prop("offsetHeight"),top:r.top-o.top,left:r.left-o.left}},offset:function(n){var r;return r=n[0].getBoundingClientRect(),{width:r.width||n.prop("offsetWidth"),height:r.height||n.prop("offsetHeight"),top:r.top+(t.pageYOffset||e[0].documentElement.scrollTop),left:r.left+(t.pageXOffset||e[0].documentElement.scrollLeft)}},positionElements:function(e,t,n,r){var a,o,i,l,d,c,s,u,p;switch(l=n.split("-"),o=l[0],i=l[1]||"center",a=void 0,p=void 0,s=void 0,u=void 0,a=r?this.offset(e):this.position(e),p=t.prop("offsetWidth"),s=t.prop("offsetHeight"),c={center:function(){return a.left+a.width/2-p/2},left:function(){return a.left},right:function(){return a.left+a.width}},d={center:function(){return a.top+a.height/2-s/2},top:function(){return a.top},bottom:function(){return a.top+a.height}},o){case"right":u={top:d[i](),left:c[o]()};break;case"left":u={top:d[i](),left:a.left-p};break;case"bottom":u={top:d[o](),left:c[i]()};break;default:u={top:a.top-s,left:c[i]()}}return u}}}])}.call(this),function(){angular.module("rolodex.transition",[]).factory("$transition",["$q","$timeout","$rootScope",function(e,t,n){var r,a,o,i,l;return o=function(e){var t;for(t in e)if(void 0!==i.style[t])return e[t]},r=function(a,o,i){var l,d,c;return i=i||{},l=e.defer(),d=r[i.animation?"animationEndEventName":"transitionEndEventName"],c=function(e){n.$apply(function(){a.unbind(d,c),l.resolve(a)})},d&&a.bind(d,c),t(function(){angular.isString(o)?a.addClass(o):angular.isFunction(o)?o(a):angular.isObject(o)&&a.css(o),d||l.resolve(a)}),l.promise.cancel=function(){d&&a.unbind(d,c),l.reject("Transition cancelled")},l.promise},i=document.createElement("trans"),l={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"},a={WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"},r.transitionEndEventName=o(l),r.animationEndEventName=o(a),r}])}.call(this);
@@ -1,3 +1,3 @@
1
1
  module Rolodex
2
- VERSION = "2.0.6"
2
+ VERSION = "2.0.7"
3
3
  end
@@ -31,9 +31,12 @@ input[type="search"]
31
31
  box-sizing: border-box
32
32
 
33
33
  input[type="search"]::-webkit-search-cancel-button,
34
- input[type="search"]::-webkit-search-decoration
34
+ input[type="search"]::-webkit-search-decoration,
35
35
  -webkit-appearance: none
36
36
 
37
+ input[type="submit"]
38
+ appearance: none
39
+
37
40
  // Default styles
38
41
  // ========================================
39
42
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rolodex
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.6
4
+ version: 2.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - AJ Self, Darby Frey, Shay Howe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-04 00:00:00.000000000 Z
11
+ date: 2016-03-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: angular-html2js